18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * ARM Ltd. Fast Models 48c2ecf20Sopenharmony_ci * 58c2ecf20Sopenharmony_ci * Versatile Express (VE) system model 68c2ecf20Sopenharmony_ci * Motherboard component 78c2ecf20Sopenharmony_ci * 88c2ecf20Sopenharmony_ci * VEMotherBoard.lisa 98c2ecf20Sopenharmony_ci */ 108c2ecf20Sopenharmony_ci/ { 118c2ecf20Sopenharmony_ci v2m_clk24mhz: clk24mhz { 128c2ecf20Sopenharmony_ci compatible = "fixed-clock"; 138c2ecf20Sopenharmony_ci #clock-cells = <0>; 148c2ecf20Sopenharmony_ci clock-frequency = <24000000>; 158c2ecf20Sopenharmony_ci clock-output-names = "v2m:clk24mhz"; 168c2ecf20Sopenharmony_ci }; 178c2ecf20Sopenharmony_ci 188c2ecf20Sopenharmony_ci v2m_refclk1mhz: refclk1mhz { 198c2ecf20Sopenharmony_ci compatible = "fixed-clock"; 208c2ecf20Sopenharmony_ci #clock-cells = <0>; 218c2ecf20Sopenharmony_ci clock-frequency = <1000000>; 228c2ecf20Sopenharmony_ci clock-output-names = "v2m:refclk1mhz"; 238c2ecf20Sopenharmony_ci }; 248c2ecf20Sopenharmony_ci 258c2ecf20Sopenharmony_ci v2m_refclk32khz: refclk32khz { 268c2ecf20Sopenharmony_ci compatible = "fixed-clock"; 278c2ecf20Sopenharmony_ci #clock-cells = <0>; 288c2ecf20Sopenharmony_ci clock-frequency = <32768>; 298c2ecf20Sopenharmony_ci clock-output-names = "v2m:refclk32khz"; 308c2ecf20Sopenharmony_ci }; 318c2ecf20Sopenharmony_ci 328c2ecf20Sopenharmony_ci v2m_fixed_3v3: v2m-3v3 { 338c2ecf20Sopenharmony_ci compatible = "regulator-fixed"; 348c2ecf20Sopenharmony_ci regulator-name = "3V3"; 358c2ecf20Sopenharmony_ci regulator-min-microvolt = <3300000>; 368c2ecf20Sopenharmony_ci regulator-max-microvolt = <3300000>; 378c2ecf20Sopenharmony_ci regulator-always-on; 388c2ecf20Sopenharmony_ci }; 398c2ecf20Sopenharmony_ci 408c2ecf20Sopenharmony_ci mcc { 418c2ecf20Sopenharmony_ci compatible = "arm,vexpress,config-bus"; 428c2ecf20Sopenharmony_ci arm,vexpress,config-bridge = <&v2m_sysreg>; 438c2ecf20Sopenharmony_ci 448c2ecf20Sopenharmony_ci v2m_oscclk1: oscclk1 { 458c2ecf20Sopenharmony_ci /* CLCD clock */ 468c2ecf20Sopenharmony_ci compatible = "arm,vexpress-osc"; 478c2ecf20Sopenharmony_ci arm,vexpress-sysreg,func = <1 1>; 488c2ecf20Sopenharmony_ci freq-range = <23750000 63500000>; 498c2ecf20Sopenharmony_ci #clock-cells = <0>; 508c2ecf20Sopenharmony_ci clock-output-names = "v2m:oscclk1"; 518c2ecf20Sopenharmony_ci }; 528c2ecf20Sopenharmony_ci 538c2ecf20Sopenharmony_ci reset { 548c2ecf20Sopenharmony_ci compatible = "arm,vexpress-reset"; 558c2ecf20Sopenharmony_ci arm,vexpress-sysreg,func = <5 0>; 568c2ecf20Sopenharmony_ci }; 578c2ecf20Sopenharmony_ci 588c2ecf20Sopenharmony_ci muxfpga { 598c2ecf20Sopenharmony_ci compatible = "arm,vexpress-muxfpga"; 608c2ecf20Sopenharmony_ci arm,vexpress-sysreg,func = <7 0>; 618c2ecf20Sopenharmony_ci }; 628c2ecf20Sopenharmony_ci 638c2ecf20Sopenharmony_ci shutdown { 648c2ecf20Sopenharmony_ci compatible = "arm,vexpress-shutdown"; 658c2ecf20Sopenharmony_ci arm,vexpress-sysreg,func = <8 0>; 668c2ecf20Sopenharmony_ci }; 678c2ecf20Sopenharmony_ci 688c2ecf20Sopenharmony_ci reboot { 698c2ecf20Sopenharmony_ci compatible = "arm,vexpress-reboot"; 708c2ecf20Sopenharmony_ci arm,vexpress-sysreg,func = <9 0>; 718c2ecf20Sopenharmony_ci }; 728c2ecf20Sopenharmony_ci 738c2ecf20Sopenharmony_ci dvimode { 748c2ecf20Sopenharmony_ci compatible = "arm,vexpress-dvimode"; 758c2ecf20Sopenharmony_ci arm,vexpress-sysreg,func = <11 0>; 768c2ecf20Sopenharmony_ci }; 778c2ecf20Sopenharmony_ci }; 788c2ecf20Sopenharmony_ci 798c2ecf20Sopenharmony_ci bus@8000000 { 808c2ecf20Sopenharmony_ci motherboard-bus { 818c2ecf20Sopenharmony_ci arm,v2m-memory-map = "rs1"; 828c2ecf20Sopenharmony_ci compatible = "arm,vexpress,v2m-p1", "simple-bus"; 838c2ecf20Sopenharmony_ci #address-cells = <2>; /* SMB chipselect number and offset */ 848c2ecf20Sopenharmony_ci #size-cells = <1>; 858c2ecf20Sopenharmony_ci #interrupt-cells = <1>; 868c2ecf20Sopenharmony_ci ranges; 878c2ecf20Sopenharmony_ci 888c2ecf20Sopenharmony_ci flash@0 { 898c2ecf20Sopenharmony_ci compatible = "arm,vexpress-flash", "cfi-flash"; 908c2ecf20Sopenharmony_ci reg = <0 0x00000000 0x04000000>, 918c2ecf20Sopenharmony_ci <4 0x00000000 0x04000000>; 928c2ecf20Sopenharmony_ci bank-width = <4>; 938c2ecf20Sopenharmony_ci }; 948c2ecf20Sopenharmony_ci 958c2ecf20Sopenharmony_ci ethernet@202000000 { 968c2ecf20Sopenharmony_ci compatible = "smsc,lan91c111"; 978c2ecf20Sopenharmony_ci reg = <2 0x02000000 0x10000>; 988c2ecf20Sopenharmony_ci interrupts = <15>; 998c2ecf20Sopenharmony_ci }; 1008c2ecf20Sopenharmony_ci 1018c2ecf20Sopenharmony_ci iofpga-bus@300000000 { 1028c2ecf20Sopenharmony_ci compatible = "simple-bus"; 1038c2ecf20Sopenharmony_ci #address-cells = <1>; 1048c2ecf20Sopenharmony_ci #size-cells = <1>; 1058c2ecf20Sopenharmony_ci ranges = <0 3 0 0x200000>; 1068c2ecf20Sopenharmony_ci 1078c2ecf20Sopenharmony_ci v2m_sysreg: sysreg@10000 { 1088c2ecf20Sopenharmony_ci compatible = "arm,vexpress-sysreg"; 1098c2ecf20Sopenharmony_ci reg = <0x010000 0x1000>; 1108c2ecf20Sopenharmony_ci gpio-controller; 1118c2ecf20Sopenharmony_ci #gpio-cells = <2>; 1128c2ecf20Sopenharmony_ci }; 1138c2ecf20Sopenharmony_ci 1148c2ecf20Sopenharmony_ci v2m_sysctl: sysctl@20000 { 1158c2ecf20Sopenharmony_ci compatible = "arm,sp810", "arm,primecell"; 1168c2ecf20Sopenharmony_ci reg = <0x020000 0x1000>; 1178c2ecf20Sopenharmony_ci clocks = <&v2m_refclk32khz>, <&v2m_refclk1mhz>, <&v2m_clk24mhz>; 1188c2ecf20Sopenharmony_ci clock-names = "refclk", "timclk", "apb_pclk"; 1198c2ecf20Sopenharmony_ci #clock-cells = <1>; 1208c2ecf20Sopenharmony_ci clock-output-names = "timerclken0", "timerclken1", "timerclken2", "timerclken3"; 1218c2ecf20Sopenharmony_ci assigned-clocks = <&v2m_sysctl 0>, <&v2m_sysctl 1>, <&v2m_sysctl 3>, <&v2m_sysctl 3>; 1228c2ecf20Sopenharmony_ci assigned-clock-parents = <&v2m_refclk1mhz>, <&v2m_refclk1mhz>, <&v2m_refclk1mhz>, <&v2m_refclk1mhz>; 1238c2ecf20Sopenharmony_ci }; 1248c2ecf20Sopenharmony_ci 1258c2ecf20Sopenharmony_ci aaci@40000 { 1268c2ecf20Sopenharmony_ci compatible = "arm,pl041", "arm,primecell"; 1278c2ecf20Sopenharmony_ci reg = <0x040000 0x1000>; 1288c2ecf20Sopenharmony_ci interrupts = <11>; 1298c2ecf20Sopenharmony_ci clocks = <&v2m_clk24mhz>; 1308c2ecf20Sopenharmony_ci clock-names = "apb_pclk"; 1318c2ecf20Sopenharmony_ci }; 1328c2ecf20Sopenharmony_ci 1338c2ecf20Sopenharmony_ci mmci@50000 { 1348c2ecf20Sopenharmony_ci compatible = "arm,pl180", "arm,primecell"; 1358c2ecf20Sopenharmony_ci reg = <0x050000 0x1000>; 1368c2ecf20Sopenharmony_ci interrupts = <9>, <10>; 1378c2ecf20Sopenharmony_ci cd-gpios = <&v2m_sysreg 0 0>; 1388c2ecf20Sopenharmony_ci wp-gpios = <&v2m_sysreg 1 0>; 1398c2ecf20Sopenharmony_ci max-frequency = <12000000>; 1408c2ecf20Sopenharmony_ci vmmc-supply = <&v2m_fixed_3v3>; 1418c2ecf20Sopenharmony_ci clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>; 1428c2ecf20Sopenharmony_ci clock-names = "mclk", "apb_pclk"; 1438c2ecf20Sopenharmony_ci }; 1448c2ecf20Sopenharmony_ci 1458c2ecf20Sopenharmony_ci kmi@60000 { 1468c2ecf20Sopenharmony_ci compatible = "arm,pl050", "arm,primecell"; 1478c2ecf20Sopenharmony_ci reg = <0x060000 0x1000>; 1488c2ecf20Sopenharmony_ci interrupts = <12>; 1498c2ecf20Sopenharmony_ci clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>; 1508c2ecf20Sopenharmony_ci clock-names = "KMIREFCLK", "apb_pclk"; 1518c2ecf20Sopenharmony_ci }; 1528c2ecf20Sopenharmony_ci 1538c2ecf20Sopenharmony_ci kmi@70000 { 1548c2ecf20Sopenharmony_ci compatible = "arm,pl050", "arm,primecell"; 1558c2ecf20Sopenharmony_ci reg = <0x070000 0x1000>; 1568c2ecf20Sopenharmony_ci interrupts = <13>; 1578c2ecf20Sopenharmony_ci clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>; 1588c2ecf20Sopenharmony_ci clock-names = "KMIREFCLK", "apb_pclk"; 1598c2ecf20Sopenharmony_ci }; 1608c2ecf20Sopenharmony_ci 1618c2ecf20Sopenharmony_ci v2m_serial0: serial@90000 { 1628c2ecf20Sopenharmony_ci compatible = "arm,pl011", "arm,primecell"; 1638c2ecf20Sopenharmony_ci reg = <0x090000 0x1000>; 1648c2ecf20Sopenharmony_ci interrupts = <5>; 1658c2ecf20Sopenharmony_ci clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>; 1668c2ecf20Sopenharmony_ci clock-names = "uartclk", "apb_pclk"; 1678c2ecf20Sopenharmony_ci }; 1688c2ecf20Sopenharmony_ci 1698c2ecf20Sopenharmony_ci v2m_serial1: serial@a0000 { 1708c2ecf20Sopenharmony_ci compatible = "arm,pl011", "arm,primecell"; 1718c2ecf20Sopenharmony_ci reg = <0x0a0000 0x1000>; 1728c2ecf20Sopenharmony_ci interrupts = <6>; 1738c2ecf20Sopenharmony_ci clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>; 1748c2ecf20Sopenharmony_ci clock-names = "uartclk", "apb_pclk"; 1758c2ecf20Sopenharmony_ci }; 1768c2ecf20Sopenharmony_ci 1778c2ecf20Sopenharmony_ci v2m_serial2: serial@b0000 { 1788c2ecf20Sopenharmony_ci compatible = "arm,pl011", "arm,primecell"; 1798c2ecf20Sopenharmony_ci reg = <0x0b0000 0x1000>; 1808c2ecf20Sopenharmony_ci interrupts = <7>; 1818c2ecf20Sopenharmony_ci clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>; 1828c2ecf20Sopenharmony_ci clock-names = "uartclk", "apb_pclk"; 1838c2ecf20Sopenharmony_ci }; 1848c2ecf20Sopenharmony_ci 1858c2ecf20Sopenharmony_ci v2m_serial3: serial@c0000 { 1868c2ecf20Sopenharmony_ci compatible = "arm,pl011", "arm,primecell"; 1878c2ecf20Sopenharmony_ci reg = <0x0c0000 0x1000>; 1888c2ecf20Sopenharmony_ci interrupts = <8>; 1898c2ecf20Sopenharmony_ci clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>; 1908c2ecf20Sopenharmony_ci clock-names = "uartclk", "apb_pclk"; 1918c2ecf20Sopenharmony_ci }; 1928c2ecf20Sopenharmony_ci 1938c2ecf20Sopenharmony_ci wdt@f0000 { 1948c2ecf20Sopenharmony_ci compatible = "arm,sp805", "arm,primecell"; 1958c2ecf20Sopenharmony_ci reg = <0x0f0000 0x1000>; 1968c2ecf20Sopenharmony_ci interrupts = <0>; 1978c2ecf20Sopenharmony_ci clocks = <&v2m_refclk32khz>, <&v2m_clk24mhz>; 1988c2ecf20Sopenharmony_ci clock-names = "wdog_clk", "apb_pclk"; 1998c2ecf20Sopenharmony_ci }; 2008c2ecf20Sopenharmony_ci 2018c2ecf20Sopenharmony_ci v2m_timer01: timer@110000 { 2028c2ecf20Sopenharmony_ci compatible = "arm,sp804", "arm,primecell"; 2038c2ecf20Sopenharmony_ci reg = <0x110000 0x1000>; 2048c2ecf20Sopenharmony_ci interrupts = <2>; 2058c2ecf20Sopenharmony_ci clocks = <&v2m_sysctl 0>, <&v2m_sysctl 1>, <&v2m_clk24mhz>; 2068c2ecf20Sopenharmony_ci clock-names = "timclken1", "timclken2", "apb_pclk"; 2078c2ecf20Sopenharmony_ci }; 2088c2ecf20Sopenharmony_ci 2098c2ecf20Sopenharmony_ci v2m_timer23: timer@120000 { 2108c2ecf20Sopenharmony_ci compatible = "arm,sp804", "arm,primecell"; 2118c2ecf20Sopenharmony_ci reg = <0x120000 0x1000>; 2128c2ecf20Sopenharmony_ci interrupts = <3>; 2138c2ecf20Sopenharmony_ci clocks = <&v2m_sysctl 2>, <&v2m_sysctl 3>, <&v2m_clk24mhz>; 2148c2ecf20Sopenharmony_ci clock-names = "timclken1", "timclken2", "apb_pclk"; 2158c2ecf20Sopenharmony_ci }; 2168c2ecf20Sopenharmony_ci 2178c2ecf20Sopenharmony_ci virtio-block@130000 { 2188c2ecf20Sopenharmony_ci compatible = "virtio,mmio"; 2198c2ecf20Sopenharmony_ci reg = <0x130000 0x200>; 2208c2ecf20Sopenharmony_ci interrupts = <42>; 2218c2ecf20Sopenharmony_ci }; 2228c2ecf20Sopenharmony_ci 2238c2ecf20Sopenharmony_ci rtc@170000 { 2248c2ecf20Sopenharmony_ci compatible = "arm,pl031", "arm,primecell"; 2258c2ecf20Sopenharmony_ci reg = <0x170000 0x1000>; 2268c2ecf20Sopenharmony_ci interrupts = <4>; 2278c2ecf20Sopenharmony_ci clocks = <&v2m_clk24mhz>; 2288c2ecf20Sopenharmony_ci clock-names = "apb_pclk"; 2298c2ecf20Sopenharmony_ci }; 2308c2ecf20Sopenharmony_ci 2318c2ecf20Sopenharmony_ci clcd@1f0000 { 2328c2ecf20Sopenharmony_ci compatible = "arm,pl111", "arm,primecell"; 2338c2ecf20Sopenharmony_ci reg = <0x1f0000 0x1000>; 2348c2ecf20Sopenharmony_ci interrupt-names = "combined"; 2358c2ecf20Sopenharmony_ci interrupts = <14>; 2368c2ecf20Sopenharmony_ci clocks = <&v2m_oscclk1>, <&v2m_clk24mhz>; 2378c2ecf20Sopenharmony_ci clock-names = "clcdclk", "apb_pclk"; 2388c2ecf20Sopenharmony_ci memory-region = <&vram>; 2398c2ecf20Sopenharmony_ci 2408c2ecf20Sopenharmony_ci port { 2418c2ecf20Sopenharmony_ci clcd_pads: endpoint { 2428c2ecf20Sopenharmony_ci remote-endpoint = <&panel_in>; 2438c2ecf20Sopenharmony_ci arm,pl11x,tft-r0g0b0-pads = <0 8 16>; 2448c2ecf20Sopenharmony_ci }; 2458c2ecf20Sopenharmony_ci }; 2468c2ecf20Sopenharmony_ci }; 2478c2ecf20Sopenharmony_ci }; 2488c2ecf20Sopenharmony_ci }; 2498c2ecf20Sopenharmony_ci }; 2508c2ecf20Sopenharmony_ci}; 251