Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: GPL-2.0-or-later
0002 /*
0003  * ox820.dtsi - Device tree file for Oxford Semiconductor OX820 SoC
0004  *
0005  * Copyright (C) 2016 Neil Armstrong <narmstrong@baylibre.com>
0006  */
0007 
0008 #include <dt-bindings/interrupt-controller/arm-gic.h>
0009 #include <dt-bindings/clock/oxsemi,ox820.h>
0010 #include <dt-bindings/reset/oxsemi,ox820.h>
0011 
0012 / {
0013         #address-cells = <1>;
0014         #size-cells = <1>;
0015         compatible = "oxsemi,ox820";
0016 
0017         cpus {
0018                 #address-cells = <1>;
0019                 #size-cells = <0>;
0020                 enable-method = "oxsemi,ox820-smp";
0021 
0022                 cpu@0 {
0023                         device_type = "cpu";
0024                         compatible = "arm,arm11mpcore";
0025                         clocks = <&armclk>;
0026                         reg = <0>;
0027                 };
0028 
0029                 cpu@1 {
0030                         device_type = "cpu";
0031                         compatible = "arm,arm11mpcore";
0032                         clocks = <&armclk>;
0033                         reg = <1>;
0034                 };
0035         };
0036 
0037         memory {
0038                 device_type = "memory";
0039                 /* Max 512MB @ 0x60000000 */
0040                 reg = <0x60000000 0x20000000>;
0041         };
0042 
0043         clocks {
0044                 osc: oscillator {
0045                         compatible = "fixed-clock";
0046                         #clock-cells = <0>;
0047                         clock-frequency = <25000000>;
0048                 };
0049 
0050                 gmacclk: gmacclk {
0051                         compatible = "fixed-clock";
0052                         #clock-cells = <0>;
0053                         clock-frequency = <125000000>;
0054                 };
0055 
0056                 sysclk: sysclk {
0057                         compatible = "fixed-factor-clock";
0058                         #clock-cells = <0>;
0059                         clock-div = <4>;
0060                         clock-mult = <1>;
0061                         clocks = <&osc>;
0062                 };
0063 
0064                 plla: plla {
0065                         compatible = "fixed-clock";
0066                         #clock-cells = <0>;
0067                         clock-frequency = <850000000>;
0068                 };
0069 
0070                 armclk: armclk {
0071                         compatible = "fixed-factor-clock";
0072                         #clock-cells = <0>;
0073                         clock-div = <2>;
0074                         clock-mult = <1>;
0075                         clocks = <&plla>;
0076                 };
0077         };
0078 
0079         soc {
0080                 #address-cells = <1>;
0081                 #size-cells = <1>;
0082                 compatible = "simple-bus";
0083                 ranges;
0084                 interrupt-parent = <&gic>;
0085 
0086                 nandc: nand-controller@41000000 {
0087                         compatible = "oxsemi,ox820-nand";
0088                         reg = <0x41000000 0x100000>;
0089                         clocks = <&stdclk CLK_820_NAND>;
0090                         resets = <&reset RESET_NAND>;
0091                         #address-cells = <1>;
0092                         #size-cells = <0>;
0093                         status = "disabled";
0094                 };
0095 
0096                 etha: ethernet@40400000 {
0097                         compatible = "oxsemi,ox820-dwmac", "snps,dwmac";
0098                         reg = <0x40400000 0x2000>;
0099                         interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
0100                                      <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
0101                         interrupt-names = "macirq", "eth_wake_irq";
0102                         mac-address = [000000000000]; /* Filled in by U-Boot */
0103                         phy-mode = "rgmii";
0104 
0105                         clocks = <&stdclk CLK_820_ETHA>, <&gmacclk>;
0106                         clock-names = "gmac", "stmmaceth";
0107                         resets = <&reset RESET_MAC>;
0108 
0109                         /* Regmap for sys registers */
0110                         oxsemi,sys-ctrl = <&sys>;
0111 
0112                         status = "disabled";
0113                 };
0114 
0115                 apb-bridge@44000000 {
0116                         #address-cells = <1>;
0117                         #size-cells = <1>;
0118                         compatible = "simple-bus";
0119                         ranges = <0 0x44000000 0x1000000>;
0120 
0121                         pinctrl: pinctrl {
0122                                 compatible = "oxsemi,ox820-pinctrl";
0123 
0124                                 /* Regmap for sys registers */
0125                                 oxsemi,sys-ctrl = <&sys>;
0126 
0127                                 pinctrl_uart0: uart0 {
0128                                         uart0 {
0129                                                 pins = "gpio30", "gpio31";
0130                                                 function = "fct5";
0131                                         };
0132                                 };
0133 
0134                                 pinctrl_uart0_modem: uart0_modem {
0135                                         uart0_modem_a {
0136                                                 pins = "gpio24", "gpio24", "gpio26", "gpio27";
0137                                                 function = "fct4";
0138                                         };
0139                                         uart0_modem_b {
0140                                                 pins = "gpio28", "gpio29";
0141                                                 function = "fct5";
0142                                         };
0143                                 };
0144 
0145                                 pinctrl_uart1: uart1 {
0146                                         uart1 {
0147                                                 pins = "gpio7", "gpio8";
0148                                                 function = "fct4";
0149                                         };
0150                                 };
0151 
0152                                 pinctrl_uart1_modem: uart1_modem {
0153                                         uart1_modem {
0154                                                 pins = "gpio5", "gpio6", "gpio40", "gpio41", "gpio42", "gpio43";
0155                                                 function = "fct4";
0156                                         };
0157                                 };
0158 
0159                                 pinctrl_etha_mdio: etha_mdio {
0160                                         etha_mdio {
0161                                                 pins = "gpio3", "gpio4";
0162                                                 function = "fct1";
0163                                         };
0164                                 };
0165 
0166                                 pinctrl_nand: nand {
0167                                         nand {
0168                                                 pins = "gpio12", "gpio13", "gpio14", "gpio15",
0169                                                      "gpio16", "gpio17", "gpio18", "gpio19",
0170                                                      "gpio20", "gpio21", "gpio22", "gpio23",
0171                                                      "gpio24";
0172                                                 function = "fct1";
0173                                         };
0174                                 };
0175                         };
0176 
0177                         gpio0: gpio@0 {
0178                                 compatible = "oxsemi,ox820-gpio";
0179                                 reg = <0x000000 0x100000>;
0180                                 interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
0181                                 #gpio-cells = <2>;
0182                                 gpio-controller;
0183                                 interrupt-controller;
0184                                 #interrupt-cells = <2>;
0185                                 ngpios = <32>;
0186                                 oxsemi,gpio-bank = <0>;
0187                                 gpio-ranges = <&pinctrl 0 0 32>;
0188                         };
0189 
0190                         gpio1: gpio@100000 {
0191                                 compatible = "oxsemi,ox820-gpio";
0192                                 reg = <0x100000 0x100000>;
0193                                 interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
0194                                 #gpio-cells = <2>;
0195                                 gpio-controller;
0196                                 interrupt-controller;
0197                                 #interrupt-cells = <2>;
0198                                 ngpios = <18>;
0199                                 oxsemi,gpio-bank = <1>;
0200                                 gpio-ranges = <&pinctrl 0 32 18>;
0201                         };
0202 
0203                         uart0: serial@200000 {
0204                                compatible = "ns16550a";
0205                                reg = <0x200000 0x100000>;
0206                                interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
0207                                reg-shift = <0>;
0208                                fifo-size = <16>;
0209                                reg-io-width = <1>;
0210                                current-speed = <115200>;
0211                                no-loopback-test;
0212                                status = "disabled";
0213                                clocks = <&sysclk>;
0214                                resets = <&reset RESET_UART1>;
0215                         };
0216 
0217                         uart1: serial@300000 {
0218                                compatible = "ns16550a";
0219                                reg = <0x200000 0x100000>;
0220                                interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
0221                                reg-shift = <0>;
0222                                fifo-size = <16>;
0223                                reg-io-width = <1>;
0224                                current-speed = <115200>;
0225                                no-loopback-test;
0226                                status = "disabled";
0227                                clocks = <&sysclk>;
0228                                resets = <&reset RESET_UART2>;
0229                         };
0230 
0231                         rps@400000 {
0232                                 #address-cells = <1>;
0233                                 #size-cells = <1>;
0234                                 compatible = "simple-bus";
0235                                 ranges = <0 0x400000 0x100000>;
0236 
0237                                 intc: interrupt-controller@0 {
0238                                         compatible = "oxsemi,ox820-rps-irq", "oxsemi,ox810se-rps-irq";
0239                                         interrupt-controller;
0240                                         reg = <0 0x200>;
0241                                         interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
0242                                         #interrupt-cells = <1>;
0243                                         valid-mask = <0xffffffff>;
0244                                         clear-mask = <0xffffffff>;
0245                                 };
0246 
0247                                 timer0: timer@200 {
0248                                         compatible = "oxsemi,ox820-rps-timer";
0249                                         reg = <0x200 0x40>;
0250                                         clocks = <&sysclk>;
0251                                         interrupt-parent = <&intc>;
0252                                         interrupts = <4>;
0253                                 };
0254                         };
0255 
0256                         sys: sys-ctrl@e00000 {
0257                                 compatible = "oxsemi,ox820-sys-ctrl", "syscon", "simple-mfd";
0258                                 reg = <0xe00000 0x200000>;
0259 
0260                                 reset: reset-controller {
0261                                         compatible = "oxsemi,ox820-reset", "oxsemi,ox810se-reset";
0262                                         #reset-cells = <1>;
0263                                 };
0264 
0265                                 stdclk: stdclk {
0266                                         compatible = "oxsemi,ox820-stdclk", "oxsemi,ox810se-stdclk";
0267                                         #clock-cells = <1>;
0268                                 };
0269                         };
0270                 };
0271 
0272                 apb-bridge@47000000 {
0273                         #address-cells = <1>;
0274                         #size-cells = <1>;
0275                         compatible = "simple-bus";
0276                         ranges = <0 0x47000000 0x1000000>;
0277 
0278                         scu: scu@0 {
0279                                 compatible = "arm,arm11mp-scu";
0280                                 reg = <0x0 0x100>;
0281                         };
0282 
0283                         local-timer@600 {
0284                                 compatible = "arm,arm11mp-twd-timer";
0285                                 reg = <0x600 0x20>;
0286                                 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_RAW(3)|IRQ_TYPE_LEVEL_HIGH)>;
0287                                 clocks = <&armclk>;
0288                         };
0289 
0290                         gic: interrupt-controller@1000 {
0291                                 compatible = "arm,arm11mp-gic";
0292                                 interrupt-controller;
0293                                 #interrupt-cells = <3>;
0294                                 reg = <0x1000 0x1000>,
0295                                       <0x100 0x500>;
0296                         };
0297                 };
0298         };
0299 };