12716bd33SAndre Przywara// SPDX-License-Identifier: (GPL-2.0 OR MIT) 24f6ad66aSAchin Gupta/* 32716bd33SAndre Przywara * ARM Ltd. Fast Models 44f6ad66aSAchin Gupta * 52716bd33SAndre Przywara * Copyright (c) 2012-2022 ARM Ltd. 62716bd33SAndre Przywara * 72716bd33SAndre Przywara * Versatile Express (VE) system model 82716bd33SAndre Przywara * Motherboard component 92716bd33SAndre Przywara * 102716bd33SAndre Przywara * VEMotherBoard.lisa 114f6ad66aSAchin Gupta */ 122716bd33SAndre Przywara/ { 134f6ad66aSAchin Gupta v2m_clk24mhz: clk24mhz { 144f6ad66aSAchin Gupta compatible = "fixed-clock"; 154f6ad66aSAchin Gupta #clock-cells = <0>; 164f6ad66aSAchin Gupta clock-frequency = <24000000>; 174f6ad66aSAchin Gupta clock-output-names = "v2m:clk24mhz"; 184f6ad66aSAchin Gupta }; 194f6ad66aSAchin Gupta 204f6ad66aSAchin Gupta v2m_refclk1mhz: refclk1mhz { 214f6ad66aSAchin Gupta compatible = "fixed-clock"; 224f6ad66aSAchin Gupta #clock-cells = <0>; 234f6ad66aSAchin Gupta clock-frequency = <1000000>; 244f6ad66aSAchin Gupta clock-output-names = "v2m:refclk1mhz"; 254f6ad66aSAchin Gupta }; 264f6ad66aSAchin Gupta 274f6ad66aSAchin Gupta v2m_refclk32khz: refclk32khz { 284f6ad66aSAchin Gupta compatible = "fixed-clock"; 294f6ad66aSAchin Gupta #clock-cells = <0>; 304f6ad66aSAchin Gupta clock-frequency = <32768>; 314f6ad66aSAchin Gupta clock-output-names = "v2m:refclk32khz"; 324f6ad66aSAchin Gupta }; 334f6ad66aSAchin Gupta 342716bd33SAndre Przywara v2m_fixed_3v3: v2m-3v3 { 352716bd33SAndre Przywara compatible = "regulator-fixed"; 362716bd33SAndre Przywara regulator-name = "3V3"; 372716bd33SAndre Przywara regulator-min-microvolt = <3300000>; 382716bd33SAndre Przywara regulator-max-microvolt = <3300000>; 392716bd33SAndre Przywara regulator-always-on; 402716bd33SAndre Przywara }; 412716bd33SAndre Przywara 422716bd33SAndre Przywara mcc { 432716bd33SAndre Przywara compatible = "arm,vexpress,config-bus"; 442716bd33SAndre Przywara arm,vexpress,config-bridge = <&v2m_sysreg>; 452716bd33SAndre Przywara 462716bd33SAndre Przywara v2m_oscclk1: oscclk1 { 472716bd33SAndre Przywara /* CLCD clock */ 482716bd33SAndre Przywara compatible = "arm,vexpress-osc"; 492716bd33SAndre Przywara arm,vexpress-sysreg,func = <1 1>; 502716bd33SAndre Przywara freq-range = <23750000 63500000>; 512716bd33SAndre Przywara #clock-cells = <0>; 522716bd33SAndre Przywara clock-output-names = "v2m:oscclk1"; 532716bd33SAndre Przywara }; 542716bd33SAndre Przywara 552716bd33SAndre Przywara reset { 562716bd33SAndre Przywara compatible = "arm,vexpress-reset"; 572716bd33SAndre Przywara arm,vexpress-sysreg,func = <5 0>; 582716bd33SAndre Przywara }; 592716bd33SAndre Przywara 602716bd33SAndre Przywara muxfpga { 612716bd33SAndre Przywara compatible = "arm,vexpress-muxfpga"; 622716bd33SAndre Przywara arm,vexpress-sysreg,func = <7 0>; 632716bd33SAndre Przywara }; 642716bd33SAndre Przywara 652716bd33SAndre Przywara shutdown { 662716bd33SAndre Przywara compatible = "arm,vexpress-shutdown"; 672716bd33SAndre Przywara arm,vexpress-sysreg,func = <8 0>; 682716bd33SAndre Przywara }; 692716bd33SAndre Przywara 702716bd33SAndre Przywara reboot { 712716bd33SAndre Przywara compatible = "arm,vexpress-reboot"; 722716bd33SAndre Przywara arm,vexpress-sysreg,func = <9 0>; 732716bd33SAndre Przywara }; 742716bd33SAndre Przywara 752716bd33SAndre Przywara dvimode { 762716bd33SAndre Przywara compatible = "arm,vexpress-dvimode"; 772716bd33SAndre Przywara arm,vexpress-sysreg,func = <11 0>; 782716bd33SAndre Przywara }; 792716bd33SAndre Przywara }; 802716bd33SAndre Przywara 812716bd33SAndre Przywara bus@8000000 { 822716bd33SAndre Przywara compatible = "simple-bus"; 832716bd33SAndre Przywara #address-cells = <2>; 842716bd33SAndre Przywara #size-cells = <1>; 852716bd33SAndre Przywara ranges = <0 0x8000000 0 0x8000000 0x18000000>; 862716bd33SAndre Przywara 872716bd33SAndre Przywara motherboard-bus@8000000 { 882716bd33SAndre Przywara compatible = "arm,vexpress,v2m-p1", "simple-bus"; 892716bd33SAndre Przywara #address-cells = <2>; /* SMB chipselect number and offset */ 902716bd33SAndre Przywara #size-cells = <1>; 912716bd33SAndre Przywara ranges = <0 0 0 0x08000000 0x04000000>, 922716bd33SAndre Przywara <1 0 0 0x14000000 0x04000000>, 932716bd33SAndre Przywara <2 0 0 0x18000000 0x04000000>, 942716bd33SAndre Przywara <3 0 0 0x1c000000 0x04000000>, 952716bd33SAndre Przywara <4 0 0 0x0c000000 0x04000000>, 962716bd33SAndre Przywara <5 0 0 0x10000000 0x04000000>; 972716bd33SAndre Przywara 982716bd33SAndre Przywara flash@0 { 992716bd33SAndre Przywara compatible = "arm,vexpress-flash", "cfi-flash"; 1002716bd33SAndre Przywara reg = <0 0x00000000 0x04000000>, 1012716bd33SAndre Przywara <4 0x00000000 0x04000000>; 1022716bd33SAndre Przywara bank-width = <4>; 1032716bd33SAndre Przywara }; 1042716bd33SAndre Przywara 1052716bd33SAndre Przywara ethernet@202000000 { 1062716bd33SAndre Przywara compatible = "smsc,lan91c111"; 1072716bd33SAndre Przywara reg = <2 0x02000000 0x10000>; 1082716bd33SAndre Przywara interrupts = <15>; 1092716bd33SAndre Przywara }; 1102716bd33SAndre Przywara 1112716bd33SAndre Przywara iofpga-bus@300000000 { 1122716bd33SAndre Przywara compatible = "simple-bus"; 1134f6ad66aSAchin Gupta #address-cells = <1>; 1144f6ad66aSAchin Gupta #size-cells = <1>; 1152716bd33SAndre Przywara ranges = <0 3 0 0x210000>; 1164f6ad66aSAchin Gupta 117e230f4d5SRoberto Vargas v2m_sysreg: sysreg@10000 { 1184f6ad66aSAchin Gupta compatible = "arm,vexpress-sysreg"; 1194f6ad66aSAchin Gupta reg = <0x010000 0x1000>; 1204f6ad66aSAchin Gupta gpio-controller; 1214f6ad66aSAchin Gupta #gpio-cells = <2>; 1224f6ad66aSAchin Gupta }; 1234f6ad66aSAchin Gupta 124e230f4d5SRoberto Vargas v2m_sysctl: sysctl@20000 { 1254f6ad66aSAchin Gupta compatible = "arm,sp810", "arm,primecell"; 1264f6ad66aSAchin Gupta reg = <0x020000 0x1000>; 1274f6ad66aSAchin Gupta clocks = <&v2m_refclk32khz>, <&v2m_refclk1mhz>, <&v2m_clk24mhz>; 1284f6ad66aSAchin Gupta clock-names = "refclk", "timclk", "apb_pclk"; 1294f6ad66aSAchin Gupta #clock-cells = <1>; 1304f6ad66aSAchin Gupta clock-output-names = "timerclken0", "timerclken1", "timerclken2", "timerclken3"; 1312716bd33SAndre Przywara assigned-clocks = <&v2m_sysctl 0>, <&v2m_sysctl 1>, <&v2m_sysctl 3>, <&v2m_sysctl 3>; 1322716bd33SAndre Przywara assigned-clock-parents = <&v2m_refclk1mhz>, <&v2m_refclk1mhz>, <&v2m_refclk1mhz>, <&v2m_refclk1mhz>; 1334f6ad66aSAchin Gupta }; 1344f6ad66aSAchin Gupta 135e230f4d5SRoberto Vargas aaci@40000 { 1364f6ad66aSAchin Gupta compatible = "arm,pl041", "arm,primecell"; 1374f6ad66aSAchin Gupta reg = <0x040000 0x1000>; 13808f3c2bcSAndre Przywara interrupts = <11>; 1394f6ad66aSAchin Gupta clocks = <&v2m_clk24mhz>; 1404f6ad66aSAchin Gupta clock-names = "apb_pclk"; 1414f6ad66aSAchin Gupta }; 1424f6ad66aSAchin Gupta 1432716bd33SAndre Przywara mmc@50000 { 1444f6ad66aSAchin Gupta compatible = "arm,pl180", "arm,primecell"; 1454f6ad66aSAchin Gupta reg = <0x050000 0x1000>; 14608f3c2bcSAndre Przywara interrupts = <9>, <10>; 1474f6ad66aSAchin Gupta cd-gpios = <&v2m_sysreg 0 0>; 1484f6ad66aSAchin Gupta wp-gpios = <&v2m_sysreg 1 0>; 1494f6ad66aSAchin Gupta max-frequency = <12000000>; 1504f6ad66aSAchin Gupta vmmc-supply = <&v2m_fixed_3v3>; 1514f6ad66aSAchin Gupta clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>; 1524f6ad66aSAchin Gupta clock-names = "mclk", "apb_pclk"; 1534f6ad66aSAchin Gupta }; 1544f6ad66aSAchin Gupta 155e230f4d5SRoberto Vargas kmi@60000 { 1564f6ad66aSAchin Gupta compatible = "arm,pl050", "arm,primecell"; 1574f6ad66aSAchin Gupta reg = <0x060000 0x1000>; 15808f3c2bcSAndre Przywara interrupts = <12>; 1594f6ad66aSAchin Gupta clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>; 1604f6ad66aSAchin Gupta clock-names = "KMIREFCLK", "apb_pclk"; 1614f6ad66aSAchin Gupta }; 1624f6ad66aSAchin Gupta 163e230f4d5SRoberto Vargas kmi@70000 { 1644f6ad66aSAchin Gupta compatible = "arm,pl050", "arm,primecell"; 1654f6ad66aSAchin Gupta reg = <0x070000 0x1000>; 16608f3c2bcSAndre Przywara interrupts = <13>; 1674f6ad66aSAchin Gupta clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>; 1684f6ad66aSAchin Gupta clock-names = "KMIREFCLK", "apb_pclk"; 1694f6ad66aSAchin Gupta }; 1704f6ad66aSAchin Gupta 1712716bd33SAndre Przywara v2m_serial0: serial@90000 { 1724f6ad66aSAchin Gupta compatible = "arm,pl011", "arm,primecell"; 1734f6ad66aSAchin Gupta reg = <0x090000 0x1000>; 17408f3c2bcSAndre Przywara interrupts = <5>; 1754f6ad66aSAchin Gupta clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>; 1764f6ad66aSAchin Gupta clock-names = "uartclk", "apb_pclk"; 1774f6ad66aSAchin Gupta }; 1784f6ad66aSAchin Gupta 1792716bd33SAndre Przywara v2m_serial1: serial@a0000 { 1804f6ad66aSAchin Gupta compatible = "arm,pl011", "arm,primecell"; 1814f6ad66aSAchin Gupta reg = <0x0a0000 0x1000>; 18208f3c2bcSAndre Przywara interrupts = <6>; 1834f6ad66aSAchin Gupta clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>; 1844f6ad66aSAchin Gupta clock-names = "uartclk", "apb_pclk"; 1854f6ad66aSAchin Gupta }; 1864f6ad66aSAchin Gupta 1872716bd33SAndre Przywara v2m_serial2: serial@b0000 { 1884f6ad66aSAchin Gupta compatible = "arm,pl011", "arm,primecell"; 1894f6ad66aSAchin Gupta reg = <0x0b0000 0x1000>; 19008f3c2bcSAndre Przywara interrupts = <7>; 1914f6ad66aSAchin Gupta clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>; 1924f6ad66aSAchin Gupta clock-names = "uartclk", "apb_pclk"; 1934f6ad66aSAchin Gupta }; 1944f6ad66aSAchin Gupta 1952716bd33SAndre Przywara v2m_serial3: serial@c0000 { 1964f6ad66aSAchin Gupta compatible = "arm,pl011", "arm,primecell"; 1974f6ad66aSAchin Gupta reg = <0x0c0000 0x1000>; 19808f3c2bcSAndre Przywara interrupts = <8>; 1994f6ad66aSAchin Gupta clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>; 2004f6ad66aSAchin Gupta clock-names = "uartclk", "apb_pclk"; 2014f6ad66aSAchin Gupta }; 2024f6ad66aSAchin Gupta 2032716bd33SAndre Przywara watchdog@f0000 { 2044f6ad66aSAchin Gupta compatible = "arm,sp805", "arm,primecell"; 2054f6ad66aSAchin Gupta reg = <0x0f0000 0x1000>; 20608f3c2bcSAndre Przywara interrupts = <0>; 2074f6ad66aSAchin Gupta clocks = <&v2m_refclk32khz>, <&v2m_clk24mhz>; 2082716bd33SAndre Przywara clock-names = "wdog_clk", "apb_pclk"; 2094f6ad66aSAchin Gupta }; 2104f6ad66aSAchin Gupta 2114f6ad66aSAchin Gupta v2m_timer01: timer@110000 { 2124f6ad66aSAchin Gupta compatible = "arm,sp804", "arm,primecell"; 2134f6ad66aSAchin Gupta reg = <0x110000 0x1000>; 21408f3c2bcSAndre Przywara interrupts = <2>; 2154f6ad66aSAchin Gupta clocks = <&v2m_sysctl 0>, <&v2m_sysctl 1>, <&v2m_clk24mhz>; 2164f6ad66aSAchin Gupta clock-names = "timclken1", "timclken2", "apb_pclk"; 2174f6ad66aSAchin Gupta }; 2184f6ad66aSAchin Gupta 2194f6ad66aSAchin Gupta v2m_timer23: timer@120000 { 2204f6ad66aSAchin Gupta compatible = "arm,sp804", "arm,primecell"; 2214f6ad66aSAchin Gupta reg = <0x120000 0x1000>; 22208f3c2bcSAndre Przywara interrupts = <3>; 2234f6ad66aSAchin Gupta clocks = <&v2m_sysctl 2>, <&v2m_sysctl 3>, <&v2m_clk24mhz>; 2244f6ad66aSAchin Gupta clock-names = "timclken1", "timclken2", "apb_pclk"; 2254f6ad66aSAchin Gupta }; 2264f6ad66aSAchin Gupta 2272716bd33SAndre Przywara virtio@130000 { 2282716bd33SAndre Przywara compatible = "virtio,mmio"; 2292716bd33SAndre Przywara reg = <0x130000 0x200>; 2302716bd33SAndre Przywara interrupts = <42>; 2312716bd33SAndre Przywara }; 2322716bd33SAndre Przywara 233*51b8b9c3SDebbie Martin virtio@140000 { 234*51b8b9c3SDebbie Martin compatible = "virtio,mmio"; 235*51b8b9c3SDebbie Martin reg = <0x140000 0x200>; 236*51b8b9c3SDebbie Martin interrupts = <43>; 237*51b8b9c3SDebbie Martin }; 238*51b8b9c3SDebbie Martin 239*51b8b9c3SDebbie Martin virtio@150000 { 240*51b8b9c3SDebbie Martin compatible = "virtio,mmio"; 241*51b8b9c3SDebbie Martin reg = <0x150000 0x200>; 242*51b8b9c3SDebbie Martin interrupts = <44>; 243*51b8b9c3SDebbie Martin }; 244*51b8b9c3SDebbie Martin 245*51b8b9c3SDebbie Martin virtio@200000 { 246*51b8b9c3SDebbie Martin compatible = "virtio,mmio"; 247*51b8b9c3SDebbie Martin reg = <0x200000 0x200>; 248*51b8b9c3SDebbie Martin interrupts = <46>; 249*51b8b9c3SDebbie Martin status = "disabled"; 250*51b8b9c3SDebbie Martin }; 251*51b8b9c3SDebbie Martin 2524f6ad66aSAchin Gupta rtc@170000 { 2534f6ad66aSAchin Gupta compatible = "arm,pl031", "arm,primecell"; 2544f6ad66aSAchin Gupta reg = <0x170000 0x1000>; 25508f3c2bcSAndre Przywara interrupts = <4>; 2564f6ad66aSAchin Gupta clocks = <&v2m_clk24mhz>; 2574f6ad66aSAchin Gupta clock-names = "apb_pclk"; 2584f6ad66aSAchin Gupta }; 2594f6ad66aSAchin Gupta 2604f6ad66aSAchin Gupta clcd@1f0000 { 2614f6ad66aSAchin Gupta compatible = "arm,pl111", "arm,primecell"; 2624f6ad66aSAchin Gupta reg = <0x1f0000 0x1000>; 2632716bd33SAndre Przywara interrupt-names = "combined"; 26408f3c2bcSAndre Przywara interrupts = <14>; 2654f6ad66aSAchin Gupta clocks = <&v2m_oscclk1>, <&v2m_clk24mhz>; 2664f6ad66aSAchin Gupta clock-names = "clcdclk", "apb_pclk"; 2672716bd33SAndre Przywara memory-region = <&vram>; 2684f6ad66aSAchin Gupta 2692716bd33SAndre Przywara port { 2702716bd33SAndre Przywara clcd_pads: endpoint { 2712716bd33SAndre Przywara remote-endpoint = <&panel_in>; 2722716bd33SAndre Przywara arm,pl11x,tft-r0g0b0-pads = <0 8 16>; 2734f6ad66aSAchin Gupta }; 2744f6ad66aSAchin Gupta }; 2754f6ad66aSAchin Gupta }; 2764f6ad66aSAchin Gupta }; 2774f6ad66aSAchin Gupta }; 2784f6ad66aSAchin Gupta }; 2794f6ad66aSAchin Gupta}; 280