Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: GPL-2.0
0002 /*
0003  * ARM Ltd. Versatile Express
0004  *
0005  * CoreTile Express A9x4
0006  * Cortex-A9 MPCore (V2P-CA9)
0007  *
0008  * HBI-0191B
0009  */
0010 
0011 /dts-v1/;
0012 #include "vexpress-v2m.dtsi"
0013 
0014 / {
0015         model = "V2P-CA9";
0016         arm,hbi = <0x191>;
0017         arm,vexpress,site = <0xf>;
0018         compatible = "arm,vexpress,v2p-ca9", "arm,vexpress";
0019         interrupt-parent = <&gic>;
0020         #address-cells = <1>;
0021         #size-cells = <1>;
0022 
0023         chosen { };
0024 
0025         aliases {
0026                 serial0 = &v2m_serial0;
0027                 serial1 = &v2m_serial1;
0028                 serial2 = &v2m_serial2;
0029                 serial3 = &v2m_serial3;
0030                 i2c0 = &v2m_i2c_dvi;
0031                 i2c1 = &v2m_i2c_pcie;
0032         };
0033 
0034         cpus {
0035                 #address-cells = <1>;
0036                 #size-cells = <0>;
0037 
0038                 A9_0: cpu@0 {
0039                         device_type = "cpu";
0040                         compatible = "arm,cortex-a9";
0041                         reg = <0>;
0042                         next-level-cache = <&L2>;
0043                 };
0044 
0045                 A9_1: cpu@1 {
0046                         device_type = "cpu";
0047                         compatible = "arm,cortex-a9";
0048                         reg = <1>;
0049                         next-level-cache = <&L2>;
0050                 };
0051 
0052                 A9_2: cpu@2 {
0053                         device_type = "cpu";
0054                         compatible = "arm,cortex-a9";
0055                         reg = <2>;
0056                         next-level-cache = <&L2>;
0057                 };
0058 
0059                 A9_3: cpu@3 {
0060                         device_type = "cpu";
0061                         compatible = "arm,cortex-a9";
0062                         reg = <3>;
0063                         next-level-cache = <&L2>;
0064                 };
0065         };
0066 
0067         memory@60000000 {
0068                 device_type = "memory";
0069                 reg = <0x60000000 0x40000000>;
0070         };
0071 
0072         reserved-memory {
0073                 #address-cells = <1>;
0074                 #size-cells = <1>;
0075                 ranges;
0076 
0077                 /* Chipselect 3 is physically at 0x4c000000 */
0078                 vram: vram@4c000000 {
0079                         /* 8 MB of designated video RAM */
0080                         compatible = "shared-dma-pool";
0081                         reg = <0x4c000000 0x00800000>;
0082                         no-map;
0083                 };
0084         };
0085 
0086         clcd@10020000 {
0087                 compatible = "arm,pl111", "arm,primecell";
0088                 reg = <0x10020000 0x1000>;
0089                 interrupt-names = "combined";
0090                 interrupts = <0 44 4>;
0091                 clocks = <&oscclk1>, <&oscclk2>;
0092                 clock-names = "clcdclk", "apb_pclk";
0093                 /* 1024x768 16bpp @65MHz */
0094                 max-memory-bandwidth = <95000000>;
0095 
0096                 port {
0097                         clcd_pads_ct: endpoint {
0098                                 remote-endpoint = <&dvi_bridge_in_ct>;
0099                                 arm,pl11x,tft-r0g0b0-pads = <0 8 16>;
0100                         };
0101                 };
0102         };
0103 
0104         memory-controller@100e0000 {
0105                 compatible = "arm,pl341", "arm,primecell";
0106                 reg = <0x100e0000 0x1000>;
0107                 clocks = <&oscclk2>;
0108                 clock-names = "apb_pclk";
0109         };
0110 
0111         memory-controller@100e1000 {
0112                 compatible = "arm,pl354", "arm,primecell";
0113                 reg = <0x100e1000 0x1000>;
0114                 interrupts = <0 45 4>,
0115                              <0 46 4>;
0116                 clocks = <&oscclk2>;
0117                 clock-names = "apb_pclk";
0118         };
0119 
0120         timer@100e4000 {
0121                 compatible = "arm,sp804", "arm,primecell";
0122                 reg = <0x100e4000 0x1000>;
0123                 interrupts = <0 48 4>,
0124                              <0 49 4>;
0125                 clocks = <&oscclk2>, <&oscclk2>, <&oscclk2>;
0126                 clock-names = "timer0clk", "timer1clk", "apb_pclk";
0127                 status = "disabled";
0128         };
0129 
0130         watchdog@100e5000 {
0131                 compatible = "arm,sp805", "arm,primecell";
0132                 reg = <0x100e5000 0x1000>;
0133                 interrupts = <0 51 4>;
0134                 clocks = <&oscclk2>, <&oscclk2>;
0135                 clock-names = "wdog_clk", "apb_pclk";
0136         };
0137 
0138         scu@1e000000 {
0139                 compatible = "arm,cortex-a9-scu";
0140                 reg = <0x1e000000 0x58>;
0141         };
0142 
0143         timer@1e000600 {
0144                 compatible = "arm,cortex-a9-twd-timer";
0145                 reg = <0x1e000600 0x20>;
0146                 interrupts = <1 13 0xf04>;
0147         };
0148 
0149         watchdog@1e000620 {
0150                 compatible = "arm,cortex-a9-twd-wdt";
0151                 reg = <0x1e000620 0x20>;
0152                 interrupts = <1 14 0xf04>;
0153         };
0154 
0155         gic: interrupt-controller@1e001000 {
0156                 compatible = "arm,cortex-a9-gic";
0157                 #interrupt-cells = <3>;
0158                 #address-cells = <0>;
0159                 interrupt-controller;
0160                 reg = <0x1e001000 0x1000>,
0161                       <0x1e000100 0x100>;
0162         };
0163 
0164         L2: cache-controller@1e00a000 {
0165                 compatible = "arm,pl310-cache";
0166                 reg = <0x1e00a000 0x1000>;
0167                 interrupts = <0 43 4>;
0168                 cache-unified;
0169                 cache-level = <2>;
0170                 arm,data-latency = <1 1 1>;
0171                 arm,tag-latency = <1 1 1>;
0172         };
0173 
0174         pmu {
0175                 compatible = "arm,cortex-a9-pmu";
0176                 interrupts = <0 60 4>,
0177                              <0 61 4>,
0178                              <0 62 4>,
0179                              <0 63 4>;
0180                 interrupt-affinity = <&A9_0>, <&A9_1>, <&A9_2>, <&A9_3>;
0181 
0182         };
0183 
0184         dcc {
0185                 compatible = "arm,vexpress,config-bus";
0186                 arm,vexpress,config-bridge = <&v2m_sysreg>;
0187 
0188                 oscclk0: extsaxiclk {
0189                         /* ACLK clock to the AXI master port on the test chip */
0190                         compatible = "arm,vexpress-osc";
0191                         arm,vexpress-sysreg,func = <1 0>;
0192                         freq-range = <30000000 50000000>;
0193                         #clock-cells = <0>;
0194                         clock-output-names = "extsaxiclk";
0195                 };
0196 
0197                 oscclk1: clcdclk {
0198                         /* Reference clock for the CLCD */
0199                         compatible = "arm,vexpress-osc";
0200                         arm,vexpress-sysreg,func = <1 1>;
0201                         freq-range = <10000000 80000000>;
0202                         #clock-cells = <0>;
0203                         clock-output-names = "clcdclk";
0204                 };
0205 
0206                 smbclk: oscclk2: tcrefclk {
0207                         /* Reference clock for the test chip internal PLLs */
0208                         compatible = "arm,vexpress-osc";
0209                         arm,vexpress-sysreg,func = <1 2>;
0210                         freq-range = <33000000 100000000>;
0211                         #clock-cells = <0>;
0212                         clock-output-names = "tcrefclk";
0213                 };
0214 
0215                 volt-vd10 {
0216                         /* Test Chip internal logic voltage */
0217                         compatible = "arm,vexpress-volt";
0218                         arm,vexpress-sysreg,func = <2 0>;
0219                         regulator-name = "VD10";
0220                         regulator-always-on;
0221                         label = "VD10";
0222                 };
0223 
0224                 volt-vd10-s2 {
0225                         /* PL310, L2 cache, RAM cell supply (not PL310 logic) */
0226                         compatible = "arm,vexpress-volt";
0227                         arm,vexpress-sysreg,func = <2 1>;
0228                         regulator-name = "VD10_S2";
0229                         regulator-always-on;
0230                         label = "VD10_S2";
0231                 };
0232 
0233                 volt-vd10-s3 {
0234                         /* Cortex-A9 system supply, Cores, MPEs, SCU and PL310 logic */
0235                         compatible = "arm,vexpress-volt";
0236                         arm,vexpress-sysreg,func = <2 2>;
0237                         regulator-name = "VD10_S3";
0238                         regulator-always-on;
0239                         label = "VD10_S3";
0240                 };
0241 
0242                 volt-vcc1v8 {
0243                         /* DDR2 SDRAM and Test Chip DDR2 I/O supply */
0244                         compatible = "arm,vexpress-volt";
0245                         arm,vexpress-sysreg,func = <2 3>;
0246                         regulator-name = "VCC1V8";
0247                         regulator-always-on;
0248                         label = "VCC1V8";
0249                 };
0250 
0251                 volt-ddr2vtt {
0252                         /* DDR2 SDRAM VTT termination voltage */
0253                         compatible = "arm,vexpress-volt";
0254                         arm,vexpress-sysreg,func = <2 4>;
0255                         regulator-name = "DDR2VTT";
0256                         regulator-always-on;
0257                         label = "DDR2VTT";
0258                 };
0259 
0260                 volt-vcc3v3 {
0261                         /* Local board supply for miscellaneous logic external to the Test Chip */
0262                         arm,vexpress-sysreg,func = <2 5>;
0263                         compatible = "arm,vexpress-volt";
0264                         regulator-name = "VCC3V3";
0265                         regulator-always-on;
0266                         label = "VCC3V3";
0267                 };
0268 
0269                 amp-vd10-s2 {
0270                         /* PL310, L2 cache, RAM cell supply (not PL310 logic) */
0271                         compatible = "arm,vexpress-amp";
0272                         arm,vexpress-sysreg,func = <3 0>;
0273                         label = "VD10_S2";
0274                 };
0275 
0276                 amp-vd10-s3 {
0277                         /* Cortex-A9 system supply, Cores, MPEs, SCU and PL310 logic */
0278                         compatible = "arm,vexpress-amp";
0279                         arm,vexpress-sysreg,func = <3 1>;
0280                         label = "VD10_S3";
0281                 };
0282 
0283                 power-vd10-s2 {
0284                         /* PL310, L2 cache, RAM cell supply (not PL310 logic) */
0285                         compatible = "arm,vexpress-power";
0286                         arm,vexpress-sysreg,func = <12 0>;
0287                         label = "PVD10_S2";
0288                 };
0289 
0290                 power-vd10-s3 {
0291                         /* Cortex-A9 system supply, Cores, MPEs, SCU and PL310 logic */
0292                         compatible = "arm,vexpress-power";
0293                         arm,vexpress-sysreg,func = <12 1>;
0294                         label = "PVD10_S3";
0295                 };
0296         };
0297 
0298         site2: hsb@e0000000 {
0299                 compatible = "simple-bus";
0300                 #address-cells = <1>;
0301                 #size-cells = <1>;
0302                 ranges = <0 0xe0000000 0x20000000>;
0303                 #interrupt-cells = <1>;
0304                 interrupt-map-mask = <0 3>;
0305                 interrupt-map = <0 0 &gic 0 36 4>,
0306                                 <0 1 &gic 0 37 4>,
0307                                 <0 2 &gic 0 38 4>,
0308                                 <0 3 &gic 0 39 4>;
0309         };
0310 };