Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: GPL-2.0
0002 #include <dt-bindings/clock/ingenic,tcu.h>
0003 #include <dt-bindings/clock/ingenic,x1000-cgu.h>
0004 #include <dt-bindings/dma/x1000-dma.h>
0005 
0006 / {
0007         #address-cells = <1>;
0008         #size-cells = <1>;
0009         compatible = "ingenic,x1000", "ingenic,x1000e";
0010 
0011         cpus {
0012                 #address-cells = <1>;
0013                 #size-cells = <0>;
0014 
0015                 cpu0: cpu@0 {
0016                         device_type = "cpu";
0017                         compatible = "ingenic,xburst-fpu1.0-mxu1.1";
0018                         reg = <0>;
0019 
0020                         clocks = <&cgu X1000_CLK_CPU>;
0021                         clock-names = "cpu";
0022                 };
0023         };
0024 
0025         cpuintc: interrupt-controller {
0026                 #address-cells = <0>;
0027                 #interrupt-cells = <1>;
0028                 interrupt-controller;
0029                 compatible = "mti,cpu-interrupt-controller";
0030         };
0031 
0032         intc: interrupt-controller@10001000 {
0033                 compatible = "ingenic,x1000-intc", "ingenic,jz4780-intc";
0034                 reg = <0x10001000 0x50>;
0035 
0036                 interrupt-controller;
0037                 #interrupt-cells = <1>;
0038 
0039                 interrupt-parent = <&cpuintc>;
0040                 interrupts = <2>;
0041         };
0042 
0043         exclk: ext {
0044                 compatible = "fixed-clock";
0045                 #clock-cells = <0>;
0046         };
0047 
0048         rtclk: rtc {
0049                 compatible = "fixed-clock";
0050                 #clock-cells = <0>;
0051                 clock-frequency = <32768>;
0052         };
0053 
0054         cgu: x1000-cgu@10000000 {
0055                 compatible = "ingenic,x1000-cgu", "simple-mfd";
0056                 reg = <0x10000000 0x100>;
0057                 #address-cells = <1>;
0058                 #size-cells = <1>;
0059                 ranges = <0x0 0x10000000 0x100>;
0060 
0061                 #clock-cells = <1>;
0062 
0063                 clocks = <&exclk>, <&rtclk>;
0064                 clock-names = "ext", "rtc";
0065 
0066                 otg_phy: usb-phy@3c {
0067                         compatible = "ingenic,x1000-phy";
0068                         reg = <0x3c 0x10>;
0069 
0070                         clocks = <&cgu X1000_CLK_OTGPHY>;
0071 
0072                         #phy-cells = <0>;
0073 
0074                         status = "disabled";
0075                 };
0076 
0077                 rng: rng@d8 {
0078                         compatible = "ingenic,x1000-rng";
0079                         reg = <0xd8 0x8>;
0080 
0081                         status = "disabled";
0082                 };
0083 
0084                 mac_phy_ctrl: mac-phy-ctrl@e8 {
0085                         compatible = "syscon";
0086                         reg = <0xe8 0x4>;
0087                 };
0088         };
0089 
0090         ost: timer@12000000 {
0091                 compatible = "ingenic,x1000-ost";
0092                 reg = <0x12000000 0x3c>;
0093 
0094                 #clock-cells = <1>;
0095 
0096                 clocks = <&cgu X1000_CLK_OST>;
0097                 clock-names = "ost";
0098 
0099                 interrupt-parent = <&cpuintc>;
0100                 interrupts = <3>;
0101         };
0102 
0103         tcu: timer@10002000 {
0104                 compatible = "ingenic,x1000-tcu", "simple-mfd";
0105                 reg = <0x10002000 0x1000>;
0106                 #address-cells = <1>;
0107                 #size-cells = <1>;
0108                 ranges = <0x0 0x10002000 0x1000>;
0109 
0110                 #clock-cells = <1>;
0111 
0112                 clocks = <&cgu X1000_CLK_RTCLK>,
0113                          <&cgu X1000_CLK_EXCLK>,
0114                          <&cgu X1000_CLK_PCLK>,
0115                          <&cgu X1000_CLK_TCU>;
0116                 clock-names = "rtc", "ext", "pclk", "tcu";
0117 
0118                 interrupt-controller;
0119                 #interrupt-cells = <1>;
0120 
0121                 interrupt-parent = <&intc>;
0122                 interrupts = <27 26 25>;
0123 
0124                 wdt: watchdog@0 {
0125                         compatible = "ingenic,x1000-watchdog", "ingenic,jz4780-watchdog";
0126                         reg = <0x0 0x10>;
0127 
0128                         clocks = <&tcu TCU_CLK_WDT>;
0129                         clock-names = "wdt";
0130                 };
0131 
0132                 pwm: pwm@40 {
0133                         compatible = "ingenic,x1000-pwm";
0134                         reg = <0x40 0x50>;
0135 
0136                         #pwm-cells = <3>;
0137 
0138                         clocks = <&tcu TCU_CLK_TIMER0>, <&tcu TCU_CLK_TIMER1>,
0139                                  <&tcu TCU_CLK_TIMER2>, <&tcu TCU_CLK_TIMER3>,
0140                                  <&tcu TCU_CLK_TIMER4>;
0141                         clock-names = "timer0", "timer1", "timer2", "timer3", "timer4";
0142                 };
0143         };
0144 
0145         rtc: rtc@10003000 {
0146                 compatible = "ingenic,x1000-rtc", "ingenic,jz4780-rtc";
0147                 reg = <0x10003000 0x4c>;
0148 
0149                 interrupt-parent = <&intc>;
0150                 interrupts = <32>;
0151 
0152                 clocks = <&cgu X1000_CLK_RTCLK>;
0153                 clock-names = "rtc";
0154         };
0155 
0156         pinctrl: pin-controller@10010000 {
0157                 compatible = "ingenic,x1000-pinctrl";
0158                 reg = <0x10010000 0x800>;
0159                 #address-cells = <1>;
0160                 #size-cells = <0>;
0161 
0162                 gpa: gpio@0 {
0163                         compatible = "ingenic,x1000-gpio";
0164                         reg = <0>;
0165 
0166                         gpio-controller;
0167                         gpio-ranges = <&pinctrl 0 0 32>;
0168                         #gpio-cells = <2>;
0169 
0170                         interrupt-controller;
0171                         #interrupt-cells = <2>;
0172 
0173                         interrupt-parent = <&intc>;
0174                         interrupts = <17>;
0175                 };
0176 
0177                 gpb: gpio@1 {
0178                         compatible = "ingenic,x1000-gpio";
0179                         reg = <1>;
0180 
0181                         gpio-controller;
0182                         gpio-ranges = <&pinctrl 0 32 32>;
0183                         #gpio-cells = <2>;
0184 
0185                         interrupt-controller;
0186                         #interrupt-cells = <2>;
0187 
0188                         interrupt-parent = <&intc>;
0189                         interrupts = <16>;
0190                 };
0191 
0192                 gpc: gpio@2 {
0193                         compatible = "ingenic,x1000-gpio";
0194                         reg = <2>;
0195 
0196                         gpio-controller;
0197                         gpio-ranges = <&pinctrl 0 64 32>;
0198                         #gpio-cells = <2>;
0199 
0200                         interrupt-controller;
0201                         #interrupt-cells = <2>;
0202 
0203                         interrupt-parent = <&intc>;
0204                         interrupts = <15>;
0205                 };
0206 
0207                 gpd: gpio@3 {
0208                         compatible = "ingenic,x1000-gpio";
0209                         reg = <3>;
0210 
0211                         gpio-controller;
0212                         gpio-ranges = <&pinctrl 0 96 32>;
0213                         #gpio-cells = <2>;
0214 
0215                         interrupt-controller;
0216                         #interrupt-cells = <2>;
0217 
0218                         interrupt-parent = <&intc>;
0219                         interrupts = <14>;
0220                 };
0221         };
0222 
0223         uart0: serial@10030000 {
0224                 compatible = "ingenic,x1000-uart";
0225                 reg = <0x10030000 0x100>;
0226 
0227                 interrupt-parent = <&intc>;
0228                 interrupts = <51>;
0229 
0230                 clocks = <&exclk>, <&cgu X1000_CLK_UART0>;
0231                 clock-names = "baud", "module";
0232 
0233                 status = "disabled";
0234         };
0235 
0236         uart1: serial@10031000 {
0237                 compatible = "ingenic,x1000-uart";
0238                 reg = <0x10031000 0x100>;
0239 
0240                 interrupt-parent = <&intc>;
0241                 interrupts = <50>;
0242 
0243                 clocks = <&exclk>, <&cgu X1000_CLK_UART1>;
0244                 clock-names = "baud", "module";
0245 
0246                 status = "disabled";
0247         };
0248 
0249         uart2: serial@10032000 {
0250                 compatible = "ingenic,x1000-uart";
0251                 reg = <0x10032000 0x100>;
0252 
0253                 interrupt-parent = <&intc>;
0254                 interrupts = <49>;
0255 
0256                 clocks = <&exclk>, <&cgu X1000_CLK_UART2>;
0257                 clock-names = "baud", "module";
0258 
0259                 status = "disabled";
0260         };
0261 
0262         ssi: spi@10043000 {
0263                 compatible = "ingenic,x1000-spi";
0264                 reg = <0x10043000 0x20>;
0265                 #address-cells = <1>;
0266                 #size-cells = <0>;
0267 
0268                 interrupt-parent = <&intc>;
0269                 interrupts = <8>;
0270 
0271                 clocks = <&cgu X1000_CLK_SSI>;
0272                 clock-names = "spi";
0273 
0274                 dmas = <&pdma X1000_DMA_SSI0_RX 0xffffffff>,
0275                            <&pdma X1000_DMA_SSI0_TX 0xffffffff>;
0276                 dma-names = "rx", "tx";
0277 
0278                 status = "disabled";
0279         };
0280 
0281         i2c0: i2c-controller@10050000 {
0282                 compatible = "ingenic,x1000-i2c";
0283                 reg = <0x10050000 0x1000>;
0284                 #address-cells = <1>;
0285                 #size-cells = <0>;
0286 
0287                 interrupt-parent = <&intc>;
0288                 interrupts = <60>;
0289 
0290                 clocks = <&cgu X1000_CLK_I2C0>;
0291 
0292                 status = "disabled";
0293         };
0294 
0295         i2c1: i2c-controller@10051000 {
0296                 compatible = "ingenic,x1000-i2c";
0297                 reg = <0x10051000 0x1000>;
0298                 #address-cells = <1>;
0299                 #size-cells = <0>;
0300 
0301                 interrupt-parent = <&intc>;
0302                 interrupts = <59>;
0303 
0304                 clocks = <&cgu X1000_CLK_I2C1>;
0305 
0306                 status = "disabled";
0307         };
0308 
0309         i2c2: i2c-controller@10052000 {
0310                 compatible = "ingenic,x1000-i2c";
0311                 reg = <0x10052000 0x1000>;
0312                 #address-cells = <1>;
0313                 #size-cells = <0>;
0314 
0315                 interrupt-parent = <&intc>;
0316                 interrupts = <58>;
0317 
0318                 clocks = <&cgu X1000_CLK_I2C2>;
0319 
0320                 status = "disabled";
0321         };
0322 
0323         pdma: dma-controller@13420000 {
0324                 compatible = "ingenic,x1000-dma";
0325                 reg = <0x13420000 0x400>, <0x13421000 0x40>;
0326 
0327                 #dma-cells = <2>;
0328 
0329                 interrupt-parent = <&intc>;
0330                 interrupts = <10>;
0331 
0332                 clocks = <&cgu X1000_CLK_PDMA>;
0333         };
0334 
0335         msc0: mmc@13450000 {
0336                 compatible = "ingenic,x1000-mmc";
0337                 reg = <0x13450000 0x1000>;
0338 
0339                 interrupt-parent = <&intc>;
0340                 interrupts = <37>;
0341 
0342                 clocks = <&cgu X1000_CLK_MSC0>;
0343                 clock-names = "mmc";
0344 
0345                 cap-sd-highspeed;
0346                 cap-mmc-highspeed;
0347                 cap-sdio-irq;
0348 
0349                 dmas = <&pdma X1000_DMA_MSC0_RX 0xffffffff>,
0350                            <&pdma X1000_DMA_MSC0_TX 0xffffffff>;
0351                 dma-names = "rx", "tx";
0352 
0353                 status = "disabled";
0354         };
0355 
0356         msc1: mmc@13460000 {
0357                 compatible = "ingenic,x1000-mmc";
0358                 reg = <0x13460000 0x1000>;
0359 
0360                 interrupt-parent = <&intc>;
0361                 interrupts = <36>;
0362 
0363                 clocks = <&cgu X1000_CLK_MSC1>;
0364                 clock-names = "mmc";
0365 
0366                 cap-sd-highspeed;
0367                 cap-mmc-highspeed;
0368                 cap-sdio-irq;
0369 
0370                 dmas = <&pdma X1000_DMA_MSC1_RX 0xffffffff>,
0371                            <&pdma X1000_DMA_MSC1_TX 0xffffffff>;
0372                 dma-names = "rx", "tx";
0373 
0374                 status = "disabled";
0375         };
0376 
0377         mac: ethernet@134b0000 {
0378                 compatible = "ingenic,x1000-mac", "snps,dwmac";
0379                 reg = <0x134b0000 0x2000>;
0380 
0381                 interrupt-parent = <&intc>;
0382                 interrupts = <55>;
0383                 interrupt-names = "macirq";
0384 
0385                 clocks = <&cgu X1000_CLK_MAC>;
0386                 clock-names = "stmmaceth";
0387 
0388                 mode-reg = <&mac_phy_ctrl>;
0389 
0390                 status = "disabled";
0391 
0392                 mdio: mdio {
0393                         compatible = "snps,dwmac-mdio";
0394                         #address-cells = <1>;
0395                         #size-cells = <0>;
0396 
0397                         status = "disabled";
0398                 };
0399         };
0400 
0401         otg: usb@13500000 {
0402                 compatible = "ingenic,x1000-otg";
0403                 reg = <0x13500000 0x40000>;
0404 
0405                 interrupt-parent = <&intc>;
0406                 interrupts = <21>;
0407 
0408                 clocks = <&cgu X1000_CLK_OTG>;
0409                 clock-names = "otg";
0410 
0411                 phys = <&otg_phy>;
0412                 phy-names = "usb2-phy";
0413 
0414                 g-rx-fifo-size = <768>;
0415                 g-np-tx-fifo-size = <256>;
0416                 g-tx-fifo-size = <256 256 256 256 256 256 256 512>;
0417 
0418                 status = "disabled";
0419         };
0420 };