1*4882a593Smuzhiyun// SPDX-License-Identifier: GPL-2.0 2*4882a593Smuzhiyun/* 3*4882a593Smuzhiyun * Base Device Tree Source for the Renesas RZ/N1D (R9A06G032) 4*4882a593Smuzhiyun * 5*4882a593Smuzhiyun * Copyright (C) 2018 Renesas Electronics Europe Limited 6*4882a593Smuzhiyun * 7*4882a593Smuzhiyun */ 8*4882a593Smuzhiyun 9*4882a593Smuzhiyun#include <dt-bindings/interrupt-controller/arm-gic.h> 10*4882a593Smuzhiyun#include <dt-bindings/clock/r9a06g032-sysctrl.h> 11*4882a593Smuzhiyun 12*4882a593Smuzhiyun/ { 13*4882a593Smuzhiyun compatible = "renesas,r9a06g032"; 14*4882a593Smuzhiyun #address-cells = <1>; 15*4882a593Smuzhiyun #size-cells = <1>; 16*4882a593Smuzhiyun 17*4882a593Smuzhiyun cpus { 18*4882a593Smuzhiyun #address-cells = <1>; 19*4882a593Smuzhiyun #size-cells = <0>; 20*4882a593Smuzhiyun 21*4882a593Smuzhiyun cpu@0 { 22*4882a593Smuzhiyun device_type = "cpu"; 23*4882a593Smuzhiyun compatible = "arm,cortex-a7"; 24*4882a593Smuzhiyun reg = <0>; 25*4882a593Smuzhiyun clocks = <&sysctrl R9A06G032_CLK_A7MP>; 26*4882a593Smuzhiyun }; 27*4882a593Smuzhiyun 28*4882a593Smuzhiyun cpu@1 { 29*4882a593Smuzhiyun device_type = "cpu"; 30*4882a593Smuzhiyun compatible = "arm,cortex-a7"; 31*4882a593Smuzhiyun reg = <1>; 32*4882a593Smuzhiyun clocks = <&sysctrl R9A06G032_CLK_A7MP>; 33*4882a593Smuzhiyun enable-method = "renesas,r9a06g032-smp"; 34*4882a593Smuzhiyun cpu-release-addr = <0 0x4000c204>; 35*4882a593Smuzhiyun }; 36*4882a593Smuzhiyun }; 37*4882a593Smuzhiyun 38*4882a593Smuzhiyun ext_jtag_clk: extjtagclk { 39*4882a593Smuzhiyun #clock-cells = <0>; 40*4882a593Smuzhiyun compatible = "fixed-clock"; 41*4882a593Smuzhiyun clock-frequency = <0>; 42*4882a593Smuzhiyun }; 43*4882a593Smuzhiyun 44*4882a593Smuzhiyun ext_mclk: extmclk { 45*4882a593Smuzhiyun #clock-cells = <0>; 46*4882a593Smuzhiyun compatible = "fixed-clock"; 47*4882a593Smuzhiyun clock-frequency = <40000000>; 48*4882a593Smuzhiyun }; 49*4882a593Smuzhiyun 50*4882a593Smuzhiyun ext_rgmii_ref: extrgmiiref { 51*4882a593Smuzhiyun #clock-cells = <0>; 52*4882a593Smuzhiyun compatible = "fixed-clock"; 53*4882a593Smuzhiyun clock-frequency = <0>; 54*4882a593Smuzhiyun }; 55*4882a593Smuzhiyun 56*4882a593Smuzhiyun ext_rtc_clk: extrtcclk { 57*4882a593Smuzhiyun #clock-cells = <0>; 58*4882a593Smuzhiyun compatible = "fixed-clock"; 59*4882a593Smuzhiyun clock-frequency = <0>; 60*4882a593Smuzhiyun }; 61*4882a593Smuzhiyun 62*4882a593Smuzhiyun soc { 63*4882a593Smuzhiyun compatible = "simple-bus"; 64*4882a593Smuzhiyun #address-cells = <1>; 65*4882a593Smuzhiyun #size-cells = <1>; 66*4882a593Smuzhiyun interrupt-parent = <&gic>; 67*4882a593Smuzhiyun ranges; 68*4882a593Smuzhiyun 69*4882a593Smuzhiyun sysctrl: system-controller@4000c000 { 70*4882a593Smuzhiyun compatible = "renesas,r9a06g032-sysctrl"; 71*4882a593Smuzhiyun reg = <0x4000c000 0x1000>; 72*4882a593Smuzhiyun status = "okay"; 73*4882a593Smuzhiyun #clock-cells = <1>; 74*4882a593Smuzhiyun 75*4882a593Smuzhiyun clocks = <&ext_mclk>, <&ext_rtc_clk>, 76*4882a593Smuzhiyun <&ext_jtag_clk>, <&ext_rgmii_ref>; 77*4882a593Smuzhiyun clock-names = "mclk", "rtc", "jtag", "rgmii_ref_ext"; 78*4882a593Smuzhiyun }; 79*4882a593Smuzhiyun 80*4882a593Smuzhiyun uart0: serial@40060000 { 81*4882a593Smuzhiyun compatible = "renesas,r9a06g032-uart", "renesas,rzn1-uart", "snps,dw-apb-uart"; 82*4882a593Smuzhiyun reg = <0x40060000 0x400>; 83*4882a593Smuzhiyun interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>; 84*4882a593Smuzhiyun reg-shift = <2>; 85*4882a593Smuzhiyun reg-io-width = <4>; 86*4882a593Smuzhiyun clocks = <&sysctrl R9A06G032_CLK_UART0>, <&sysctrl R9A06G032_HCLK_UART0>; 87*4882a593Smuzhiyun clock-names = "baudclk", "apb_pclk"; 88*4882a593Smuzhiyun status = "disabled"; 89*4882a593Smuzhiyun }; 90*4882a593Smuzhiyun 91*4882a593Smuzhiyun uart1: serial@40061000 { 92*4882a593Smuzhiyun compatible = "renesas,r9a06g032-uart", "renesas,rzn1-uart", "snps,dw-apb-uart"; 93*4882a593Smuzhiyun reg = <0x40061000 0x400>; 94*4882a593Smuzhiyun interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; 95*4882a593Smuzhiyun reg-shift = <2>; 96*4882a593Smuzhiyun reg-io-width = <4>; 97*4882a593Smuzhiyun clocks = <&sysctrl R9A06G032_CLK_UART1>, <&sysctrl R9A06G032_HCLK_UART1>; 98*4882a593Smuzhiyun clock-names = "baudclk", "apb_pclk"; 99*4882a593Smuzhiyun status = "disabled"; 100*4882a593Smuzhiyun }; 101*4882a593Smuzhiyun 102*4882a593Smuzhiyun uart2: serial@40062000 { 103*4882a593Smuzhiyun compatible = "renesas,r9a06g032-uart", "renesas,rzn1-uart", "snps,dw-apb-uart"; 104*4882a593Smuzhiyun reg = <0x40062000 0x400>; 105*4882a593Smuzhiyun interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; 106*4882a593Smuzhiyun reg-shift = <2>; 107*4882a593Smuzhiyun reg-io-width = <4>; 108*4882a593Smuzhiyun clocks = <&sysctrl R9A06G032_CLK_UART2>, <&sysctrl R9A06G032_HCLK_UART2>; 109*4882a593Smuzhiyun clock-names = "baudclk", "apb_pclk"; 110*4882a593Smuzhiyun status = "disabled"; 111*4882a593Smuzhiyun }; 112*4882a593Smuzhiyun 113*4882a593Smuzhiyun uart3: serial@50000000 { 114*4882a593Smuzhiyun compatible = "renesas,r9a06g032-uart", "renesas,rzn1-uart"; 115*4882a593Smuzhiyun reg = <0x50000000 0x400>; 116*4882a593Smuzhiyun interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>; 117*4882a593Smuzhiyun reg-shift = <2>; 118*4882a593Smuzhiyun reg-io-width = <4>; 119*4882a593Smuzhiyun clocks = <&sysctrl R9A06G032_CLK_UART3>, <&sysctrl R9A06G032_HCLK_UART3>; 120*4882a593Smuzhiyun clock-names = "baudclk", "apb_pclk"; 121*4882a593Smuzhiyun status = "disabled"; 122*4882a593Smuzhiyun }; 123*4882a593Smuzhiyun 124*4882a593Smuzhiyun uart4: serial@50001000 { 125*4882a593Smuzhiyun compatible = "renesas,r9a06g032-uart", "renesas,rzn1-uart"; 126*4882a593Smuzhiyun reg = <0x50001000 0x400>; 127*4882a593Smuzhiyun interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>; 128*4882a593Smuzhiyun reg-shift = <2>; 129*4882a593Smuzhiyun reg-io-width = <4>; 130*4882a593Smuzhiyun clocks = <&sysctrl R9A06G032_CLK_UART4>, <&sysctrl R9A06G032_HCLK_UART4>; 131*4882a593Smuzhiyun clock-names = "baudclk", "apb_pclk"; 132*4882a593Smuzhiyun status = "disabled"; 133*4882a593Smuzhiyun }; 134*4882a593Smuzhiyun 135*4882a593Smuzhiyun uart5: serial@50002000 { 136*4882a593Smuzhiyun compatible = "renesas,r9a06g032-uart", "renesas,rzn1-uart"; 137*4882a593Smuzhiyun reg = <0x50002000 0x400>; 138*4882a593Smuzhiyun interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>; 139*4882a593Smuzhiyun reg-shift = <2>; 140*4882a593Smuzhiyun reg-io-width = <4>; 141*4882a593Smuzhiyun clocks = <&sysctrl R9A06G032_CLK_UART5>, <&sysctrl R9A06G032_HCLK_UART5>; 142*4882a593Smuzhiyun clock-names = "baudclk", "apb_pclk"; 143*4882a593Smuzhiyun status = "disabled"; 144*4882a593Smuzhiyun }; 145*4882a593Smuzhiyun 146*4882a593Smuzhiyun uart6: serial@50003000 { 147*4882a593Smuzhiyun compatible = "renesas,r9a06g032-uart", "renesas,rzn1-uart"; 148*4882a593Smuzhiyun reg = <0x50003000 0x400>; 149*4882a593Smuzhiyun interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>; 150*4882a593Smuzhiyun reg-shift = <2>; 151*4882a593Smuzhiyun reg-io-width = <4>; 152*4882a593Smuzhiyun clocks = <&sysctrl R9A06G032_CLK_UART6>, <&sysctrl R9A06G032_HCLK_UART6>; 153*4882a593Smuzhiyun clock-names = "baudclk", "apb_pclk"; 154*4882a593Smuzhiyun status = "disabled"; 155*4882a593Smuzhiyun }; 156*4882a593Smuzhiyun 157*4882a593Smuzhiyun uart7: serial@50004000 { 158*4882a593Smuzhiyun compatible = "renesas,r9a06g032-uart", "renesas,rzn1-uart"; 159*4882a593Smuzhiyun reg = <0x50004000 0x400>; 160*4882a593Smuzhiyun interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>; 161*4882a593Smuzhiyun reg-shift = <2>; 162*4882a593Smuzhiyun reg-io-width = <4>; 163*4882a593Smuzhiyun clocks = <&sysctrl R9A06G032_CLK_UART7>, <&sysctrl R9A06G032_HCLK_UART7>; 164*4882a593Smuzhiyun clock-names = "baudclk", "apb_pclk"; 165*4882a593Smuzhiyun status = "disabled"; 166*4882a593Smuzhiyun }; 167*4882a593Smuzhiyun 168*4882a593Smuzhiyun pinctrl: pinctrl@40067000 { 169*4882a593Smuzhiyun compatible = "renesas,r9a06g032-pinctrl", "renesas,rzn1-pinctrl"; 170*4882a593Smuzhiyun reg = <0x40067000 0x1000>, <0x51000000 0x480>; 171*4882a593Smuzhiyun clocks = <&sysctrl R9A06G032_HCLK_PINCONFIG>; 172*4882a593Smuzhiyun clock-names = "bus"; 173*4882a593Smuzhiyun status = "okay"; 174*4882a593Smuzhiyun }; 175*4882a593Smuzhiyun 176*4882a593Smuzhiyun gic: interrupt-controller@44101000 { 177*4882a593Smuzhiyun compatible = "arm,gic-400", "arm,cortex-a7-gic"; 178*4882a593Smuzhiyun interrupt-controller; 179*4882a593Smuzhiyun #interrupt-cells = <3>; 180*4882a593Smuzhiyun reg = <0x44101000 0x1000>, /* Distributer */ 181*4882a593Smuzhiyun <0x44102000 0x2000>, /* CPU interface */ 182*4882a593Smuzhiyun <0x44104000 0x2000>, /* Virt interface control */ 183*4882a593Smuzhiyun <0x44106000 0x2000>; /* Virt CPU interface */ 184*4882a593Smuzhiyun interrupts = 185*4882a593Smuzhiyun <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_HIGH)>; 186*4882a593Smuzhiyun }; 187*4882a593Smuzhiyun }; 188*4882a593Smuzhiyun 189*4882a593Smuzhiyun timer { 190*4882a593Smuzhiyun compatible = "arm,cortex-a7-timer", 191*4882a593Smuzhiyun "arm,armv7-timer"; 192*4882a593Smuzhiyun interrupt-parent = <&gic>; 193*4882a593Smuzhiyun arm,cpu-registers-not-fw-configured; 194*4882a593Smuzhiyun always-on; 195*4882a593Smuzhiyun interrupts = 196*4882a593Smuzhiyun <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>, 197*4882a593Smuzhiyun <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>, 198*4882a593Smuzhiyun <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>, 199*4882a593Smuzhiyun <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>; 200*4882a593Smuzhiyun }; 201*4882a593Smuzhiyun}; 202