Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: GPL-2.0-or-later OR MIT
0002 
0003 #include <dt-bindings/interrupt-controller/irq.h>
0004 #include <dt-bindings/interrupt-controller/arm-gic.h>
0005 #include <dt-bindings/phy/phy.h>
0006 #include <dt-bindings/soc/bcm-pmb.h>
0007 
0008 /dts-v1/;
0009 
0010 / {
0011         interrupt-parent = <&gic>;
0012 
0013         #address-cells = <2>;
0014         #size-cells = <2>;
0015 
0016         aliases {
0017                 serial0 = &uart0;
0018         };
0019 
0020         chosen {
0021                 stdout-path = "serial0:115200n8";
0022         };
0023 
0024         cpus {
0025                 #address-cells = <1>;
0026                 #size-cells = <0>;
0027 
0028                 cpu0: cpu@0 {
0029                         device_type = "cpu";
0030                         compatible = "brcm,brahma-b53";
0031                         reg = <0x0>;
0032                         enable-method = "spin-table";
0033                         cpu-release-addr = <0x0 0xfff8>;
0034                         next-level-cache = <&l2>;
0035                 };
0036 
0037                 cpu1: cpu@1 {
0038                         device_type = "cpu";
0039                         compatible = "brcm,brahma-b53";
0040                         reg = <0x1>;
0041                         enable-method = "spin-table";
0042                         cpu-release-addr = <0x0 0xfff8>;
0043                         next-level-cache = <&l2>;
0044                 };
0045 
0046                 cpu2: cpu@2 {
0047                         device_type = "cpu";
0048                         compatible = "brcm,brahma-b53";
0049                         reg = <0x2>;
0050                         enable-method = "spin-table";
0051                         cpu-release-addr = <0x0 0xfff8>;
0052                         next-level-cache = <&l2>;
0053                 };
0054 
0055                 cpu3: cpu@3 {
0056                         device_type = "cpu";
0057                         compatible = "brcm,brahma-b53";
0058                         reg = <0x3>;
0059                         enable-method = "spin-table";
0060                         cpu-release-addr = <0x0 0xfff8>;
0061                         next-level-cache = <&l2>;
0062                 };
0063 
0064                 l2: l2-cache0 {
0065                         compatible = "cache";
0066                 };
0067         };
0068 
0069         axi@81000000 {
0070                 compatible = "simple-bus";
0071                 #address-cells = <1>;
0072                 #size-cells = <1>;
0073                 ranges = <0x00 0x00 0x81000000 0x4000>;
0074 
0075                 gic: interrupt-controller@1000 {
0076                         compatible = "arm,gic-400";
0077                         #interrupt-cells = <3>;
0078                         #address-cells = <0>;
0079                         interrupt-controller;
0080                         reg = <0x1000 0x1000>,
0081                               <0x2000 0x2000>;
0082                 };
0083         };
0084 
0085         timer {
0086                 compatible = "arm,armv8-timer";
0087                 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
0088                              <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
0089                              <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
0090                              <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
0091         };
0092 
0093         pmu {
0094                 compatible = "arm,cortex-a53-pmu";
0095                 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
0096                              <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>,
0097                              <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
0098                              <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
0099                 interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
0100         };
0101 
0102         clocks {
0103                 periph_clk: periph_clk {
0104                         compatible = "fixed-clock";
0105                         #clock-cells = <0>;
0106                         clock-frequency = <50000000>;
0107                         clock-output-names = "periph";
0108                 };
0109         };
0110 
0111         soc {
0112                 compatible = "simple-bus";
0113                 #address-cells = <1>;
0114                 #size-cells = <1>;
0115                 ranges = <0x00 0x00 0x80000000 0x281000>;
0116 
0117                 enet: ethernet@2000 {
0118                         compatible = "brcm,bcm4908-enet";
0119                         reg = <0x2000 0x1000>;
0120 
0121                         interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>,
0122                                      <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
0123                         interrupt-names = "rx", "tx";
0124                 };
0125 
0126                 usb_phy: usb-phy@c200 {
0127                         compatible = "brcm,bcm4908-usb-phy";
0128                         reg = <0xc200 0x100>;
0129                         reg-names = "ctrl";
0130                         power-domains = <&pmb BCM_PMB_HOST_USB>;
0131                         dr_mode = "host";
0132                         brcm,has-xhci;
0133                         brcm,has-eohci;
0134                         #phy-cells = <1>;
0135                         status = "disabled";
0136                 };
0137 
0138                 ehci: usb@c300 {
0139                         compatible = "generic-ehci";
0140                         reg = <0xc300 0x100>;
0141                         interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
0142                         phys = <&usb_phy PHY_TYPE_USB2>;
0143                         status = "disabled";
0144                 };
0145 
0146                 ohci: usb@c400 {
0147                         compatible = "generic-ohci";
0148                         reg = <0xc400 0x100>;
0149                         interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
0150                         phys = <&usb_phy PHY_TYPE_USB2>;
0151                         status = "disabled";
0152                 };
0153 
0154                 xhci: usb@d000 {
0155                         compatible = "generic-xhci";
0156                         reg = <0xd000 0x8c8>;
0157                         interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
0158                         phys = <&usb_phy PHY_TYPE_USB3>;
0159                         status = "disabled";
0160                 };
0161 
0162                 bus@80000 {
0163                         compatible = "simple-bus";
0164                         #size-cells = <1>;
0165                         #address-cells = <1>;
0166                         ranges = <0 0x80000 0x50000>;
0167 
0168                         ethernet-switch@0 {
0169                                 compatible = "brcm,bcm4908-switch";
0170                                 reg = <0x0 0x40000>,
0171                                       <0x40000 0x110>,
0172                                       <0x40340 0x30>,
0173                                       <0x40380 0x30>,
0174                                       <0x40600 0x34>,
0175                                       <0x40800 0x208>;
0176                                 reg-names = "core", "reg", "intrl2_0",
0177                                             "intrl2_1", "fcb", "acb";
0178                                 interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>,
0179                                              <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
0180                                 brcm,num-gphy = <5>;
0181                                 brcm,num-rgmii-ports = <2>;
0182 
0183                                 #address-cells = <1>;
0184                                 #size-cells = <0>;
0185 
0186                                 ports: ports {
0187                                         #address-cells = <1>;
0188                                         #size-cells = <0>;
0189 
0190                                         port@0 {
0191                                                 reg = <0>;
0192                                                 phy-mode = "internal";
0193                                                 phy-handle = <&phy8>;
0194                                         };
0195 
0196                                         port@1 {
0197                                                 reg = <1>;
0198                                                 phy-mode = "internal";
0199                                                 phy-handle = <&phy9>;
0200                                         };
0201 
0202                                         port@2 {
0203                                                 reg = <2>;
0204                                                 phy-mode = "internal";
0205                                                 phy-handle = <&phy10>;
0206                                         };
0207 
0208                                         port@3 {
0209                                                 reg = <3>;
0210                                                 phy-mode = "internal";
0211                                                 phy-handle = <&phy11>;
0212                                         };
0213 
0214                                         port@8 {
0215                                                 reg = <8>;
0216                                                 phy-mode = "internal";
0217                                                 ethernet = <&enet>;
0218 
0219                                                 fixed-link {
0220                                                         speed = <1000>;
0221                                                         full-duplex;
0222                                                 };
0223                                         };
0224                                 };
0225                         };
0226 
0227                         mdio: mdio@405c0 {
0228                                 compatible = "brcm,unimac-mdio";
0229                                 reg = <0x405c0 0x8>;
0230                                 reg-names = "mdio";
0231                                 #size-cells = <0>;
0232                                 #address-cells = <1>;
0233 
0234                                 phy8: ethernet-phy@8 {
0235                                         reg = <8>;
0236                                 };
0237 
0238                                 phy9: ethernet-phy@9 {
0239                                         reg = <9>;
0240                                 };
0241 
0242                                 phy10: ethernet-phy@a {
0243                                         reg = <10>;
0244                                 };
0245 
0246                                 phy11: ethernet-phy@b {
0247                                         reg = <11>;
0248                                 };
0249 
0250                                 phy12: ethernet-phy@c {
0251                                         reg = <12>;
0252                                 };
0253                         };
0254                 };
0255 
0256                 procmon: syscon@280000 {
0257                         compatible = "simple-bus";
0258                         reg = <0x280000 0x1000>;
0259                         ranges;
0260 
0261                         #address-cells = <1>;
0262                         #size-cells = <1>;
0263 
0264                         pmb: power-controller@2800c0 {
0265                                 compatible = "brcm,bcm4908-pmb";
0266                                 reg = <0x2800c0 0x40>;
0267                                 #power-domain-cells = <1>;
0268                         };
0269                 };
0270         };
0271 
0272         bus@ff800000 {
0273                 compatible = "simple-bus";
0274                 #address-cells = <1>;
0275                 #size-cells = <1>;
0276                 ranges = <0x00 0x00 0xff800000 0x3000>;
0277 
0278                 twd: timer-mfd@400 {
0279                         compatible = "brcm,bcm4908-twd", "simple-mfd", "syscon";
0280                         reg = <0x400 0x4c>;
0281                         ranges = <0x0 0x400 0x4c>;
0282 
0283                         #address-cells = <1>;
0284                         #size-cells = <1>;
0285 
0286                         watchdog@28 {
0287                                 compatible = "brcm,bcm6345-wdt";
0288                                 reg = <0x28 0x8>;
0289                         };
0290                 };
0291 
0292                 gpio0: gpio-controller@500 {
0293                         compatible = "brcm,bcm6345-gpio";
0294                         reg-names = "dirout", "dat";
0295                         reg = <0x500 0x28>, <0x528 0x28>;
0296 
0297                         #gpio-cells = <2>;
0298                         gpio-controller;
0299                 };
0300 
0301                 pinctrl@560 {
0302                         compatible = "brcm,bcm4908-pinctrl";
0303                         reg = <0x560 0x10>;
0304 
0305                         pins_led_0_a: led_0-a-pins {
0306                                 function = "led_0";
0307                                 groups = "led_0_grp_a";
0308                         };
0309 
0310                         pins_led_1_a: led_1-a-pins {
0311                                 function = "led_1";
0312                                 groups = "led_1_grp_a";
0313                         };
0314 
0315                         pins_led_2_a: led_2-a-pins {
0316                                 function = "led_2";
0317                                 groups = "led_2_grp_a";
0318                         };
0319 
0320                         pins_led_3_a: led_3-a-pins {
0321                                 function = "led_3";
0322                                 groups = "led_3_grp_a";
0323                         };
0324 
0325                         pins_led_4_a: led_4-a-pins {
0326                                 function = "led_4";
0327                                 groups = "led_4_grp_a";
0328                         };
0329 
0330                         pins_led_5_a: led_5-a-pins {
0331                                 function = "led_5";
0332                                 groups = "led_5_grp_a";
0333                         };
0334 
0335                         pins_led_6_a: led_6-a-pins {
0336                                 function = "led_6";
0337                                 groups = "led_6_grp_a";
0338                         };
0339 
0340                         pins_led_7_a: led_7-a-pins {
0341                                 function = "led_7";
0342                                 groups = "led_7_grp_a";
0343                         };
0344 
0345                         pins_led_8_a: led_8-a-pins {
0346                                 function = "led_8";
0347                                 groups = "led_8_grp_a";
0348                         };
0349 
0350                         pins_led_9_a: led_9-a-pins {
0351                                 function = "led_9";
0352                                 groups = "led_9_grp_a";
0353                         };
0354 
0355                         pins_led_21_a: led_21-a-pins {
0356                                 function = "led_21";
0357                                 groups = "led_21_grp_a";
0358                         };
0359 
0360                         pins_led_22_a: led_22-a-pins {
0361                                 function = "led_22";
0362                                 groups = "led_22_grp_a";
0363                         };
0364 
0365                         pins_led_26_a: led_26-a-pins {
0366                                 function = "led_26";
0367                                 groups = "led_26_grp_a";
0368                         };
0369 
0370                         pins_led_27_a: led_27-a-pins {
0371                                 function = "led_27";
0372                                 groups = "led_27_grp_a";
0373                         };
0374 
0375                         pins_led_28_a: led_28-a-pins {
0376                                 function = "led_28";
0377                                 groups = "led_28_grp_a";
0378                         };
0379 
0380                         pins_led_29_a: led_29-a-pins {
0381                                 function = "led_29";
0382                                 groups = "led_29_grp_a";
0383                         };
0384 
0385                         pins_led_30_a: led_30-a-pins {
0386                                 function = "led_30";
0387                                 groups = "led_30_grp_a";
0388                         };
0389 
0390                         pins_hs_uart: hs_uart-pins {
0391                                 function = "hs_uart";
0392                                 groups = "hs_uart_grp";
0393                         };
0394 
0395                         pins_i2c_a: i2c-a-pins {
0396                                 function = "i2c";
0397                                 groups = "i2c_grp_a";
0398                         };
0399 
0400                         pins_i2c_b: i2c-b-pins {
0401                                 function = "i2c";
0402                                 groups = "i2c_grp_b";
0403                         };
0404 
0405                         pins_i2s: i2s-pins {
0406                                 function = "i2s";
0407                                 groups = "i2s_grp";
0408                         };
0409 
0410                         pins_nand_ctrl: nand_ctrl-pins {
0411                                 function = "nand_ctrl";
0412                                 groups = "nand_ctrl_grp";
0413                         };
0414 
0415                         pins_nand_data: nand_data-pins {
0416                                 function = "nand_data";
0417                                 groups = "nand_data_grp";
0418                         };
0419 
0420                         pins_emmc_ctrl: emmc_ctrl-pins {
0421                                 function = "emmc_ctrl";
0422                                 groups = "emmc_ctrl_grp";
0423                         };
0424 
0425                         pins_usb0_pwr: usb0_pwr-pins {
0426                                 function = "usb0_pwr";
0427                                 groups = "usb0_pwr_grp";
0428                         };
0429 
0430                         pins_usb1_pwr: usb1_pwr-pins {
0431                                 function = "usb1_pwr";
0432                                 groups = "usb1_pwr_grp";
0433                         };
0434                 };
0435 
0436                 uart0: serial@640 {
0437                         compatible = "brcm,bcm6345-uart";
0438                         reg = <0x640 0x18>;
0439                         interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
0440                         clocks = <&periph_clk>;
0441                         clock-names = "refclk";
0442                         status = "okay";
0443                 };
0444 
0445                 nand-controller@1800 {
0446                         #address-cells = <1>;
0447                         #size-cells = <0>;
0448                         compatible = "brcm,nand-bcm63138", "brcm,brcmnand-v7.1", "brcm,brcmnand";
0449                         reg = <0x1800 0x600>, <0x2000 0x10>;
0450                         reg-names = "nand", "nand-int-base";
0451                         interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
0452                         interrupt-names = "nand";
0453                         status = "okay";
0454 
0455                         nandcs: nand@0 {
0456                                 compatible = "brcm,nandcs";
0457                                 reg = <0>;
0458                         };
0459                 };
0460 
0461                 i2c@2100 {
0462                         compatible = "brcm,brcmper-i2c";
0463                         reg = <0x2100 0x58>;
0464                         clock-frequency = <97500>;
0465                         pinctrl-names = "default";
0466                         pinctrl-0 = <&pins_i2c_a>;
0467                         status = "disabled";
0468                 };
0469 
0470                 misc@2600 {
0471                         compatible = "brcm,misc", "simple-mfd";
0472                         reg = <0x2600 0xe4>;
0473 
0474                         #address-cells = <1>;
0475                         #size-cells = <1>;
0476                         ranges = <0x00 0x2600 0xe4>;
0477 
0478                         reset-controller@2644 {
0479                                 compatible = "brcm,bcm4908-misc-pcie-reset";
0480                                 reg = <0x44 0x04>;
0481                                 #reset-cells = <1>;
0482                         };
0483                 };
0484         };
0485 
0486         reboot {
0487                 compatible = "syscon-reboot";
0488                 regmap = <&twd>;
0489                 offset = <0x34>;
0490                 mask = <1>;
0491         };
0492 };