0001 // SPDX-License-Identifier: GPL-2.0-only
0002 // Copyright (C) 2012-2013 Broadcom Corporation
0003
0004 #include <dt-bindings/interrupt-controller/arm-gic.h>
0005 #include <dt-bindings/interrupt-controller/irq.h>
0006
0007 #include "dt-bindings/clock/bcm281xx.h"
0008
0009 / {
0010 #address-cells = <1>;
0011 #size-cells = <1>;
0012 model = "BCM11351 SoC";
0013 compatible = "brcm,bcm11351";
0014 interrupt-parent = <&gic>;
0015
0016 chosen {
0017 bootargs = "console=ttyS0,115200n8";
0018 };
0019
0020 cpus {
0021 #address-cells = <1>;
0022 #size-cells = <0>;
0023
0024 cpu0: cpu@0 {
0025 device_type = "cpu";
0026 compatible = "arm,cortex-a9";
0027 reg = <0>;
0028 };
0029
0030 cpu1: cpu@1 {
0031 device_type = "cpu";
0032 compatible = "arm,cortex-a9";
0033 enable-method = "brcm,bcm11351-cpu-method";
0034 secondary-boot-reg = <0x3500417c>;
0035 reg = <1>;
0036 };
0037 };
0038
0039 gic: interrupt-controller@3ff00100 {
0040 compatible = "arm,cortex-a9-gic";
0041 #interrupt-cells = <3>;
0042 #address-cells = <0>;
0043 interrupt-controller;
0044 reg = <0x3ff01000 0x1000>,
0045 <0x3ff00100 0x100>;
0046 };
0047
0048 smc@3404c000 {
0049 compatible = "brcm,bcm11351-smc", "brcm,kona-smc";
0050 reg = <0x3404c000 0x400>; /* 1 KiB in SRAM */
0051 };
0052
0053 uart@3e000000 {
0054 compatible = "brcm,bcm11351-dw-apb-uart", "snps,dw-apb-uart";
0055 status = "disabled";
0056 reg = <0x3e000000 0x1000>;
0057 clocks = <&slave_ccu BCM281XX_SLAVE_CCU_UARTB>;
0058 interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
0059 reg-shift = <2>;
0060 reg-io-width = <4>;
0061 };
0062
0063 uart@3e001000 {
0064 compatible = "brcm,bcm11351-dw-apb-uart", "snps,dw-apb-uart";
0065 status = "disabled";
0066 reg = <0x3e001000 0x1000>;
0067 clocks = <&slave_ccu BCM281XX_SLAVE_CCU_UARTB2>;
0068 interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>;
0069 reg-shift = <2>;
0070 reg-io-width = <4>;
0071 };
0072
0073 uart@3e002000 {
0074 compatible = "brcm,bcm11351-dw-apb-uart", "snps,dw-apb-uart";
0075 status = "disabled";
0076 reg = <0x3e002000 0x1000>;
0077 clocks = <&slave_ccu BCM281XX_SLAVE_CCU_UARTB3>;
0078 interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
0079 reg-shift = <2>;
0080 reg-io-width = <4>;
0081 };
0082
0083 uart@3e003000 {
0084 compatible = "brcm,bcm11351-dw-apb-uart", "snps,dw-apb-uart";
0085 status = "disabled";
0086 reg = <0x3e003000 0x1000>;
0087 clocks = <&slave_ccu BCM281XX_SLAVE_CCU_UARTB4>;
0088 interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
0089 reg-shift = <2>;
0090 reg-io-width = <4>;
0091 };
0092
0093 L2: l2-cache@3ff20000 {
0094 compatible = "brcm,bcm11351-a2-pl310-cache";
0095 reg = <0x3ff20000 0x1000>;
0096 cache-unified;
0097 cache-level = <2>;
0098 };
0099
0100 watchdog@35002f40 {
0101 compatible = "brcm,bcm11351-wdt", "brcm,kona-wdt";
0102 reg = <0x35002f40 0x6c>;
0103 };
0104
0105 timer@35006000 {
0106 compatible = "brcm,kona-timer";
0107 reg = <0x35006000 0x1000>;
0108 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
0109 clocks = <&aon_ccu BCM281XX_AON_CCU_HUB_TIMER>;
0110 };
0111
0112 gpio: gpio@35003000 {
0113 compatible = "brcm,bcm11351-gpio", "brcm,kona-gpio";
0114 reg = <0x35003000 0x800>;
0115 interrupts =
0116 <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH
0117 GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH
0118 GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH
0119 GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH
0120 GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH
0121 GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
0122 #gpio-cells = <2>;
0123 #interrupt-cells = <2>;
0124 gpio-controller;
0125 interrupt-controller;
0126 };
0127
0128 sdio1: sdio@3f180000 {
0129 compatible = "brcm,kona-sdhci";
0130 reg = <0x3f180000 0x10000>;
0131 interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
0132 clocks = <&master_ccu BCM281XX_MASTER_CCU_SDIO1>;
0133 status = "disabled";
0134 };
0135
0136 sdio2: sdio@3f190000 {
0137 compatible = "brcm,kona-sdhci";
0138 reg = <0x3f190000 0x10000>;
0139 interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
0140 clocks = <&master_ccu BCM281XX_MASTER_CCU_SDIO2>;
0141 status = "disabled";
0142 };
0143
0144 sdio3: sdio@3f1a0000 {
0145 compatible = "brcm,kona-sdhci";
0146 reg = <0x3f1a0000 0x10000>;
0147 interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
0148 clocks = <&master_ccu BCM281XX_MASTER_CCU_SDIO3>;
0149 status = "disabled";
0150 };
0151
0152 sdio4: sdio@3f1b0000 {
0153 compatible = "brcm,kona-sdhci";
0154 reg = <0x3f1b0000 0x10000>;
0155 interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
0156 clocks = <&master_ccu BCM281XX_MASTER_CCU_SDIO4>;
0157 status = "disabled";
0158 };
0159
0160 pinctrl@35004800 {
0161 compatible = "brcm,bcm11351-pinctrl";
0162 reg = <0x35004800 0x430>;
0163 };
0164
0165 i2c@3e016000 {
0166 compatible = "brcm,bcm11351-i2c", "brcm,kona-i2c";
0167 reg = <0x3e016000 0x80>;
0168 interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
0169 #address-cells = <1>;
0170 #size-cells = <0>;
0171 clocks = <&slave_ccu BCM281XX_SLAVE_CCU_BSC1>;
0172 status = "disabled";
0173 };
0174
0175 i2c@3e017000 {
0176 compatible = "brcm,bcm11351-i2c", "brcm,kona-i2c";
0177 reg = <0x3e017000 0x80>;
0178 interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
0179 #address-cells = <1>;
0180 #size-cells = <0>;
0181 clocks = <&slave_ccu BCM281XX_SLAVE_CCU_BSC2>;
0182 status = "disabled";
0183 };
0184
0185 i2c@3e018000 {
0186 compatible = "brcm,bcm11351-i2c", "brcm,kona-i2c";
0187 reg = <0x3e018000 0x80>;
0188 interrupts = <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>;
0189 #address-cells = <1>;
0190 #size-cells = <0>;
0191 clocks = <&slave_ccu BCM281XX_SLAVE_CCU_BSC3>;
0192 status = "disabled";
0193 };
0194
0195 i2c@3500d000 {
0196 compatible = "brcm,bcm11351-i2c", "brcm,kona-i2c";
0197 reg = <0x3500d000 0x80>;
0198 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
0199 #address-cells = <1>;
0200 #size-cells = <0>;
0201 clocks = <&aon_ccu BCM281XX_AON_CCU_PMU_BSC>;
0202 status = "disabled";
0203 };
0204
0205 pwm: pwm@3e01a000 {
0206 compatible = "brcm,bcm11351-pwm", "brcm,kona-pwm";
0207 reg = <0x3e01a000 0xcc>;
0208 clocks = <&slave_ccu BCM281XX_SLAVE_CCU_PWM>;
0209 #pwm-cells = <3>;
0210 status = "disabled";
0211 };
0212
0213 clocks {
0214 #address-cells = <1>;
0215 #size-cells = <1>;
0216 ranges;
0217
0218 root_ccu: root_ccu@35001000 {
0219 compatible = "brcm,bcm11351-root-ccu";
0220 reg = <0x35001000 0x0f00>;
0221 #clock-cells = <1>;
0222 clock-output-names = "frac_1m";
0223 };
0224
0225 hub_ccu: hub_ccu@34000000 {
0226 compatible = "brcm,bcm11351-hub-ccu";
0227 reg = <0x34000000 0x0f00>;
0228 #clock-cells = <1>;
0229 clock-output-names = "tmon_1m";
0230 };
0231
0232 aon_ccu: aon_ccu@35002000 {
0233 compatible = "brcm,bcm11351-aon-ccu";
0234 reg = <0x35002000 0x0f00>;
0235 #clock-cells = <1>;
0236 clock-output-names = "hub_timer",
0237 "pmu_bsc",
0238 "pmu_bsc_var";
0239 };
0240
0241 master_ccu: master_ccu@3f001000 {
0242 compatible = "brcm,bcm11351-master-ccu";
0243 reg = <0x3f001000 0x0f00>;
0244 #clock-cells = <1>;
0245 clock-output-names = "sdio1",
0246 "sdio2",
0247 "sdio3",
0248 "sdio4",
0249 "usb_ic",
0250 "hsic2_48m",
0251 "hsic2_12m";
0252 };
0253
0254 slave_ccu: slave_ccu@3e011000 {
0255 compatible = "brcm,bcm11351-slave-ccu";
0256 reg = <0x3e011000 0x0f00>;
0257 #clock-cells = <1>;
0258 clock-output-names = "uartb",
0259 "uartb2",
0260 "uartb3",
0261 "uartb4",
0262 "ssp0",
0263 "ssp2",
0264 "bsc1",
0265 "bsc2",
0266 "bsc3",
0267 "pwm";
0268 };
0269
0270 ref_1m_clk: ref_1m {
0271 #clock-cells = <0>;
0272 compatible = "fixed-clock";
0273 clock-frequency = <1000000>;
0274 };
0275
0276 ref_32k_clk: ref_32k {
0277 #clock-cells = <0>;
0278 compatible = "fixed-clock";
0279 clock-frequency = <32768>;
0280 };
0281
0282 bbl_32k_clk: bbl_32k {
0283 #clock-cells = <0>;
0284 compatible = "fixed-clock";
0285 clock-frequency = <32768>;
0286 };
0287
0288 ref_13m_clk: ref_13m {
0289 #clock-cells = <0>;
0290 compatible = "fixed-clock";
0291 clock-frequency = <13000000>;
0292 };
0293
0294 var_13m_clk: var_13m {
0295 #clock-cells = <0>;
0296 compatible = "fixed-clock";
0297 clock-frequency = <13000000>;
0298 };
0299
0300 dft_19_5m_clk: dft_19_5m {
0301 #clock-cells = <0>;
0302 compatible = "fixed-clock";
0303 clock-frequency = <19500000>;
0304 };
0305
0306 ref_crystal_clk: ref_crystal {
0307 #clock-cells = <0>;
0308 compatible = "fixed-clock";
0309 clock-frequency = <26000000>;
0310 };
0311
0312 ref_cx40_clk: ref_cx40 {
0313 #clock-cells = <0>;
0314 compatible = "fixed-clock";
0315 clock-frequency = <40000000>;
0316 };
0317
0318 ref_52m_clk: ref_52m {
0319 #clock-cells = <0>;
0320 compatible = "fixed-clock";
0321 clock-frequency = <52000000>;
0322 };
0323
0324 var_52m_clk: var_52m {
0325 #clock-cells = <0>;
0326 compatible = "fixed-clock";
0327 clock-frequency = <52000000>;
0328 };
0329
0330 usb_otg_ahb_clk: usb_otg_ahb {
0331 compatible = "fixed-clock";
0332 clock-frequency = <52000000>;
0333 #clock-cells = <0>;
0334 };
0335
0336 ref_96m_clk: ref_96m {
0337 #clock-cells = <0>;
0338 compatible = "fixed-clock";
0339 clock-frequency = <96000000>;
0340 };
0341
0342 var_96m_clk: var_96m {
0343 #clock-cells = <0>;
0344 compatible = "fixed-clock";
0345 clock-frequency = <96000000>;
0346 };
0347
0348 ref_104m_clk: ref_104m {
0349 #clock-cells = <0>;
0350 compatible = "fixed-clock";
0351 clock-frequency = <104000000>;
0352 };
0353
0354 var_104m_clk: var_104m {
0355 #clock-cells = <0>;
0356 compatible = "fixed-clock";
0357 clock-frequency = <104000000>;
0358 };
0359
0360 ref_156m_clk: ref_156m {
0361 #clock-cells = <0>;
0362 compatible = "fixed-clock";
0363 clock-frequency = <156000000>;
0364 };
0365
0366 var_156m_clk: var_156m {
0367 #clock-cells = <0>;
0368 compatible = "fixed-clock";
0369 clock-frequency = <156000000>;
0370 };
0371
0372 ref_208m_clk: ref_208m {
0373 #clock-cells = <0>;
0374 compatible = "fixed-clock";
0375 clock-frequency = <208000000>;
0376 };
0377
0378 var_208m_clk: var_208m {
0379 #clock-cells = <0>;
0380 compatible = "fixed-clock";
0381 clock-frequency = <208000000>;
0382 };
0383
0384 ref_312m_clk: ref_312m {
0385 #clock-cells = <0>;
0386 compatible = "fixed-clock";
0387 clock-frequency = <312000000>;
0388 };
0389
0390 var_312m_clk: var_312m {
0391 #clock-cells = <0>;
0392 compatible = "fixed-clock";
0393 clock-frequency = <312000000>;
0394 };
0395 };
0396
0397 usbotg: usb@3f120000 {
0398 compatible = "snps,dwc2";
0399 reg = <0x3f120000 0x10000>;
0400 interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
0401 clocks = <&usb_otg_ahb_clk>;
0402 clock-names = "otg";
0403 phys = <&usbphy>;
0404 phy-names = "usb2-phy";
0405 status = "disabled";
0406 };
0407
0408 usbphy: usb-phy@3f130000 {
0409 compatible = "brcm,kona-usb2-phy";
0410 reg = <0x3f130000 0x28>;
0411 #phy-cells = <0>;
0412 status = "disabled";
0413 };
0414 };