[PATCH v1 5/6] ARM: dts: lan966x: add flexcom I2C nodes

Michael Walle michael at walle.cc
Thu Mar 3 08:03:22 PST 2022


Add all I2C nodes of the flexcom IP blocks. The driver supports
FIFO, DMA or both combined. But the latter isn't working correctly.
Thus, skip the fifo-size property for now. DMA is doing single byte
reads in this case.

Keep the nodes disabled by default.

Signed-off-by: Michael Walle <michael at walle.cc>
---
 arch/arm/boot/dts/lan966x.dtsi | 65 ++++++++++++++++++++++++++++++++++
 1 file changed, 65 insertions(+)

diff --git a/arch/arm/boot/dts/lan966x.dtsi b/arch/arm/boot/dts/lan966x.dtsi
index 0616927f1bb1..c4aab7f65790 100644
--- a/arch/arm/boot/dts/lan966x.dtsi
+++ b/arch/arm/boot/dts/lan966x.dtsi
@@ -120,6 +120,19 @@ spi0: spi at 400 {
 				atmel,fifo-size = <32>;
 				status = "disabled";
 			};
+
+			i2c0: i2c at 600 {
+				#address-cells = <1>;
+				#size-cells = <0>;
+				compatible = "microchip,sam9x60-i2c";
+				reg = <0x600 0x200>;
+				interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
+				dmas = <&dma0 AT91_XDMAC_DT_PERID(3)>,
+					   <&dma0 AT91_XDMAC_DT_PERID(2)>;
+				dma-names = "tx", "rx";
+				clocks = <&nic_clk>;
+				status = "disabled";
+			};
 		};
 
 		flx1: flexcom at e0044000 {
@@ -158,6 +171,19 @@ spi1: spi at 400 {
 				atmel,fifo-size = <32>;
 				status = "disabled";
 			};
+
+			i2c1: i2c at 600 {
+				#address-cells = <1>;
+				#size-cells = <0>;
+				compatible = "microchip,sam9x60-i2c";
+				reg = <0x600 0x200>;
+				interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
+				dmas = <&dma0 AT91_XDMAC_DT_PERID(5)>,
+					   <&dma0 AT91_XDMAC_DT_PERID(4)>;
+				dma-names = "tx", "rx";
+				clocks = <&nic_clk>;
+				status = "disabled";
+			};
 		};
 
 		trng: rng at e0048000 {
@@ -213,6 +239,19 @@ spi2: spi at 400 {
 				atmel,fifo-size = <32>;
 				status = "disabled";
 			};
+
+			i2c2: i2c at 600 {
+				#address-cells = <1>;
+				#size-cells = <0>;
+				compatible = "microchip,sam9x60-i2c";
+				reg = <0x600 0x200>;
+				interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
+				dmas = <&dma0 AT91_XDMAC_DT_PERID(7)>,
+					   <&dma0 AT91_XDMAC_DT_PERID(6)>;
+				dma-names = "tx", "rx";
+				clocks = <&nic_clk>;
+				status = "disabled";
+			};
 		};
 
 		flx3: flexcom at e0064000 {
@@ -251,6 +290,19 @@ spi3: spi at 400 {
 				atmel,fifo-size = <32>;
 				status = "disabled";
 			};
+
+			i2c3: i2c at 600 {
+				#address-cells = <1>;
+				#size-cells = <0>;
+				compatible = "microchip,sam9x60-i2c";
+				reg = <0x600 0x200>;
+				interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
+				dmas = <&dma0 AT91_XDMAC_DT_PERID(9)>,
+					   <&dma0 AT91_XDMAC_DT_PERID(8)>;
+				dma-names = "tx", "rx";
+				clocks = <&nic_clk>;
+				status = "disabled";
+			};
 		};
 
 		dma0: dma-controller at e0068000 {
@@ -308,6 +360,19 @@ spi4: spi at 400 {
 				atmel,fifo-size = <32>;
 				status = "disabled";
 			};
+
+			i2c4: i2c at 600 {
+				#address-cells = <1>;
+				#size-cells = <0>;
+				compatible = "microchip,sam9x60-i2c";
+				reg = <0x600 0x200>;
+				interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
+				dmas = <&dma0 AT91_XDMAC_DT_PERID(11)>,
+					   <&dma0 AT91_XDMAC_DT_PERID(10)>;
+				dma-names = "tx", "rx";
+				clocks = <&nic_clk>;
+				status = "disabled";
+			};
 		};
 
 		timer0: timer at e008c000 {
-- 
2.30.2




More information about the linux-arm-kernel mailing list