Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: GPL-2.0
0002 /*
0003  * Base Device Tree Source for the Renesas RZ/N1D (R9A06G032)
0004  *
0005  * Copyright (C) 2018 Renesas Electronics Europe Limited
0006  *
0007  */
0008 
0009 #include <dt-bindings/interrupt-controller/arm-gic.h>
0010 #include <dt-bindings/clock/r9a06g032-sysctrl.h>
0011 
0012 / {
0013         compatible = "renesas,r9a06g032";
0014         #address-cells = <1>;
0015         #size-cells = <1>;
0016 
0017         cpus {
0018                 #address-cells = <1>;
0019                 #size-cells = <0>;
0020 
0021                 cpu@0 {
0022                         device_type = "cpu";
0023                         compatible = "arm,cortex-a7";
0024                         reg = <0>;
0025                         clocks = <&sysctrl R9A06G032_CLK_A7MP>;
0026                 };
0027 
0028                 cpu@1 {
0029                         device_type = "cpu";
0030                         compatible = "arm,cortex-a7";
0031                         reg = <1>;
0032                         clocks = <&sysctrl R9A06G032_CLK_A7MP>;
0033                         enable-method = "renesas,r9a06g032-smp";
0034                         cpu-release-addr = <0 0x4000c204>;
0035                 };
0036         };
0037 
0038         ext_jtag_clk: extjtagclk {
0039                 #clock-cells = <0>;
0040                 compatible = "fixed-clock";
0041                 clock-frequency = <0>;
0042         };
0043 
0044         ext_mclk: extmclk {
0045                 #clock-cells = <0>;
0046                 compatible = "fixed-clock";
0047                 clock-frequency = <40000000>;
0048         };
0049 
0050         ext_rgmii_ref: extrgmiiref {
0051                 #clock-cells = <0>;
0052                 compatible = "fixed-clock";
0053                 clock-frequency = <0>;
0054         };
0055 
0056         ext_rtc_clk: extrtcclk {
0057                 #clock-cells = <0>;
0058                 compatible = "fixed-clock";
0059                 clock-frequency = <0>;
0060         };
0061 
0062         soc {
0063                 compatible = "simple-bus";
0064                 #address-cells = <1>;
0065                 #size-cells = <1>;
0066                 interrupt-parent = <&gic>;
0067                 ranges;
0068 
0069                 rtc0: rtc@40006000 {
0070                         compatible = "renesas,r9a06g032-rtc", "renesas,rzn1-rtc";
0071                         reg = <0x40006000 0x1000>;
0072                         interrupts = <GIC_SPI 66 IRQ_TYPE_EDGE_RISING>,
0073                                      <GIC_SPI 67 IRQ_TYPE_EDGE_RISING>,
0074                                      <GIC_SPI 68 IRQ_TYPE_EDGE_RISING>;
0075                         interrupt-names = "alarm", "timer", "pps";
0076                         clocks = <&sysctrl R9A06G032_HCLK_RTC>;
0077                         clock-names = "hclk";
0078                         power-domains = <&sysctrl>;
0079                         status = "disabled";
0080                 };
0081 
0082                 wdt0: watchdog@40008000 {
0083                         compatible = "renesas,r9a06g032-wdt", "renesas,rzn1-wdt";
0084                         reg = <0x40008000 0x1000>;
0085                         interrupts = <GIC_SPI 73 IRQ_TYPE_EDGE_RISING>;
0086                         clocks = <&sysctrl R9A06G032_CLK_WATCHDOG>;
0087                         status = "disabled";
0088                 };
0089 
0090                 wdt1: watchdog@40009000 {
0091                         compatible = "renesas,r9a06g032-wdt", "renesas,rzn1-wdt";
0092                         reg = <0x40009000 0x1000>;
0093                         interrupts = <GIC_SPI 74 IRQ_TYPE_EDGE_RISING>;
0094                         clocks = <&sysctrl R9A06G032_CLK_WATCHDOG>;
0095                         status = "disabled";
0096                 };
0097 
0098                 sysctrl: system-controller@4000c000 {
0099                         compatible = "renesas,r9a06g032-sysctrl";
0100                         reg = <0x4000c000 0x1000>;
0101                         status = "okay";
0102                         #clock-cells = <1>;
0103                         #power-domain-cells = <0>;
0104 
0105                         clocks = <&ext_mclk>, <&ext_rtc_clk>,
0106                                         <&ext_jtag_clk>, <&ext_rgmii_ref>;
0107                         clock-names = "mclk", "rtc", "jtag", "rgmii_ref_ext";
0108                         #address-cells = <1>;
0109                         #size-cells = <1>;
0110 
0111                         dmamux: dma-router@a0 {
0112                                 compatible = "renesas,rzn1-dmamux";
0113                                 reg = <0xa0 4>;
0114                                 #dma-cells = <6>;
0115                                 dma-requests = <32>;
0116                                 dma-masters = <&dma0 &dma1>;
0117                         };
0118                 };
0119 
0120                 pci_usb: pci@40030000 {
0121                         compatible = "renesas,pci-r9a06g032", "renesas,pci-rzn1";
0122                         device_type = "pci";
0123                         clocks = <&sysctrl R9A06G032_HCLK_USBH>,
0124                                  <&sysctrl R9A06G032_HCLK_USBPM>,
0125                                  <&sysctrl R9A06G032_CLK_PCI_USB>;
0126                         clock-names = "hclkh", "hclkpm", "pciclk";
0127                         power-domains = <&sysctrl>;
0128                         reg = <0x40030000 0xc00>,
0129                               <0x40020000 0x1100>;
0130                         interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
0131                         status = "disabled";
0132 
0133                         bus-range = <0 0>;
0134                         #address-cells = <3>;
0135                         #size-cells = <2>;
0136                         #interrupt-cells = <1>;
0137                         ranges = <0x02000000 0 0x40020000 0x40020000 0 0x00010000>;
0138                         /* Should map all possible DDR as inbound ranges, but
0139                          * the IP only supports a 256MB, 512MB, or 1GB window.
0140                          * flags, PCI addr (64-bit), CPU addr, PCI size (64-bit)
0141                          */
0142                         dma-ranges = <0x42000000 0 0x80000000 0x80000000 0 0x40000000>;
0143                         interrupt-map-mask = <0xf800 0 0 0x7>;
0144                         interrupt-map = <0x0000 0 0 1 &gic GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH
0145                                          0x0800 0 0 1 &gic GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH
0146                                          0x1000 0 0 2 &gic GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
0147 
0148                         usb@1,0 {
0149                                 reg = <0x800 0 0 0 0>;
0150                                 phys = <&usbphy>;
0151                                 phy-names = "usb";
0152                         };
0153 
0154                         usb@2,0 {
0155                                 reg = <0x1000 0 0 0 0>;
0156                                 phys = <&usbphy>;
0157                                 phy-names = "usb";
0158                         };
0159                 };
0160 
0161                 uart0: serial@40060000 {
0162                         compatible = "renesas,r9a06g032-uart", "renesas,rzn1-uart", "snps,dw-apb-uart";
0163                         reg = <0x40060000 0x400>;
0164                         interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
0165                         reg-shift = <2>;
0166                         reg-io-width = <4>;
0167                         clocks = <&sysctrl R9A06G032_CLK_UART0>, <&sysctrl R9A06G032_HCLK_UART0>;
0168                         clock-names = "baudclk", "apb_pclk";
0169                         status = "disabled";
0170                 };
0171 
0172                 uart1: serial@40061000 {
0173                         compatible = "renesas,r9a06g032-uart", "renesas,rzn1-uart", "snps,dw-apb-uart";
0174                         reg = <0x40061000 0x400>;
0175                         interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
0176                         reg-shift = <2>;
0177                         reg-io-width = <4>;
0178                         clocks = <&sysctrl R9A06G032_CLK_UART1>, <&sysctrl R9A06G032_HCLK_UART1>;
0179                         clock-names = "baudclk", "apb_pclk";
0180                         status = "disabled";
0181                 };
0182 
0183                 uart2: serial@40062000 {
0184                         compatible = "renesas,r9a06g032-uart", "renesas,rzn1-uart", "snps,dw-apb-uart";
0185                         reg = <0x40062000 0x400>;
0186                         interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
0187                         reg-shift = <2>;
0188                         reg-io-width = <4>;
0189                         clocks = <&sysctrl R9A06G032_CLK_UART2>, <&sysctrl R9A06G032_HCLK_UART2>;
0190                         clock-names = "baudclk", "apb_pclk";
0191                         status = "disabled";
0192                 };
0193 
0194                 uart3: serial@50000000 {
0195                         compatible = "renesas,r9a06g032-uart", "renesas,rzn1-uart";
0196                         reg = <0x50000000 0x400>;
0197                         interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
0198                         reg-shift = <2>;
0199                         reg-io-width = <4>;
0200                         clocks = <&sysctrl R9A06G032_CLK_UART3>, <&sysctrl R9A06G032_HCLK_UART3>;
0201                         clock-names = "baudclk", "apb_pclk";
0202                         dmas =  <&dmamux 0 0 0 0 0 1>, <&dmamux 1 0 0 0 1 1>;
0203                         dma-names = "rx", "tx";
0204                         status = "disabled";
0205                 };
0206 
0207                 uart4: serial@50001000 {
0208                         compatible = "renesas,r9a06g032-uart", "renesas,rzn1-uart";
0209                         reg = <0x50001000 0x400>;
0210                         interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
0211                         reg-shift = <2>;
0212                         reg-io-width = <4>;
0213                         clocks = <&sysctrl R9A06G032_CLK_UART4>, <&sysctrl R9A06G032_HCLK_UART4>;
0214                         clock-names = "baudclk", "apb_pclk";
0215                         dmas =  <&dmamux 2 0 0 0 2 1>, <&dmamux 3 0 0 0 3 1>;
0216                         dma-names = "rx", "tx";
0217                         status = "disabled";
0218                 };
0219 
0220                 uart5: serial@50002000 {
0221                         compatible = "renesas,r9a06g032-uart", "renesas,rzn1-uart";
0222                         reg = <0x50002000 0x400>;
0223                         interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
0224                         reg-shift = <2>;
0225                         reg-io-width = <4>;
0226                         clocks = <&sysctrl R9A06G032_CLK_UART5>, <&sysctrl R9A06G032_HCLK_UART5>;
0227                         clock-names = "baudclk", "apb_pclk";
0228                         dmas =  <&dmamux 4 0 0 0 4 1>, <&dmamux 5 0 0 0 5 1>;
0229                         dma-names = "rx", "tx";
0230                         status = "disabled";
0231                 };
0232 
0233                 uart6: serial@50003000 {
0234                         compatible = "renesas,r9a06g032-uart", "renesas,rzn1-uart";
0235                         reg = <0x50003000 0x400>;
0236                         interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
0237                         reg-shift = <2>;
0238                         reg-io-width = <4>;
0239                         clocks = <&sysctrl R9A06G032_CLK_UART6>, <&sysctrl R9A06G032_HCLK_UART6>;
0240                         clock-names = "baudclk", "apb_pclk";
0241                         dmas =  <&dmamux 6 0 0 0 6 1>, <&dmamux 7 0 0 0 7 1>;
0242                         dma-names = "rx", "tx";
0243                         status = "disabled";
0244                 };
0245 
0246                 uart7: serial@50004000 {
0247                         compatible = "renesas,r9a06g032-uart", "renesas,rzn1-uart";
0248                         reg = <0x50004000 0x400>;
0249                         interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
0250                         reg-shift = <2>;
0251                         reg-io-width = <4>;
0252                         clocks = <&sysctrl R9A06G032_CLK_UART7>, <&sysctrl R9A06G032_HCLK_UART7>;
0253                         clock-names = "baudclk", "apb_pclk";
0254                         dmas =  <&dmamux 4 0 0 0 20 1>, <&dmamux 5 0 0 0 21 1>;
0255                         dma-names = "rx", "tx";
0256                         status = "disabled";
0257                 };
0258 
0259                 pinctrl: pinctrl@40067000 {
0260                         compatible = "renesas,r9a06g032-pinctrl", "renesas,rzn1-pinctrl";
0261                         reg = <0x40067000 0x1000>, <0x51000000 0x480>;
0262                         clocks = <&sysctrl R9A06G032_HCLK_PINCONFIG>;
0263                         clock-names = "bus";
0264                         status = "okay";
0265                 };
0266 
0267                 nand_controller: nand-controller@40102000 {
0268                         compatible = "renesas,r9a06g032-nandc", "renesas,rzn1-nandc";
0269                         reg = <0x40102000 0x2000>;
0270                         interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
0271                         clocks = <&sysctrl R9A06G032_HCLK_NAND>, <&sysctrl R9A06G032_CLK_NAND>;
0272                         clock-names = "hclk", "eclk";
0273                         power-domains = <&sysctrl>;
0274                         #address-cells = <1>;
0275                         #size-cells = <0>;
0276                         status = "disabled";
0277                 };
0278 
0279                 dma0: dma-controller@40104000 {
0280                         compatible = "renesas,r9a06g032-dma", "renesas,rzn1-dma";
0281                         reg = <0x40104000 0x1000>;
0282                         interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
0283                         clock-names = "hclk";
0284                         clocks = <&sysctrl R9A06G032_HCLK_DMA0>;
0285                         dma-channels = <8>;
0286                         dma-requests = <16>;
0287                         dma-masters = <1>;
0288                         #dma-cells = <3>;
0289                         block_size = <0xfff>;
0290                         data-width = <8>;
0291                 };
0292 
0293                 dma1: dma-controller@40105000 {
0294                         compatible = "renesas,r9a06g032-dma", "renesas,rzn1-dma";
0295                         reg = <0x40105000 0x1000>;
0296                         interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
0297                         clock-names = "hclk";
0298                         clocks = <&sysctrl R9A06G032_HCLK_DMA1>;
0299                         dma-channels = <8>;
0300                         dma-requests = <16>;
0301                         dma-masters = <1>;
0302                         #dma-cells = <3>;
0303                         block_size = <0xfff>;
0304                         data-width = <8>;
0305                 };
0306 
0307                 gmac2: ethernet@44002000 {
0308                         compatible = "renesas,r9a06g032-gmac", "renesas,rzn1-gmac", "snps,dwmac";
0309                         reg = <0x44002000 0x2000>;
0310                         interrupt-parent = <&gic>;
0311                         interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>,
0312                                      <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>,
0313                                      <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
0314                         interrupt-names = "macirq", "eth_wake_irq", "eth_lpi";
0315                         clocks = <&sysctrl R9A06G032_HCLK_GMAC1>;
0316                         clock-names = "stmmaceth";
0317                         power-domains = <&sysctrl>;
0318                         snps,multicast-filter-bins = <256>;
0319                         snps,perfect-filter-entries = <128>;
0320                         tx-fifo-depth = <2048>;
0321                         rx-fifo-depth = <4096>;
0322                         status = "disabled";
0323                 };
0324 
0325                 eth_miic: eth-miic@44030000 {
0326                         compatible = "renesas,r9a06g032-miic", "renesas,rzn1-miic";
0327                         #address-cells = <1>;
0328                         #size-cells = <0>;
0329                         reg = <0x44030000 0x10000>;
0330                         clocks = <&sysctrl R9A06G032_CLK_MII_REF>,
0331                                  <&sysctrl R9A06G032_CLK_RGMII_REF>,
0332                                  <&sysctrl R9A06G032_CLK_RMII_REF>,
0333                                  <&sysctrl R9A06G032_HCLK_SWITCH_RG>;
0334                         clock-names = "mii_ref", "rgmii_ref", "rmii_ref", "hclk";
0335                         power-domains = <&sysctrl>;
0336                         status = "disabled";
0337 
0338                         mii_conv1: mii-conv@1 {
0339                                 reg = <1>;
0340                                 status = "disabled";
0341                         };
0342 
0343                         mii_conv2: mii-conv@2 {
0344                                 reg = <2>;
0345                                 status = "disabled";
0346                         };
0347 
0348                         mii_conv3: mii-conv@3 {
0349                                 reg = <3>;
0350                                 status = "disabled";
0351                         };
0352 
0353                         mii_conv4: mii-conv@4 {
0354                                 reg = <4>;
0355                                 status = "disabled";
0356                         };
0357 
0358                         mii_conv5: mii-conv@5 {
0359                                 reg = <5>;
0360                                 status = "disabled";
0361                         };
0362                 };
0363 
0364                 switch: switch@44050000 {
0365                         compatible = "renesas,r9a06g032-a5psw", "renesas,rzn1-a5psw";
0366                         reg = <0x44050000 0x10000>;
0367                         clocks = <&sysctrl R9A06G032_HCLK_SWITCH>,
0368                                  <&sysctrl R9A06G032_CLK_SWITCH>;
0369                         clock-names = "hclk", "clk";
0370                         power-domains = <&sysctrl>;
0371                         status = "disabled";
0372 
0373                         ethernet-ports {
0374                                 #address-cells = <1>;
0375                                 #size-cells = <0>;
0376 
0377                                 switch_port0: port@0 {
0378                                         reg = <0>;
0379                                         pcs-handle = <&mii_conv5>;
0380                                         status = "disabled";
0381                                 };
0382 
0383                                 switch_port1: port@1 {
0384                                         reg = <1>;
0385                                         pcs-handle = <&mii_conv4>;
0386                                         status = "disabled";
0387                                 };
0388 
0389                                 switch_port2: port@2 {
0390                                         reg = <2>;
0391                                         pcs-handle = <&mii_conv3>;
0392                                         status = "disabled";
0393                                 };
0394 
0395                                 switch_port3: port@3 {
0396                                         reg = <3>;
0397                                         pcs-handle = <&mii_conv2>;
0398                                         status = "disabled";
0399                                 };
0400 
0401                                 switch_port4: port@4 {
0402                                         reg = <4>;
0403                                         ethernet = <&gmac2>;
0404                                         label = "cpu";
0405                                         phy-mode = "internal";
0406                                         status = "disabled";
0407                                         fixed-link {
0408                                                 speed = <1000>;
0409                                                 full-duplex;
0410                                         };
0411                                 };
0412                         };
0413                 };
0414 
0415                 gic: interrupt-controller@44101000 {
0416                         compatible = "arm,gic-400", "arm,cortex-a7-gic";
0417                         interrupt-controller;
0418                         #interrupt-cells = <3>;
0419                         reg = <0x44101000 0x1000>, /* Distributer */
0420                               <0x44102000 0x2000>, /* CPU interface */
0421                               <0x44104000 0x2000>, /* Virt interface control */
0422                               <0x44106000 0x2000>; /* Virt CPU interface */
0423                         interrupts =
0424                                 <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_HIGH)>;
0425                 };
0426         };
0427 
0428         timer {
0429                 compatible = "arm,armv7-timer";
0430                 interrupt-parent = <&gic>;
0431                 arm,cpu-registers-not-fw-configured;
0432                 always-on;
0433                 interrupts =
0434                         <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
0435                         <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
0436                         <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
0437                         <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>;
0438         };
0439 
0440         usbphy: usb-phy {
0441                 #phy-cells = <0>;
0442                 compatible = "usb-nop-xceiv";
0443                 status = "disabled";
0444         };
0445 };