Sync with dts/upstream/src/arm/renesas/r9a06g032.dtsi

Signed-off-by: Ralph Siemsen <[email protected]>
---
We are very close to being able to use upstream r9a06g032.dtsi, there is
only one remaining non-upstream change (QSPI controller, see next commit).
---
 arch/arm/dts/r9a06g032.dtsi | 270 +++++++++++++++++++++++++++++++++++++++++---
 1 file changed, 254 insertions(+), 16 deletions(-)

diff --git a/arch/arm/dts/r9a06g032.dtsi b/arch/arm/dts/r9a06g032.dtsi
index 0fa565a1c3a..f4f760aff28 100644
--- a/arch/arm/dts/r9a06g032.dtsi
+++ b/arch/arm/dts/r9a06g032.dtsi
@@ -13,6 +13,7 @@
        compatible = "renesas,r9a06g032";
        #address-cells = <1>;
        #size-cells = <1>;
+       interrupt-parent = <&gic>;
 
        cpus {
                #address-cells = <1>;
@@ -63,7 +64,6 @@
                compatible = "simple-bus";
                #address-cells = <1>;
                #size-cells = <1>;
-               interrupt-parent = <&gic>;
                ranges;
 
                rtc0: rtc@40006000 {
@@ -73,8 +73,8 @@
                                     <GIC_SPI 67 IRQ_TYPE_EDGE_RISING>,
                                     <GIC_SPI 68 IRQ_TYPE_EDGE_RISING>;
                        interrupt-names = "alarm", "timer", "pps";
-                       clocks = <&sysctrl R9A06G032_HCLK_RTC>;
-                       clock-names = "hclk";
+                       clocks = <&sysctrl R9A06G032_HCLK_RTC>, <&ext_rtc_clk>;
+                       clock-names = "hclk", "xtal";
                        power-domains = <&sysctrl>;
                        status = "disabled";
                };
@@ -211,8 +211,8 @@
                        reg-io-width = <4>;
                        clocks = <&sysctrl R9A06G032_CLK_UART3>, <&sysctrl 
R9A06G032_HCLK_UART3>;
                        clock-names = "baudclk", "apb_pclk";
-                       dmas = <&dmamux 0 0 0 0 0 1>, <&dmamux 1 0 0 0 1 1>;
-                       dma-names = "rx", "tx";
+                       dmas = <&dmamux 1 0 0 0 1 1>, <&dmamux 0 0 0 0 0 1>;
+                       dma-names = "tx", "rx";
                        status = "disabled";
                };
 
@@ -224,8 +224,8 @@
                        reg-io-width = <4>;
                        clocks = <&sysctrl R9A06G032_CLK_UART4>, <&sysctrl 
R9A06G032_HCLK_UART4>;
                        clock-names = "baudclk", "apb_pclk";
-                       dmas = <&dmamux 2 0 0 0 2 1>, <&dmamux 3 0 0 0 3 1>;
-                       dma-names = "rx", "tx";
+                       dmas = <&dmamux 3 0 0 0 3 1>, <&dmamux 2 0 0 0 2 1>;
+                       dma-names = "tx", "rx";
                        status = "disabled";
                };
 
@@ -237,8 +237,8 @@
                        reg-io-width = <4>;
                        clocks = <&sysctrl R9A06G032_CLK_UART5>, <&sysctrl 
R9A06G032_HCLK_UART5>;
                        clock-names = "baudclk", "apb_pclk";
-                       dmas = <&dmamux 4 0 0 0 4 1>, <&dmamux 5 0 0 0 5 1>;
-                       dma-names = "rx", "tx";
+                       dmas = <&dmamux 5 0 0 0 5 1>, <&dmamux 4 0 0 0 4 1>;
+                       dma-names = "tx", "rx";
                        status = "disabled";
                };
 
@@ -250,8 +250,8 @@
                        reg-io-width = <4>;
                        clocks = <&sysctrl R9A06G032_CLK_UART6>, <&sysctrl 
R9A06G032_HCLK_UART6>;
                        clock-names = "baudclk", "apb_pclk";
-                       dmas = <&dmamux 6 0 0 0 6 1>, <&dmamux 7 0 0 0 7 1>;
-                       dma-names = "rx", "tx";
+                       dmas = <&dmamux 7 0 0 0 7 1>, <&dmamux 6 0 0 0 6 1>;
+                       dma-names = "tx", "rx";
                        status = "disabled";
                };
 
@@ -263,8 +263,40 @@
                        reg-io-width = <4>;
                        clocks = <&sysctrl R9A06G032_CLK_UART7>, <&sysctrl 
R9A06G032_HCLK_UART7>;
                        clock-names = "baudclk", "apb_pclk";
-                       dmas = <&dmamux 4 0 0 0 20 1>, <&dmamux 5 0 0 0 21 1>;
-                       dma-names = "rx", "tx";
+                       dmas = <&dmamux 5 0 0 0 21 1>, <&dmamux 4 0 0 0 20 1>;
+                       dma-names = "tx", "rx";
+                       status = "disabled";
+               };
+
+               i2c1: i2c@40063000 {
+                       compatible = "renesas,r9a06g032-i2c", 
"renesas,rzn1-i2c", "snps,designware-i2c";
+                       reg = <0x40063000 0x100>;
+                       interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&sysctrl R9A06G032_HCLK_I2C0>, <&sysctrl 
R9A06G032_CLK_I2C0>;
+                       clock-names = "ref", "pclk";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               i2c2: i2c@40064000 {
+                       compatible = "renesas,r9a06g032-i2c", 
"renesas,rzn1-i2c", "snps,designware-i2c";
+                       reg = <0x40064000 0x100>;
+                       interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&sysctrl R9A06G032_HCLK_I2C1>, <&sysctrl 
R9A06G032_CLK_I2C1>;
+                       clock-names = "ref", "pclk";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               adc: adc@40065000 {
+                       compatible = "renesas,r9a06g032-adc", 
"renesas,rzn1-adc";
+                       reg = <0x40065000 0x200>;
+                       clocks = <&sysctrl R9A06G032_HCLK_ADC>, <&sysctrl 
R9A06G032_CLK_ADC>;
+                       clock-names = "pclk", "adc";
+                       power-domains = <&sysctrl>;
+                       #io-channel-cells = <1>;
                        status = "disabled";
                };
 
@@ -276,6 +308,30 @@
                        status = "okay";
                };
 
+               sdio1: mmc@40100000 {
+                       compatible = "renesas,r9a06g032-sdhci", 
"renesas,rzn1-sdhci", "arasan,sdhci-8.9a";
+                       reg = <0x40100000 0x1000>;
+                       interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "int", "wakeup";
+                       clocks = <&sysctrl R9A06G032_CLK_SDIO0>, <&sysctrl 
R9A06G032_HCLK_SDIO0>;
+                       clock-names = "clk_xin", "clk_ahb";
+                       no-1-8-v;
+                       status = "disabled";
+               };
+
+               sdio2: mmc@40101000 {
+                       compatible = "renesas,r9a06g032-sdhci", 
"renesas,rzn1-sdhci", "arasan,sdhci-8.9a";
+                       reg = <0x40101000 0x1000>;
+                       interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "int", "wakeup";
+                       clocks = <&sysctrl R9A06G032_CLK_SDIO1>, <&sysctrl 
R9A06G032_HCLK_SDIO1>;
+                       clock-names = "clk_xin", "clk_ahb";
+                       no-1-8-v;
+                       status = "disabled";
+               };
+
                nand_controller: nand-controller@40102000 {
                        compatible = "renesas,r9a06g032-nandc", 
"renesas,rzn1-nandc";
                        reg = <0x40102000 0x2000>;
@@ -316,10 +372,27 @@
                        data-width = <8>;
                };
 
+               gmac1: ethernet@44000000 {
+                       compatible = "renesas,r9a06g032-gmac", 
"renesas,rzn1-gmac", "snps,dwmac";
+                       reg = <0x44000000 0x2000>;
+                       interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "macirq", "eth_wake_irq", "eth_lpi";
+                       clocks = <&sysctrl R9A06G032_HCLK_GMAC0>;
+                       clock-names = "stmmaceth";
+                       power-domains = <&sysctrl>;
+                       snps,multicast-filter-bins = <256>;
+                       snps,perfect-filter-entries = <128>;
+                       tx-fifo-depth = <2048>;
+                       rx-fifo-depth = <4096>;
+                       pcs-handle = <&mii_conv1>;
+                       status = "disabled";
+               };
+
                gmac2: ethernet@44002000 {
                        compatible = "renesas,r9a06g032-gmac", 
"renesas,rzn1-gmac", "snps,dwmac";
                        reg = <0x44002000 0x2000>;
-                       interrupt-parent = <&gic>;
                        interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
@@ -380,6 +453,12 @@
                                 <&sysctrl R9A06G032_CLK_SWITCH>;
                        clock-names = "hclk", "clk";
                        power-domains = <&sysctrl>;
+                       interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "dlr", "switch", "prp", "hub", "ptrn";
                        status = "disabled";
 
                        ethernet-ports {
@@ -436,8 +515,167 @@
                                <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(2) | 
IRQ_TYPE_LEVEL_HIGH)>;
                };
 
+               /*
+                * The GPIO mapping to the corresponding pins is not obvious.
+                * See the hardware documentation for details.
+                */
+               gpio0: gpio@5000b000 {
+                       compatible = "snps,dw-apb-gpio";
+                       reg = <0x5000b000 0x80>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       clocks = <&sysctrl R9A06G032_HCLK_GPIO0>;
+                       clock-names = "bus";
+
+                       /* GPIO0a[0]      connected to pin  GPIO0      */
+                       /* GPIO0a[1..2]   connected to pins GPIO3..4   */
+                       /* GPIO0a[3..4]   connected to pins GPIO9..10  */
+                       /* GPIO0a[5]      connected to pin  GPIO12     */
+                       /* GPIO0a[6..7]   connected to pins GPIO15..16 */
+                       /* GPIO0a[8..9]   connected to pins GPIO21..22 */
+                       /* GPIO0a[10]     connected to pin  GPIO24     */
+                       /* GPIO0a[11..12] connected to pins GPIO27..28 */
+                       /* GPIO0a[13..14] connected to pins GPIO33..34 */
+                       /* GPIO0a[15]     connected to pin  GPIO36     */
+                       /* GPIO0a[16..17] connected to pins GPIO39..40 */
+                       /* GPIO0a[18..19] connected to pins GPIO45..46 */
+                       /* GPIO0a[20]     connected to pin  GPIO48     */
+                       /* GPIO0a[21..22] connected to pins GPIO51..52 */
+                       /* GPIO0a[23..24] connected to pins GPIO57..58 */
+                       /* GPIO0a[25..31] connected to pins GPIO62..68 */
+                       gpio0a: gpio-port@0 {
+                               compatible = "snps,dw-apb-gpio-port";
+                               reg = <0>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               snps,nr-gpios = <32>;
+
+                               interrupt-controller;
+                               interrupt-parent = <&gpioirqmux>;
+                               interrupts = < 0  1  2  3  4  5  6  7
+                                              8  9 10 11 12 13 14 15
+                                             16 17 18 19 20 21 22 23
+                                             24 25 26 27 28 29 30 31>;
+                               #interrupt-cells = <2>;
+                       };
+
+                       /* GPIO0b[0..1]   connected to pins GPIO1..2   */
+                       /* GPIO0b[2..5]   connected to pins GPIO5..8   */
+                       /* GPIO0b[6]      connected to pin  GPIO11     */
+                       /* GPIO0b[7..8]   connected to pins GPIO13..14 */
+                       /* GPIO0b[9..12]  connected to pins GPIO17..20 */
+                       /* GPIO0b[13]     connected to pin  GPIO23     */
+                       /* GPIO0b[14..15] connected to pins GPIO25..26 */
+                       /* GPIO0b[16..19] connected to pins GPIO29..32 */
+                       /* GPIO0b[20]     connected to pin  GPIO35     */
+                       /* GPIO0b[21..22] connected to pins GPIO37..38 */
+                       /* GPIO0b[23..26] connected to pins GPIO41..44 */
+                       /* GPIO0b[27]     connected to pin  GPIO47     */
+                       /* GPIO0b[28..29] connected to pins GPIO49..50 */
+                       /* GPIO0b[30..31] connected to pins GPIO53..54 */
+                       gpio0b: gpio-port@1 {
+                               compatible = "snps,dw-apb-gpio-port";
+                               reg = <1>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               snps,nr-gpios = <32>;
+                       };
+               };
+
+               gpio1: gpio@5000c000 {
+                       compatible = "snps,dw-apb-gpio";
+                       reg = <0x5000c000 0x80>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       clocks = <&sysctrl R9A06G032_HCLK_GPIO1>;
+                       clock-names = "bus";
+
+                       /* GPIO1a[0..4]  connected to pins GPIO69..73 */
+                       /* GPIO1a[5..31] connected to pins GPIO95..121 */
+                       gpio1a: gpio-port@0 {
+                               compatible = "snps,dw-apb-gpio-port";
+                               reg = <0>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               snps,nr-gpios = <32>;
+
+                               interrupt-controller;
+                               interrupt-parent = <&gpioirqmux>;
+                               interrupts = <32 33 34 35 36 37 38 39
+                                             40 41 42 43 44 45 46 47
+                                             48 49 50 51 52 53 54 55
+                                             56 57 58 59 60 61 62 63>;
+                               #interrupt-cells = <2>;
+                       };
+
+                       /* GPIO1b[0..1]   connected to pins GPIO55..56 */
+                       /* GPIO1b[2..4]   connected to pins GPIO59..61 */
+                       /* GPIO1b[5..25]  connected to pins GPIO74..94 */
+                       /* GPIO1b[26..31] connected to pins GPIO150..155 */
+                       gpio1b: gpio-port@1 {
+                               compatible = "snps,dw-apb-gpio-port";
+                               reg = <1>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               snps,nr-gpios = <32>;
+                       };
+               };
+
+               gpio2: gpio@5000d000 {
+                       compatible = "snps,dw-apb-gpio";
+                       reg = <0x5000d000 0x80>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       clocks = <&sysctrl R9A06G032_HCLK_GPIO2>;
+                       clock-names = "bus";
+
+                       /* GPIO2a[0..27]  connected to pins GPIO122..149 */
+                       /* GPIO2a[28..31] connected to pins GPIO156..159 */
+                       gpio2a: gpio-port@0 {
+                               compatible = "snps,dw-apb-gpio-port";
+                               reg = <0>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               snps,nr-gpios = <32>;
+
+                               interrupt-controller;
+                               interrupt-parent = <&gpioirqmux>;
+                               interrupts = <64 65 66 67 68 69 70 71
+                                             72 73 74 75 76 77 78 79
+                                             80 81 82 83 84 85 86 87
+                                             88 89 90 91 92 93 94 95>;
+                               #interrupt-cells = <2>;
+                       };
+
+                       /* GPIO2b[0..9] connected to pins GPIO160..169 */
+                       gpio2b: gpio-port@1 {
+                               compatible = "snps,dw-apb-gpio-port";
+                               reg = <1>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               snps,nr-gpios = <10>;
+                       };
+               };
+
+               gpioirqmux: interrupt-controller@51000480 {
+                       compatible = "renesas,r9a06g032-gpioirqmux", 
"renesas,rzn1-gpioirqmux";
+                       reg = <0x51000480 0x20>;
+                       #interrupt-cells = <1>;
+                       #address-cells = <0>;
+                       interrupt-map-mask = <0x7f>;
+
+                       /*
+                        * Example mapping entry. Board DTs need to overwrite
+                        * 'interrupt-map' with their specific mapping. Check
+                        * the irqmux binding documentation for details.
+                        */
+                       interrupt-map = <0 &gic GIC_SPI 103 
IRQ_TYPE_LEVEL_HIGH>;
+
+                       status = "disabled";
+               };
+
                can0: can@52104000 {
-                       compatible = 
"renesas,r9a06g032-sja1000","renesas,rzn1-sja1000";
+                       compatible = "renesas,r9a06g032-sja1000", 
"renesas,rzn1-sja1000";
                        reg = <0x52104000 0x800>;
                        reg-io-width = <4>;
                        interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
@@ -459,7 +697,6 @@
 
        timer {
                compatible = "arm,armv7-timer";
-               interrupt-parent = <&gic>;
                arm,cpu-registers-not-fw-configured;
                always-on;
                interrupts =
@@ -467,6 +704,7 @@
                        <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) | 
IRQ_TYPE_LEVEL_LOW)>,
                        <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(2) | 
IRQ_TYPE_LEVEL_LOW)>,
                        <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) | 
IRQ_TYPE_LEVEL_LOW)>;
+               interrupt-names = "sec-phys", "phys", "virt", "hyp-phys";
        };
 
        usbphy: usb-phy {

-- 
2.55.0

Reply via email to