18c2ecf20Sopenharmony_ci/* 28c2ecf20Sopenharmony_ci * ARM Juno Platform motherboard peripherals 38c2ecf20Sopenharmony_ci * 48c2ecf20Sopenharmony_ci * Copyright (c) 2013-2014 ARM Ltd 58c2ecf20Sopenharmony_ci * 68c2ecf20Sopenharmony_ci * This file is licensed under a dual GPLv2 or BSD license. 78c2ecf20Sopenharmony_ci * 88c2ecf20Sopenharmony_ci */ 98c2ecf20Sopenharmony_ci 108c2ecf20Sopenharmony_ci/ { 118c2ecf20Sopenharmony_ci mb_clk24mhz: clk24mhz { 128c2ecf20Sopenharmony_ci compatible = "fixed-clock"; 138c2ecf20Sopenharmony_ci #clock-cells = <0>; 148c2ecf20Sopenharmony_ci clock-frequency = <24000000>; 158c2ecf20Sopenharmony_ci clock-output-names = "juno_mb:clk24mhz"; 168c2ecf20Sopenharmony_ci }; 178c2ecf20Sopenharmony_ci 188c2ecf20Sopenharmony_ci mb_clk25mhz: clk25mhz { 198c2ecf20Sopenharmony_ci compatible = "fixed-clock"; 208c2ecf20Sopenharmony_ci #clock-cells = <0>; 218c2ecf20Sopenharmony_ci clock-frequency = <25000000>; 228c2ecf20Sopenharmony_ci clock-output-names = "juno_mb:clk25mhz"; 238c2ecf20Sopenharmony_ci }; 248c2ecf20Sopenharmony_ci 258c2ecf20Sopenharmony_ci v2m_refclk1mhz: refclk1mhz { 268c2ecf20Sopenharmony_ci compatible = "fixed-clock"; 278c2ecf20Sopenharmony_ci #clock-cells = <0>; 288c2ecf20Sopenharmony_ci clock-frequency = <1000000>; 298c2ecf20Sopenharmony_ci clock-output-names = "juno_mb:refclk1mhz"; 308c2ecf20Sopenharmony_ci }; 318c2ecf20Sopenharmony_ci 328c2ecf20Sopenharmony_ci v2m_refclk32khz: refclk32khz { 338c2ecf20Sopenharmony_ci compatible = "fixed-clock"; 348c2ecf20Sopenharmony_ci #clock-cells = <0>; 358c2ecf20Sopenharmony_ci clock-frequency = <32768>; 368c2ecf20Sopenharmony_ci clock-output-names = "juno_mb:refclk32khz"; 378c2ecf20Sopenharmony_ci }; 388c2ecf20Sopenharmony_ci 398c2ecf20Sopenharmony_ci mb_fixed_3v3: mcc-sb-3v3 { 408c2ecf20Sopenharmony_ci compatible = "regulator-fixed"; 418c2ecf20Sopenharmony_ci regulator-name = "MCC_SB_3V3"; 428c2ecf20Sopenharmony_ci regulator-min-microvolt = <3300000>; 438c2ecf20Sopenharmony_ci regulator-max-microvolt = <3300000>; 448c2ecf20Sopenharmony_ci regulator-always-on; 458c2ecf20Sopenharmony_ci }; 468c2ecf20Sopenharmony_ci 478c2ecf20Sopenharmony_ci gpio-keys { 488c2ecf20Sopenharmony_ci compatible = "gpio-keys"; 498c2ecf20Sopenharmony_ci 508c2ecf20Sopenharmony_ci power-button { 518c2ecf20Sopenharmony_ci debounce-interval = <50>; 528c2ecf20Sopenharmony_ci wakeup-source; 538c2ecf20Sopenharmony_ci linux,code = <116>; 548c2ecf20Sopenharmony_ci label = "POWER"; 558c2ecf20Sopenharmony_ci gpios = <&iofpga_gpio0 0 0x4>; 568c2ecf20Sopenharmony_ci }; 578c2ecf20Sopenharmony_ci home-button { 588c2ecf20Sopenharmony_ci debounce-interval = <50>; 598c2ecf20Sopenharmony_ci wakeup-source; 608c2ecf20Sopenharmony_ci linux,code = <102>; 618c2ecf20Sopenharmony_ci label = "HOME"; 628c2ecf20Sopenharmony_ci gpios = <&iofpga_gpio0 1 0x4>; 638c2ecf20Sopenharmony_ci }; 648c2ecf20Sopenharmony_ci rlock-button { 658c2ecf20Sopenharmony_ci debounce-interval = <50>; 668c2ecf20Sopenharmony_ci wakeup-source; 678c2ecf20Sopenharmony_ci linux,code = <152>; 688c2ecf20Sopenharmony_ci label = "RLOCK"; 698c2ecf20Sopenharmony_ci gpios = <&iofpga_gpio0 2 0x4>; 708c2ecf20Sopenharmony_ci }; 718c2ecf20Sopenharmony_ci vol-up-button { 728c2ecf20Sopenharmony_ci debounce-interval = <50>; 738c2ecf20Sopenharmony_ci wakeup-source; 748c2ecf20Sopenharmony_ci linux,code = <115>; 758c2ecf20Sopenharmony_ci label = "VOL+"; 768c2ecf20Sopenharmony_ci gpios = <&iofpga_gpio0 3 0x4>; 778c2ecf20Sopenharmony_ci }; 788c2ecf20Sopenharmony_ci vol-down-button { 798c2ecf20Sopenharmony_ci debounce-interval = <50>; 808c2ecf20Sopenharmony_ci wakeup-source; 818c2ecf20Sopenharmony_ci linux,code = <114>; 828c2ecf20Sopenharmony_ci label = "VOL-"; 838c2ecf20Sopenharmony_ci gpios = <&iofpga_gpio0 4 0x4>; 848c2ecf20Sopenharmony_ci }; 858c2ecf20Sopenharmony_ci nmi-button { 868c2ecf20Sopenharmony_ci debounce-interval = <50>; 878c2ecf20Sopenharmony_ci wakeup-source; 888c2ecf20Sopenharmony_ci linux,code = <99>; 898c2ecf20Sopenharmony_ci label = "NMI"; 908c2ecf20Sopenharmony_ci gpios = <&iofpga_gpio0 5 0x4>; 918c2ecf20Sopenharmony_ci }; 928c2ecf20Sopenharmony_ci }; 938c2ecf20Sopenharmony_ci 948c2ecf20Sopenharmony_ci bus@8000000 { 958c2ecf20Sopenharmony_ci motherboard-bus { 968c2ecf20Sopenharmony_ci compatible = "arm,vexpress,v2p-p1", "simple-bus"; 978c2ecf20Sopenharmony_ci #address-cells = <2>; /* SMB chipselect number and offset */ 988c2ecf20Sopenharmony_ci #size-cells = <1>; 998c2ecf20Sopenharmony_ci #interrupt-cells = <1>; 1008c2ecf20Sopenharmony_ci ranges; 1018c2ecf20Sopenharmony_ci model = "V2M-Juno"; 1028c2ecf20Sopenharmony_ci arm,hbi = <0x252>; 1038c2ecf20Sopenharmony_ci arm,vexpress,site = <0>; 1048c2ecf20Sopenharmony_ci arm,v2m-memory-map = "rs1"; 1058c2ecf20Sopenharmony_ci 1068c2ecf20Sopenharmony_ci flash@0 { 1078c2ecf20Sopenharmony_ci /* 2 * 32MiB NOR Flash memory mounted on CS0 */ 1088c2ecf20Sopenharmony_ci compatible = "arm,vexpress-flash", "cfi-flash"; 1098c2ecf20Sopenharmony_ci reg = <0 0x00000000 0x04000000>; 1108c2ecf20Sopenharmony_ci bank-width = <4>; 1118c2ecf20Sopenharmony_ci /* 1128c2ecf20Sopenharmony_ci * Unfortunately, accessing the flash disturbs 1138c2ecf20Sopenharmony_ci * the CPU idle states (suspend) and CPU 1148c2ecf20Sopenharmony_ci * hotplug of the platform. For this reason, 1158c2ecf20Sopenharmony_ci * flash hardware access is disabled by default. 1168c2ecf20Sopenharmony_ci */ 1178c2ecf20Sopenharmony_ci status = "disabled"; 1188c2ecf20Sopenharmony_ci partitions { 1198c2ecf20Sopenharmony_ci compatible = "arm,arm-firmware-suite"; 1208c2ecf20Sopenharmony_ci }; 1218c2ecf20Sopenharmony_ci }; 1228c2ecf20Sopenharmony_ci 1238c2ecf20Sopenharmony_ci ethernet@200000000 { 1248c2ecf20Sopenharmony_ci compatible = "smsc,lan9118", "smsc,lan9115"; 1258c2ecf20Sopenharmony_ci reg = <2 0x00000000 0x10000>; 1268c2ecf20Sopenharmony_ci interrupts = <3>; 1278c2ecf20Sopenharmony_ci phy-mode = "mii"; 1288c2ecf20Sopenharmony_ci reg-io-width = <4>; 1298c2ecf20Sopenharmony_ci smsc,irq-active-high; 1308c2ecf20Sopenharmony_ci smsc,irq-push-pull; 1318c2ecf20Sopenharmony_ci clocks = <&mb_clk25mhz>; 1328c2ecf20Sopenharmony_ci vdd33a-supply = <&mb_fixed_3v3>; 1338c2ecf20Sopenharmony_ci vddvario-supply = <&mb_fixed_3v3>; 1348c2ecf20Sopenharmony_ci }; 1358c2ecf20Sopenharmony_ci 1368c2ecf20Sopenharmony_ci iofpga-bus@300000000 { 1378c2ecf20Sopenharmony_ci compatible = "simple-bus"; 1388c2ecf20Sopenharmony_ci #address-cells = <1>; 1398c2ecf20Sopenharmony_ci #size-cells = <1>; 1408c2ecf20Sopenharmony_ci ranges = <0 3 0 0x200000>; 1418c2ecf20Sopenharmony_ci 1428c2ecf20Sopenharmony_ci v2m_sysctl: sysctl@20000 { 1438c2ecf20Sopenharmony_ci compatible = "arm,sp810", "arm,primecell"; 1448c2ecf20Sopenharmony_ci reg = <0x020000 0x1000>; 1458c2ecf20Sopenharmony_ci clocks = <&v2m_refclk32khz>, <&v2m_refclk1mhz>, <&mb_clk24mhz>; 1468c2ecf20Sopenharmony_ci clock-names = "refclk", "timclk", "apb_pclk"; 1478c2ecf20Sopenharmony_ci #clock-cells = <1>; 1488c2ecf20Sopenharmony_ci clock-output-names = "timerclken0", "timerclken1", "timerclken2", "timerclken3"; 1498c2ecf20Sopenharmony_ci assigned-clocks = <&v2m_sysctl 0>, <&v2m_sysctl 1>, <&v2m_sysctl 3>, <&v2m_sysctl 3>; 1508c2ecf20Sopenharmony_ci assigned-clock-parents = <&v2m_refclk1mhz>, <&v2m_refclk1mhz>, <&v2m_refclk1mhz>, <&v2m_refclk1mhz>; 1518c2ecf20Sopenharmony_ci }; 1528c2ecf20Sopenharmony_ci 1538c2ecf20Sopenharmony_ci apbregs@10000 { 1548c2ecf20Sopenharmony_ci compatible = "syscon", "simple-mfd"; 1558c2ecf20Sopenharmony_ci reg = <0x010000 0x1000>; 1568c2ecf20Sopenharmony_ci 1578c2ecf20Sopenharmony_ci led0 { 1588c2ecf20Sopenharmony_ci compatible = "register-bit-led"; 1598c2ecf20Sopenharmony_ci offset = <0x08>; 1608c2ecf20Sopenharmony_ci mask = <0x01>; 1618c2ecf20Sopenharmony_ci label = "vexpress:0"; 1628c2ecf20Sopenharmony_ci linux,default-trigger = "heartbeat"; 1638c2ecf20Sopenharmony_ci default-state = "on"; 1648c2ecf20Sopenharmony_ci }; 1658c2ecf20Sopenharmony_ci led1 { 1668c2ecf20Sopenharmony_ci compatible = "register-bit-led"; 1678c2ecf20Sopenharmony_ci offset = <0x08>; 1688c2ecf20Sopenharmony_ci mask = <0x02>; 1698c2ecf20Sopenharmony_ci label = "vexpress:1"; 1708c2ecf20Sopenharmony_ci linux,default-trigger = "mmc0"; 1718c2ecf20Sopenharmony_ci default-state = "off"; 1728c2ecf20Sopenharmony_ci }; 1738c2ecf20Sopenharmony_ci led2 { 1748c2ecf20Sopenharmony_ci compatible = "register-bit-led"; 1758c2ecf20Sopenharmony_ci offset = <0x08>; 1768c2ecf20Sopenharmony_ci mask = <0x04>; 1778c2ecf20Sopenharmony_ci label = "vexpress:2"; 1788c2ecf20Sopenharmony_ci linux,default-trigger = "cpu0"; 1798c2ecf20Sopenharmony_ci default-state = "off"; 1808c2ecf20Sopenharmony_ci }; 1818c2ecf20Sopenharmony_ci led3 { 1828c2ecf20Sopenharmony_ci compatible = "register-bit-led"; 1838c2ecf20Sopenharmony_ci offset = <0x08>; 1848c2ecf20Sopenharmony_ci mask = <0x08>; 1858c2ecf20Sopenharmony_ci label = "vexpress:3"; 1868c2ecf20Sopenharmony_ci linux,default-trigger = "cpu1"; 1878c2ecf20Sopenharmony_ci default-state = "off"; 1888c2ecf20Sopenharmony_ci }; 1898c2ecf20Sopenharmony_ci led4 { 1908c2ecf20Sopenharmony_ci compatible = "register-bit-led"; 1918c2ecf20Sopenharmony_ci offset = <0x08>; 1928c2ecf20Sopenharmony_ci mask = <0x10>; 1938c2ecf20Sopenharmony_ci label = "vexpress:4"; 1948c2ecf20Sopenharmony_ci linux,default-trigger = "cpu2"; 1958c2ecf20Sopenharmony_ci default-state = "off"; 1968c2ecf20Sopenharmony_ci }; 1978c2ecf20Sopenharmony_ci led5 { 1988c2ecf20Sopenharmony_ci compatible = "register-bit-led"; 1998c2ecf20Sopenharmony_ci offset = <0x08>; 2008c2ecf20Sopenharmony_ci mask = <0x20>; 2018c2ecf20Sopenharmony_ci label = "vexpress:5"; 2028c2ecf20Sopenharmony_ci linux,default-trigger = "cpu3"; 2038c2ecf20Sopenharmony_ci default-state = "off"; 2048c2ecf20Sopenharmony_ci }; 2058c2ecf20Sopenharmony_ci led6 { 2068c2ecf20Sopenharmony_ci compatible = "register-bit-led"; 2078c2ecf20Sopenharmony_ci offset = <0x08>; 2088c2ecf20Sopenharmony_ci mask = <0x40>; 2098c2ecf20Sopenharmony_ci label = "vexpress:6"; 2108c2ecf20Sopenharmony_ci default-state = "off"; 2118c2ecf20Sopenharmony_ci }; 2128c2ecf20Sopenharmony_ci led7 { 2138c2ecf20Sopenharmony_ci compatible = "register-bit-led"; 2148c2ecf20Sopenharmony_ci offset = <0x08>; 2158c2ecf20Sopenharmony_ci mask = <0x80>; 2168c2ecf20Sopenharmony_ci label = "vexpress:7"; 2178c2ecf20Sopenharmony_ci default-state = "off"; 2188c2ecf20Sopenharmony_ci }; 2198c2ecf20Sopenharmony_ci }; 2208c2ecf20Sopenharmony_ci 2218c2ecf20Sopenharmony_ci mmci@50000 { 2228c2ecf20Sopenharmony_ci compatible = "arm,pl180", "arm,primecell"; 2238c2ecf20Sopenharmony_ci reg = <0x050000 0x1000>; 2248c2ecf20Sopenharmony_ci interrupts = <5>; 2258c2ecf20Sopenharmony_ci /* cd-gpios = <&v2m_mmc_gpios 0 0>; 2268c2ecf20Sopenharmony_ci wp-gpios = <&v2m_mmc_gpios 1 0>; */ 2278c2ecf20Sopenharmony_ci max-frequency = <12000000>; 2288c2ecf20Sopenharmony_ci vmmc-supply = <&mb_fixed_3v3>; 2298c2ecf20Sopenharmony_ci clocks = <&mb_clk24mhz>, <&soc_smc50mhz>; 2308c2ecf20Sopenharmony_ci clock-names = "mclk", "apb_pclk"; 2318c2ecf20Sopenharmony_ci }; 2328c2ecf20Sopenharmony_ci 2338c2ecf20Sopenharmony_ci kmi@60000 { 2348c2ecf20Sopenharmony_ci compatible = "arm,pl050", "arm,primecell"; 2358c2ecf20Sopenharmony_ci reg = <0x060000 0x1000>; 2368c2ecf20Sopenharmony_ci interrupts = <8>; 2378c2ecf20Sopenharmony_ci clocks = <&mb_clk24mhz>, <&soc_smc50mhz>; 2388c2ecf20Sopenharmony_ci clock-names = "KMIREFCLK", "apb_pclk"; 2398c2ecf20Sopenharmony_ci }; 2408c2ecf20Sopenharmony_ci 2418c2ecf20Sopenharmony_ci kmi@70000 { 2428c2ecf20Sopenharmony_ci compatible = "arm,pl050", "arm,primecell"; 2438c2ecf20Sopenharmony_ci reg = <0x070000 0x1000>; 2448c2ecf20Sopenharmony_ci interrupts = <8>; 2458c2ecf20Sopenharmony_ci clocks = <&mb_clk24mhz>, <&soc_smc50mhz>; 2468c2ecf20Sopenharmony_ci clock-names = "KMIREFCLK", "apb_pclk"; 2478c2ecf20Sopenharmony_ci }; 2488c2ecf20Sopenharmony_ci 2498c2ecf20Sopenharmony_ci wdt@f0000 { 2508c2ecf20Sopenharmony_ci compatible = "arm,sp805", "arm,primecell"; 2518c2ecf20Sopenharmony_ci reg = <0x0f0000 0x10000>; 2528c2ecf20Sopenharmony_ci interrupts = <7>; 2538c2ecf20Sopenharmony_ci clocks = <&mb_clk24mhz>, <&soc_smc50mhz>; 2548c2ecf20Sopenharmony_ci clock-names = "wdog_clk", "apb_pclk"; 2558c2ecf20Sopenharmony_ci }; 2568c2ecf20Sopenharmony_ci 2578c2ecf20Sopenharmony_ci v2m_timer01: timer@110000 { 2588c2ecf20Sopenharmony_ci compatible = "arm,sp804", "arm,primecell"; 2598c2ecf20Sopenharmony_ci reg = <0x110000 0x10000>; 2608c2ecf20Sopenharmony_ci interrupts = <9>; 2618c2ecf20Sopenharmony_ci clocks = <&v2m_sysctl 0>, <&v2m_sysctl 1>, <&mb_clk24mhz>; 2628c2ecf20Sopenharmony_ci clock-names = "timclken1", "timclken2", "apb_pclk"; 2638c2ecf20Sopenharmony_ci }; 2648c2ecf20Sopenharmony_ci 2658c2ecf20Sopenharmony_ci v2m_timer23: timer@120000 { 2668c2ecf20Sopenharmony_ci compatible = "arm,sp804", "arm,primecell"; 2678c2ecf20Sopenharmony_ci reg = <0x120000 0x10000>; 2688c2ecf20Sopenharmony_ci interrupts = <9>; 2698c2ecf20Sopenharmony_ci clocks = <&v2m_sysctl 2>, <&v2m_sysctl 3>, <&mb_clk24mhz>; 2708c2ecf20Sopenharmony_ci clock-names = "timclken1", "timclken2", "apb_pclk"; 2718c2ecf20Sopenharmony_ci }; 2728c2ecf20Sopenharmony_ci 2738c2ecf20Sopenharmony_ci rtc@170000 { 2748c2ecf20Sopenharmony_ci compatible = "arm,pl031", "arm,primecell"; 2758c2ecf20Sopenharmony_ci reg = <0x170000 0x10000>; 2768c2ecf20Sopenharmony_ci interrupts = <0>; 2778c2ecf20Sopenharmony_ci clocks = <&soc_smc50mhz>; 2788c2ecf20Sopenharmony_ci clock-names = "apb_pclk"; 2798c2ecf20Sopenharmony_ci }; 2808c2ecf20Sopenharmony_ci 2818c2ecf20Sopenharmony_ci iofpga_gpio0: gpio@1d0000 { 2828c2ecf20Sopenharmony_ci compatible = "arm,pl061", "arm,primecell"; 2838c2ecf20Sopenharmony_ci reg = <0x1d0000 0x1000>; 2848c2ecf20Sopenharmony_ci interrupts = <6>; 2858c2ecf20Sopenharmony_ci clocks = <&soc_smc50mhz>; 2868c2ecf20Sopenharmony_ci clock-names = "apb_pclk"; 2878c2ecf20Sopenharmony_ci gpio-controller; 2888c2ecf20Sopenharmony_ci #gpio-cells = <2>; 2898c2ecf20Sopenharmony_ci interrupt-controller; 2908c2ecf20Sopenharmony_ci #interrupt-cells = <2>; 2918c2ecf20Sopenharmony_ci }; 2928c2ecf20Sopenharmony_ci }; 2938c2ecf20Sopenharmony_ci }; 2948c2ecf20Sopenharmony_ci }; 2958c2ecf20Sopenharmony_ci}; 296