[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20210617094424.27123-2-jamin_lin@aspeedtech.com>
Date: Thu, 17 Jun 2021 17:43:38 +0800
From: Jamin Lin <jamin_lin@...eedtech.com>
To: Rob Herring <robh+dt@...nel.org>, Joel Stanley <joel@....id.au>,
"Andrew Jeffery" <andrew@...id.au>,
Philipp Zabel <p.zabel@...gutronix.de>,
"Wolfram Sang" <wsa+renesas@...g-engineering.com>,
Arnd Bergmann <arnd@...db.de>,
Jarkko Nikula <jarkko.nikula@...ux.intel.com>,
Jean Delvare <jdelvare@...e.de>,
Geert Uytterhoeven <geert+renesas@...der.be>,
"Krzysztof Kozlowski" <krzysztof.kozlowski@...onical.com>,
Khalil Blaiech <kblaiech@...lanox.com>,
Yicong Yang <yangyicong@...ilicon.com>,
Bence Csókás <bence98@....bme.hu>,
Mike Rapoport <rppt@...nel.org>,
Uwe Kleine-König
<u.kleine-koenig@...gutronix.de>,
Ryan Chen <ryan_chen@...eedtech.com>,
"open list:I2C SUBSYSTEM HOST DRIVERS" <linux-i2c@...r.kernel.org>,
"open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS"
<devicetree@...r.kernel.org>,
"moderated list:ARM/ASPEED MACHINE SUPPORT"
<linux-arm-kernel@...ts.infradead.org>,
"moderated list:ARM/ASPEED MACHINE SUPPORT"
<linux-aspeed@...ts.ozlabs.org>,
open list <linux-kernel@...r.kernel.org>
CC: <chiawei_wang@...eedtech.com>, <troy_lee@...eedtech.com>,
<steven_lee@...eedtech.com>
Subject: [PATCH 1/3] dts: aspeed: Add node for AST2600 I2C and I2CS
Support byte-mode, dma-mode and buffer-mode for
data transfer of I2C. Add i2c-global-regs node
to support the new register set Add node to
support I2CS.
Signed-off-by: Jamin Lin <jamin_lin@...eedtech.com>
---
arch/arm/boot/dts/aspeed-g6.dtsi | 150 ++++++++++++++++++++++++-------
1 file changed, 118 insertions(+), 32 deletions(-)
diff --git a/arch/arm/boot/dts/aspeed-g6.dtsi b/arch/arm/boot/dts/aspeed-g6.dtsi
index f96607b7b4e2..e83df01123fe 100644
--- a/arch/arm/boot/dts/aspeed-g6.dtsi
+++ b/arch/arm/boot/dts/aspeed-g6.dtsi
@@ -667,6 +667,13 @@
clocks = <&syscon ASPEED_CLK_GATE_FSICLK>;
status = "disabled";
};
+
+ i2csec: bus@...a8000 {
+ compatible = "simple-bus";
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges = <0 0x1e7a8000 0x1000>;
+ };
};
};
};
@@ -674,12 +681,20 @@
#include "aspeed-g6-pinctrl.dtsi"
&i2c {
+
+ i2c_gr: i2c-global-regs@0 {
+ compatible = "aspeed,ast2600-i2c-global", "syscon";
+ reg = <0x0 0x20>;
+ clocks = <&syscon ASPEED_CLK_APB2>;
+ resets = <&syscon ASPEED_RESET_I2C>;
+ };
+
i2c0: i2c-bus@80 {
+ compatible = "aspeed,ast2600-i2c-bus";
#address-cells = <1>;
#size-cells = <0>;
#interrupt-cells = <1>;
- reg = <0x80 0x80>;
- compatible = "aspeed,ast2600-i2c-bus";
+ reg = <0x80 0x80>, <0xC00 0x20>;
clocks = <&syscon ASPEED_CLK_APB2>;
resets = <&syscon ASPEED_RESET_I2C>;
interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
@@ -690,11 +705,11 @@
};
i2c1: i2c-bus@100 {
+ compatible = "aspeed,ast2600-i2c-bus";
#address-cells = <1>;
#size-cells = <0>;
#interrupt-cells = <1>;
- reg = <0x100 0x80>;
- compatible = "aspeed,ast2600-i2c-bus";
+ reg = <0x100 0x80>, <0xC20 0x20>;
clocks = <&syscon ASPEED_CLK_APB2>;
resets = <&syscon ASPEED_RESET_I2C>;
interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
@@ -705,11 +720,11 @@
};
i2c2: i2c-bus@180 {
+ compatible = "aspeed,ast2600-i2c-bus";
#address-cells = <1>;
#size-cells = <0>;
#interrupt-cells = <1>;
- reg = <0x180 0x80>;
- compatible = "aspeed,ast2600-i2c-bus";
+ reg = <0x180 0x80>, <0xC40 0x20>;
clocks = <&syscon ASPEED_CLK_APB2>;
resets = <&syscon ASPEED_RESET_I2C>;
interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
@@ -720,11 +735,11 @@
};
i2c3: i2c-bus@200 {
+ compatible = "aspeed,ast2600-i2c-bus";
#address-cells = <1>;
#size-cells = <0>;
#interrupt-cells = <1>;
- reg = <0x200 0x80>;
- compatible = "aspeed,ast2600-i2c-bus";
+ reg = <0x200 0x80>, <0xC60 0x20>;
clocks = <&syscon ASPEED_CLK_APB2>;
resets = <&syscon ASPEED_RESET_I2C>;
interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
@@ -735,11 +750,11 @@
};
i2c4: i2c-bus@280 {
+ compatible = "aspeed,ast2600-i2c-bus";
#address-cells = <1>;
#size-cells = <0>;
#interrupt-cells = <1>;
- reg = <0x280 0x80>;
- compatible = "aspeed,ast2600-i2c-bus";
+ reg = <0x280 0x80>, <0xC80 0x20>;
clocks = <&syscon ASPEED_CLK_APB2>;
resets = <&syscon ASPEED_RESET_I2C>;
interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
@@ -750,11 +765,11 @@
};
i2c5: i2c-bus@300 {
+ compatible = "aspeed,ast2600-i2c-bus";
#address-cells = <1>;
#size-cells = <0>;
#interrupt-cells = <1>;
- reg = <0x300 0x80>;
- compatible = "aspeed,ast2600-i2c-bus";
+ reg = <0x300 0x80>, <0xCA0 0x20>;
clocks = <&syscon ASPEED_CLK_APB2>;
resets = <&syscon ASPEED_RESET_I2C>;
interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
@@ -765,11 +780,11 @@
};
i2c6: i2c-bus@380 {
+ compatible = "aspeed,ast2600-i2c-bus";
#address-cells = <1>;
#size-cells = <0>;
#interrupt-cells = <1>;
- reg = <0x380 0x80>;
- compatible = "aspeed,ast2600-i2c-bus";
+ reg = <0x380 0x80>, <0xCC0 0x20>;
clocks = <&syscon ASPEED_CLK_APB2>;
resets = <&syscon ASPEED_RESET_I2C>;
interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
@@ -780,11 +795,11 @@
};
i2c7: i2c-bus@400 {
+ compatible = "aspeed,ast2600-i2c-bus";
#address-cells = <1>;
#size-cells = <0>;
#interrupt-cells = <1>;
- reg = <0x400 0x80>;
- compatible = "aspeed,ast2600-i2c-bus";
+ reg = <0x400 0x80>, <0xCE0 0x20>;
clocks = <&syscon ASPEED_CLK_APB2>;
resets = <&syscon ASPEED_RESET_I2C>;
interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>;
@@ -795,11 +810,11 @@
};
i2c8: i2c-bus@480 {
+ compatible = "aspeed,ast2600-i2c-bus";
#address-cells = <1>;
#size-cells = <0>;
#interrupt-cells = <1>;
- reg = <0x480 0x80>;
- compatible = "aspeed,ast2600-i2c-bus";
+ reg = <0x480 0x80>, <0xD00 0x20>;
clocks = <&syscon ASPEED_CLK_APB2>;
resets = <&syscon ASPEED_RESET_I2C>;
interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>;
@@ -810,11 +825,11 @@
};
i2c9: i2c-bus@500 {
+ compatible = "aspeed,ast2600-i2c-bus";
#address-cells = <1>;
#size-cells = <0>;
#interrupt-cells = <1>;
- reg = <0x500 0x80>;
- compatible = "aspeed,ast2600-i2c-bus";
+ reg = <0x500 0x80>, <0xD20 0x20>;
clocks = <&syscon ASPEED_CLK_APB2>;
resets = <&syscon ASPEED_RESET_I2C>;
interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;
@@ -825,11 +840,11 @@
};
i2c10: i2c-bus@580 {
+ compatible = "aspeed,ast2600-i2c-bus";
#address-cells = <1>;
#size-cells = <0>;
#interrupt-cells = <1>;
- reg = <0x580 0x80>;
- compatible = "aspeed,ast2600-i2c-bus";
+ reg = <0x580 0x80>, <0xD40 0x20>;
clocks = <&syscon ASPEED_CLK_APB2>;
resets = <&syscon ASPEED_RESET_I2C>;
interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
@@ -840,11 +855,11 @@
};
i2c11: i2c-bus@600 {
+ compatible = "aspeed,ast2600-i2c-bus";
#address-cells = <1>;
#size-cells = <0>;
#interrupt-cells = <1>;
- reg = <0x600 0x80>;
- compatible = "aspeed,ast2600-i2c-bus";
+ reg = <0x600 0x80>, <0xD60 0x20>;
clocks = <&syscon ASPEED_CLK_APB2>;
resets = <&syscon ASPEED_RESET_I2C>;
interrupts = <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>;
@@ -855,11 +870,11 @@
};
i2c12: i2c-bus@680 {
+ compatible = "aspeed,ast2600-i2c-bus";
#address-cells = <1>;
#size-cells = <0>;
#interrupt-cells = <1>;
- reg = <0x680 0x80>;
- compatible = "aspeed,ast2600-i2c-bus";
+ reg = <0x680 0x80>, <0xD80 0x20>;
clocks = <&syscon ASPEED_CLK_APB2>;
resets = <&syscon ASPEED_RESET_I2C>;
interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>;
@@ -870,11 +885,11 @@
};
i2c13: i2c-bus@700 {
+ compatible = "aspeed,ast2600-i2c-bus";
#address-cells = <1>;
#size-cells = <0>;
#interrupt-cells = <1>;
- reg = <0x700 0x80>;
- compatible = "aspeed,ast2600-i2c-bus";
+ reg = <0x700 0x80>, <0xDA0 0x20>;
clocks = <&syscon ASPEED_CLK_APB2>;
resets = <&syscon ASPEED_RESET_I2C>;
interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>;
@@ -885,11 +900,11 @@
};
i2c14: i2c-bus@780 {
+ compatible = "aspeed,ast2600-i2c-bus";
#address-cells = <1>;
#size-cells = <0>;
#interrupt-cells = <1>;
- reg = <0x780 0x80>;
- compatible = "aspeed,ast2600-i2c-bus";
+ reg = <0x780 0x80>, <0xDC0 0x20>;
clocks = <&syscon ASPEED_CLK_APB2>;
resets = <&syscon ASPEED_RESET_I2C>;
interrupts = <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>;
@@ -900,11 +915,11 @@
};
i2c15: i2c-bus@800 {
+ compatible = "aspeed,ast2600-i2c-bus";
#address-cells = <1>;
#size-cells = <0>;
#interrupt-cells = <1>;
- reg = <0x800 0x80>;
- compatible = "aspeed,ast2600-i2c-bus";
+ reg = <0x800 0x80>, <0xDE0 0x20>;
clocks = <&syscon ASPEED_CLK_APB2>;
resets = <&syscon ASPEED_RESET_I2C>;
interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>;
@@ -914,3 +929,74 @@
status = "disabled";
};
};
+
+&i2csec {
+
+ i2c_gr0: i2c-global-regs@0 {
+ compatible = "aspeed,ast2600-i2c-global", "syscon";
+ reg = <0x0 0x20>;
+ clocks = <&syscon ASPEED_CLK_APB2>;
+ status = "disabled";
+ };
+
+ i2c16: i2c-bus@80 {
+ compatible = "aspeed,ast2600-i2c-bus";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ #interrupt-cells = <1>;
+ reg = <0x80 0x80>, <0xC00 0x20>;
+ clocks = <&syscon ASPEED_CLK_APB2>;
+ interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
+ bus-frequency = <100000>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_i2c1_default>;
+ buff-mode;
+ status = "disabled";
+ };
+
+ i2c17: i2c-bus@100 {
+ compatible = "aspeed,ast2600-i2c-bus";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ #interrupt-cells = <1>;
+ reg = <0x100 0x80>, <0xC20 0x20>;
+ clocks = <&syscon ASPEED_CLK_APB2>;
+ interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
+ bus-frequency = <100000>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_i2c2_default>;
+ buff-mode;
+ status = "disabled";
+ };
+
+ i2c18: i2c-bus@180 {
+ compatible = "aspeed,ast2600-i2c-bus";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ #interrupt-cells = <1>;
+ reg = <0x180 0x80>, <0xC40 0x20>;
+ clocks = <&syscon ASPEED_CLK_APB2>;
+ interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
+ bus-frequency = <100000>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_i2c3_default>;
+ buff-mode;
+ status = "disabled";
+ };
+
+ i2c19: i2c-bus@200 {
+ compatible = "aspeed,ast2600-i2c-bus";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ #interrupt-cells = <1>;
+ reg = <0x200 0x80>, <0xC60 0x20>;
+ clocks = <&syscon ASPEED_CLK_APB2>;
+ interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
+ bus-frequency = <100000>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_i2c4_default>;
+ buff-mode;
+ status = "disabled";
+ };
+
+};
--
2.17.1
Powered by blists - more mailing lists