[PATCH/RFC 04/19] ARM: shmobile: r8a7793: add iic(b) to device tree

Simon Horman horms+renesas at verge.net.au
Thu Dec 10 18:52:41 PST 2015


Instantiate iic(b) controllers in r8a7793 device tree.

Based on similar work for the r8a7791 and r8a7791 by Wolfram Sang.

Cc: Wolfram Sang <wsa at sang-engineering.com>
Signed-off-by: Simon Horman <horms+renesas at verge.net.au>

---
The out-of order aliasing of iic to i2c is as per the documentation.
This differs from the scheme in use in the dtsi files for
other R-Car SoCs.

It would be nice to harmonise this somehow but I'm unsure of the backwards
compatibility issues.

For reference those aliases are:

* r8a7790:
  - i2c0 = &i2c0;
  - i2c1 = &i2c1;
  - i2c2 = &i2c2;
  - i2c3 = &i2c3;
  - i2c4 = &iic0;
  - i2c5 = &iic1;
  - i2c6 = &iic2;
  - i2c7 = &iic3;

  Notes:
  - The documentation does not make note of i2c aliases for iic
    (v1.02, table 12.2.1)
  - i2c4 and i2c5 are not present on this SoC

* r8a7791:
  - i2c0 = &i2c0;
  - i2c1 = &i2c1;
  - i2c2 = &i2c2;
  - i2c3 = &i2c3;
  - i2c4 = &i2c4;
  - i2c5 = &i2c5;
  - i2c6 = &i2c6;
  - i2c7 = &i2c7;
  - i2c8 = &i2c8;

  Notes:
  - i2c is used in place of iic and it is my understanding that
    i2c6 is iic0, i2c7 is iic1 and i2c8 is iic3.
  - iic3 is not present on this SoC
  - Documentation makes note of (v1.02, table 12.2.1).
    They are the same as those used in this patch for the r8a7793

* r8a7794:
  - i2c0 = &i2c0;
  - i2c1 = &i2c1;
  - i2c2 = &i2c2;
  - i2c3 = &i2c3;
  - i2c4 = &i2c4;
  - i2c5 = &i2c5;

  Notes:
  - iic0 and iic1 nodes not present in mainline but are present on this SoC
  - Documentation makes note of the following aliases (v1.02, table 12.2.1)
    - iic6 = &iic0
    - iic8 = &iic1
  - iic2 and iic3 are not present on this SoC
---
 arch/arm/boot/dts/r8a7793.dtsi | 42 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 42 insertions(+)

diff --git a/arch/arm/boot/dts/r8a7793.dtsi b/arch/arm/boot/dts/r8a7793.dtsi
index b8998b9519f6..cdf40abcc36c 100644
--- a/arch/arm/boot/dts/r8a7793.dtsi
+++ b/arch/arm/boot/dts/r8a7793.dtsi
@@ -25,6 +25,9 @@
 		i2c3 = &i2c3;
 		i2c4 = &i2c4;
 		i2c5 = &i2c5;
+		i2c6 = &iic3;
+		i2c7 = &iic0;
+		i2c8 = &iic1;
 		spi0 = &qspi;
 	};
 
@@ -478,6 +481,45 @@
 		status = "disabled";
 	};
 
+	iic0: i2c at e6500000 {
+		#address-cells = <1>;
+		#size-cells = <0>;
+		compatible = "renesas,iic-r8a7793", "renesas,rmobile-iic";
+		reg = <0 0xe6500000 0 0x425>;
+		interrupts = <0 174 IRQ_TYPE_LEVEL_HIGH>;
+		clocks = <&mstp3_clks R8A7793_CLK_IIC0>;
+		dmas = <&dmac0 0x61>, <&dmac0 0x62>;
+		dma-names = "tx", "rx";
+		power-domains = <&cpg_clocks>;
+		status = "disabled";
+	};
+
+	iic1: i2c at e6510000 {
+		#address-cells = <1>;
+		#size-cells = <0>;
+		compatible = "renesas,iic-r8a7793", "renesas,rmobile-iic";
+		reg = <0 0xe6510000 0 0x425>;
+		interrupts = <0 175 IRQ_TYPE_LEVEL_HIGH>;
+		clocks = <&mstp3_clks R8A7793_CLK_IIC1>;
+		dmas = <&dmac0 0x65>, <&dmac0 0x66>;
+		dma-names = "tx", "rx";
+		power-domains = <&cpg_clocks>;
+		status = "disabled";
+	};
+
+	iic3: i2c at e60b0000 {
+		#address-cells = <1>;
+		#size-cells = <0>;
+		compatible = "renesas,iic-r8a7793", "renesas,rmobile-iic";
+		reg = <0 0xe60b0000 0 0x425>;
+		interrupts = <0 173 IRQ_TYPE_LEVEL_HIGH>;
+		clocks = <&mstp9_clks R8A7793_CLK_IICDVFS>;
+		dmas = <&dmac0 0x77>, <&dmac0 0x78>;
+		dma-names = "tx", "rx";
+		power-domains = <&cpg_clocks>;
+		status = "disabled";
+	};
+
 	scif0: serial at e6e60000 {
 		compatible = "renesas,scif-r8a7793", "renesas,scif";
 		reg = <0 0xe6e60000 0 64>;
-- 
2.1.4




More information about the linux-arm-kernel mailing list