171f867ecSLiviu Dudau/* 271f867ecSLiviu Dudau * ARM Juno Platform motherboard peripherals 371f867ecSLiviu Dudau * 471f867ecSLiviu Dudau * Copyright (c) 2013-2014 ARM Ltd 571f867ecSLiviu Dudau * 671f867ecSLiviu Dudau * This file is licensed under a dual GPLv2 or BSD license. 771f867ecSLiviu Dudau * 871f867ecSLiviu Dudau */ 971f867ecSLiviu Dudau 10349b0f95SSudeep Holla/ { 1171f867ecSLiviu Dudau mb_clk24mhz: clk24mhz { 1271f867ecSLiviu Dudau compatible = "fixed-clock"; 1371f867ecSLiviu Dudau #clock-cells = <0>; 1471f867ecSLiviu Dudau clock-frequency = <24000000>; 1571f867ecSLiviu Dudau clock-output-names = "juno_mb:clk24mhz"; 1671f867ecSLiviu Dudau }; 1771f867ecSLiviu Dudau 1871f867ecSLiviu Dudau mb_clk25mhz: clk25mhz { 1971f867ecSLiviu Dudau compatible = "fixed-clock"; 2071f867ecSLiviu Dudau #clock-cells = <0>; 2171f867ecSLiviu Dudau clock-frequency = <25000000>; 2271f867ecSLiviu Dudau clock-output-names = "juno_mb:clk25mhz"; 2371f867ecSLiviu Dudau }; 2471f867ecSLiviu Dudau 253bb1555cSSudeep Holla v2m_refclk1mhz: refclk1mhz { 263bb1555cSSudeep Holla compatible = "fixed-clock"; 273bb1555cSSudeep Holla #clock-cells = <0>; 283bb1555cSSudeep Holla clock-frequency = <1000000>; 293bb1555cSSudeep Holla clock-output-names = "juno_mb:refclk1mhz"; 303bb1555cSSudeep Holla }; 313bb1555cSSudeep Holla 323bb1555cSSudeep Holla v2m_refclk32khz: refclk32khz { 333bb1555cSSudeep Holla compatible = "fixed-clock"; 343bb1555cSSudeep Holla #clock-cells = <0>; 353bb1555cSSudeep Holla clock-frequency = <32768>; 363bb1555cSSudeep Holla clock-output-names = "juno_mb:refclk32khz"; 373bb1555cSSudeep Holla }; 383bb1555cSSudeep Holla 396d6acd14SSudeep Holla mb_fixed_3v3: mcc-sb-3v3 { 4071f867ecSLiviu Dudau compatible = "regulator-fixed"; 4171f867ecSLiviu Dudau regulator-name = "MCC_SB_3V3"; 4271f867ecSLiviu Dudau regulator-min-microvolt = <3300000>; 4371f867ecSLiviu Dudau regulator-max-microvolt = <3300000>; 4471f867ecSLiviu Dudau regulator-always-on; 4571f867ecSLiviu Dudau }; 4671f867ecSLiviu Dudau 47506eeeabSSudeep Holla gpio-keys { 4853bdd72cSLinus Walleij compatible = "gpio-keys"; 4953bdd72cSLinus Walleij 506d6acd14SSudeep Holla power-button { 51c213f874SSudeep Holla debounce-interval = <50>; 524db7062cSSudeep Holla wakeup-source; 5353bdd72cSLinus Walleij linux,code = <116>; 5453bdd72cSLinus Walleij label = "POWER"; 5553bdd72cSLinus Walleij gpios = <&iofpga_gpio0 0 0x4>; 5653bdd72cSLinus Walleij }; 576d6acd14SSudeep Holla home-button { 58c213f874SSudeep Holla debounce-interval = <50>; 594db7062cSSudeep Holla wakeup-source; 6053bdd72cSLinus Walleij linux,code = <102>; 6153bdd72cSLinus Walleij label = "HOME"; 6253bdd72cSLinus Walleij gpios = <&iofpga_gpio0 1 0x4>; 6353bdd72cSLinus Walleij }; 646d6acd14SSudeep Holla rlock-button { 65c213f874SSudeep Holla debounce-interval = <50>; 664db7062cSSudeep Holla wakeup-source; 6753bdd72cSLinus Walleij linux,code = <152>; 6853bdd72cSLinus Walleij label = "RLOCK"; 6953bdd72cSLinus Walleij gpios = <&iofpga_gpio0 2 0x4>; 7053bdd72cSLinus Walleij }; 716d6acd14SSudeep Holla vol-up-button { 72c213f874SSudeep Holla debounce-interval = <50>; 734db7062cSSudeep Holla wakeup-source; 7453bdd72cSLinus Walleij linux,code = <115>; 7553bdd72cSLinus Walleij label = "VOL+"; 7653bdd72cSLinus Walleij gpios = <&iofpga_gpio0 3 0x4>; 7753bdd72cSLinus Walleij }; 786d6acd14SSudeep Holla vol-down-button { 79c213f874SSudeep Holla debounce-interval = <50>; 804db7062cSSudeep Holla wakeup-source; 8153bdd72cSLinus Walleij linux,code = <114>; 8253bdd72cSLinus Walleij label = "VOL-"; 8353bdd72cSLinus Walleij gpios = <&iofpga_gpio0 4 0x4>; 8453bdd72cSLinus Walleij }; 856d6acd14SSudeep Holla nmi-button { 86c213f874SSudeep Holla debounce-interval = <50>; 874db7062cSSudeep Holla wakeup-source; 8853bdd72cSLinus Walleij linux,code = <99>; 8953bdd72cSLinus Walleij label = "NMI"; 9053bdd72cSLinus Walleij gpios = <&iofpga_gpio0 5 0x4>; 9153bdd72cSLinus Walleij }; 9253bdd72cSLinus Walleij }; 9353bdd72cSLinus Walleij 94948204a1SAndre Przywara bus@8000000 { 95078fb7aaSRob Herring compatible = "simple-bus"; 96078fb7aaSRob Herring #address-cells = <2>; 97078fb7aaSRob Herring #size-cells = <1>; 98078fb7aaSRob Herring ranges = <0 0x8000000 0 0x8000000 0x18000000>; 99078fb7aaSRob Herring 100078fb7aaSRob Herring motherboard-bus@8000000 { 101948204a1SAndre Przywara compatible = "arm,vexpress,v2p-p1", "simple-bus"; 102948204a1SAndre Przywara #address-cells = <2>; /* SMB chipselect number and offset */ 103948204a1SAndre Przywara #size-cells = <1>; 104078fb7aaSRob Herring ranges = <0 0 0 0x08000000 0x04000000>, 105078fb7aaSRob Herring <1 0 0 0x14000000 0x04000000>, 106078fb7aaSRob Herring <2 0 0 0x18000000 0x04000000>, 107078fb7aaSRob Herring <3 0 0 0x1c000000 0x04000000>, 108078fb7aaSRob Herring <4 0 0 0x0c000000 0x04000000>, 109078fb7aaSRob Herring <5 0 0 0x10000000 0x04000000>; 110948204a1SAndre Przywara arm,hbi = <0x252>; 111948204a1SAndre Przywara arm,vexpress,site = <0>; 112948204a1SAndre Przywara 113bb5cce12SAndre Przywara flash@0 { 1145078f77eSLinus Walleij /* 2 * 32MiB NOR Flash memory mounted on CS0 */ 1155078f77eSLinus Walleij compatible = "arm,vexpress-flash", "cfi-flash"; 1165078f77eSLinus Walleij reg = <0 0x00000000 0x04000000>; 1175078f77eSLinus Walleij bank-width = <4>; 118980bbff0SLinus Walleij /* 119980bbff0SLinus Walleij * Unfortunately, accessing the flash disturbs 120980bbff0SLinus Walleij * the CPU idle states (suspend) and CPU 121980bbff0SLinus Walleij * hotplug of the platform. For this reason, 122980bbff0SLinus Walleij * flash hardware access is disabled by default. 123980bbff0SLinus Walleij */ 124980bbff0SLinus Walleij status = "disabled"; 1257f8e78caSLinus Walleij partitions { 1267f8e78caSLinus Walleij compatible = "arm,arm-firmware-suite"; 1277f8e78caSLinus Walleij }; 1285078f77eSLinus Walleij }; 1295078f77eSLinus Walleij 130bb5cce12SAndre Przywara ethernet@200000000 { 13171f867ecSLiviu Dudau compatible = "smsc,lan9118", "smsc,lan9115"; 13271f867ecSLiviu Dudau reg = <2 0x00000000 0x10000>; 13371f867ecSLiviu Dudau interrupts = <3>; 13471f867ecSLiviu Dudau phy-mode = "mii"; 13571f867ecSLiviu Dudau reg-io-width = <4>; 13671f867ecSLiviu Dudau smsc,irq-active-high; 13771f867ecSLiviu Dudau smsc,irq-push-pull; 13871f867ecSLiviu Dudau clocks = <&mb_clk25mhz>; 13971f867ecSLiviu Dudau vdd33a-supply = <&mb_fixed_3v3>; 14071f867ecSLiviu Dudau vddvario-supply = <&mb_fixed_3v3>; 14171f867ecSLiviu Dudau }; 14271f867ecSLiviu Dudau 1439d0a36ddSAndre Przywara iofpga-bus@300000000 { 1442ef7d5f3SMasahiro Yamada compatible = "simple-bus"; 14571f867ecSLiviu Dudau #address-cells = <1>; 14671f867ecSLiviu Dudau #size-cells = <1>; 14771f867ecSLiviu Dudau ranges = <0 3 0 0x200000>; 14871f867ecSLiviu Dudau 14972cc1993SSudeep Holla v2m_sysctl: sysctl@20000 { 1503bb1555cSSudeep Holla compatible = "arm,sp810", "arm,primecell"; 1513bb1555cSSudeep Holla reg = <0x020000 0x1000>; 1523bb1555cSSudeep Holla clocks = <&v2m_refclk32khz>, <&v2m_refclk1mhz>, <&mb_clk24mhz>; 1533bb1555cSSudeep Holla clock-names = "refclk", "timclk", "apb_pclk"; 1543bb1555cSSudeep Holla #clock-cells = <1>; 1553bb1555cSSudeep Holla clock-output-names = "timerclken0", "timerclken1", "timerclken2", "timerclken3"; 156341a670aSStephen Boyd assigned-clocks = <&v2m_sysctl 0>, <&v2m_sysctl 1>, <&v2m_sysctl 3>, <&v2m_sysctl 3>; 157341a670aSStephen Boyd assigned-clock-parents = <&v2m_refclk1mhz>, <&v2m_refclk1mhz>, <&v2m_refclk1mhz>, <&v2m_refclk1mhz>; 1583bb1555cSSudeep Holla }; 1593bb1555cSSudeep Holla 16072cc1993SSudeep Holla apbregs@10000 { 161bfb47629SLinus Walleij compatible = "syscon", "simple-mfd"; 162bfb47629SLinus Walleij reg = <0x010000 0x1000>; 163*25b892b5SRob Herring ranges = <0x0 0x10000 0x1000>; 164*25b892b5SRob Herring #address-cells = <1>; 165*25b892b5SRob Herring #size-cells = <1>; 166bfb47629SLinus Walleij 167*25b892b5SRob Herring led@8,0 { 168bfb47629SLinus Walleij compatible = "register-bit-led"; 169*25b892b5SRob Herring reg = <0x08 0x04>; 170bfb47629SLinus Walleij offset = <0x08>; 171bfb47629SLinus Walleij mask = <0x01>; 172bfb47629SLinus Walleij label = "vexpress:0"; 173bfb47629SLinus Walleij linux,default-trigger = "heartbeat"; 174bfb47629SLinus Walleij default-state = "on"; 175bfb47629SLinus Walleij }; 176*25b892b5SRob Herring led@8,1 { 177bfb47629SLinus Walleij compatible = "register-bit-led"; 178*25b892b5SRob Herring reg = <0x08 0x04>; 179bfb47629SLinus Walleij offset = <0x08>; 180bfb47629SLinus Walleij mask = <0x02>; 181bfb47629SLinus Walleij label = "vexpress:1"; 182bfb47629SLinus Walleij linux,default-trigger = "mmc0"; 183bfb47629SLinus Walleij default-state = "off"; 184bfb47629SLinus Walleij }; 185*25b892b5SRob Herring led@8,2 { 186bfb47629SLinus Walleij compatible = "register-bit-led"; 187*25b892b5SRob Herring reg = <0x08 0x04>; 188bfb47629SLinus Walleij offset = <0x08>; 189bfb47629SLinus Walleij mask = <0x04>; 190bfb47629SLinus Walleij label = "vexpress:2"; 191bfb47629SLinus Walleij linux,default-trigger = "cpu0"; 192bfb47629SLinus Walleij default-state = "off"; 193bfb47629SLinus Walleij }; 194*25b892b5SRob Herring led@8,3 { 195bfb47629SLinus Walleij compatible = "register-bit-led"; 196*25b892b5SRob Herring reg = <0x08 0x04>; 197bfb47629SLinus Walleij offset = <0x08>; 198bfb47629SLinus Walleij mask = <0x08>; 199bfb47629SLinus Walleij label = "vexpress:3"; 200bfb47629SLinus Walleij linux,default-trigger = "cpu1"; 201bfb47629SLinus Walleij default-state = "off"; 202bfb47629SLinus Walleij }; 203*25b892b5SRob Herring led@8,4 { 204bfb47629SLinus Walleij compatible = "register-bit-led"; 205*25b892b5SRob Herring reg = <0x08 0x04>; 206bfb47629SLinus Walleij offset = <0x08>; 207bfb47629SLinus Walleij mask = <0x10>; 208bfb47629SLinus Walleij label = "vexpress:4"; 209bfb47629SLinus Walleij linux,default-trigger = "cpu2"; 210bfb47629SLinus Walleij default-state = "off"; 211bfb47629SLinus Walleij }; 212*25b892b5SRob Herring led@8,5 { 213bfb47629SLinus Walleij compatible = "register-bit-led"; 214*25b892b5SRob Herring reg = <0x08 0x04>; 215bfb47629SLinus Walleij offset = <0x08>; 216bfb47629SLinus Walleij mask = <0x20>; 217bfb47629SLinus Walleij label = "vexpress:5"; 218bfb47629SLinus Walleij linux,default-trigger = "cpu3"; 219bfb47629SLinus Walleij default-state = "off"; 220bfb47629SLinus Walleij }; 221*25b892b5SRob Herring led@8,6 { 222bfb47629SLinus Walleij compatible = "register-bit-led"; 223*25b892b5SRob Herring reg = <0x08 0x04>; 224bfb47629SLinus Walleij offset = <0x08>; 225bfb47629SLinus Walleij mask = <0x40>; 226bfb47629SLinus Walleij label = "vexpress:6"; 227bfb47629SLinus Walleij default-state = "off"; 228bfb47629SLinus Walleij }; 229*25b892b5SRob Herring led@8,7 { 230bfb47629SLinus Walleij compatible = "register-bit-led"; 231*25b892b5SRob Herring reg = <0x08 0x04>; 232bfb47629SLinus Walleij offset = <0x08>; 233bfb47629SLinus Walleij mask = <0x80>; 234bfb47629SLinus Walleij label = "vexpress:7"; 235bfb47629SLinus Walleij default-state = "off"; 236bfb47629SLinus Walleij }; 237bfb47629SLinus Walleij }; 238bfb47629SLinus Walleij 239b43446b4SKrzysztof Kozlowski mmc@50000 { 24071f867ecSLiviu Dudau compatible = "arm,pl180", "arm,primecell"; 24171f867ecSLiviu Dudau reg = <0x050000 0x1000>; 24271f867ecSLiviu Dudau interrupts = <5>; 24371f867ecSLiviu Dudau /* cd-gpios = <&v2m_mmc_gpios 0 0>; 24471f867ecSLiviu Dudau wp-gpios = <&v2m_mmc_gpios 1 0>; */ 24571f867ecSLiviu Dudau max-frequency = <12000000>; 24671f867ecSLiviu Dudau vmmc-supply = <&mb_fixed_3v3>; 24771f867ecSLiviu Dudau clocks = <&mb_clk24mhz>, <&soc_smc50mhz>; 24871f867ecSLiviu Dudau clock-names = "mclk", "apb_pclk"; 24971f867ecSLiviu Dudau }; 25071f867ecSLiviu Dudau 25172cc1993SSudeep Holla kmi@60000 { 25271f867ecSLiviu Dudau compatible = "arm,pl050", "arm,primecell"; 25371f867ecSLiviu Dudau reg = <0x060000 0x1000>; 25471f867ecSLiviu Dudau interrupts = <8>; 25571f867ecSLiviu Dudau clocks = <&mb_clk24mhz>, <&soc_smc50mhz>; 25671f867ecSLiviu Dudau clock-names = "KMIREFCLK", "apb_pclk"; 25771f867ecSLiviu Dudau }; 25871f867ecSLiviu Dudau 25972cc1993SSudeep Holla kmi@70000 { 26071f867ecSLiviu Dudau compatible = "arm,pl050", "arm,primecell"; 26171f867ecSLiviu Dudau reg = <0x070000 0x1000>; 26271f867ecSLiviu Dudau interrupts = <8>; 26371f867ecSLiviu Dudau clocks = <&mb_clk24mhz>, <&soc_smc50mhz>; 26471f867ecSLiviu Dudau clock-names = "KMIREFCLK", "apb_pclk"; 26571f867ecSLiviu Dudau }; 26671f867ecSLiviu Dudau 267b43446b4SKrzysztof Kozlowski watchdog@f0000 { 26871f867ecSLiviu Dudau compatible = "arm,sp805", "arm,primecell"; 26971f867ecSLiviu Dudau reg = <0x0f0000 0x10000>; 27071f867ecSLiviu Dudau interrupts = <7>; 27171f867ecSLiviu Dudau clocks = <&mb_clk24mhz>, <&soc_smc50mhz>; 272b83ded8aSAndre Przywara clock-names = "wdog_clk", "apb_pclk"; 27371f867ecSLiviu Dudau }; 27471f867ecSLiviu Dudau 27571f867ecSLiviu Dudau v2m_timer01: timer@110000 { 27671f867ecSLiviu Dudau compatible = "arm,sp804", "arm,primecell"; 27771f867ecSLiviu Dudau reg = <0x110000 0x10000>; 27871f867ecSLiviu Dudau interrupts = <9>; 2793bb1555cSSudeep Holla clocks = <&v2m_sysctl 0>, <&v2m_sysctl 1>, <&mb_clk24mhz>; 2803bb1555cSSudeep Holla clock-names = "timclken1", "timclken2", "apb_pclk"; 28171f867ecSLiviu Dudau }; 28271f867ecSLiviu Dudau 28371f867ecSLiviu Dudau v2m_timer23: timer@120000 { 28471f867ecSLiviu Dudau compatible = "arm,sp804", "arm,primecell"; 28571f867ecSLiviu Dudau reg = <0x120000 0x10000>; 28671f867ecSLiviu Dudau interrupts = <9>; 2873bb1555cSSudeep Holla clocks = <&v2m_sysctl 2>, <&v2m_sysctl 3>, <&mb_clk24mhz>; 2883bb1555cSSudeep Holla clock-names = "timclken1", "timclken2", "apb_pclk"; 28971f867ecSLiviu Dudau }; 29071f867ecSLiviu Dudau 29171f867ecSLiviu Dudau rtc@170000 { 29271f867ecSLiviu Dudau compatible = "arm,pl031", "arm,primecell"; 29371f867ecSLiviu Dudau reg = <0x170000 0x10000>; 29471f867ecSLiviu Dudau interrupts = <0>; 29571f867ecSLiviu Dudau clocks = <&soc_smc50mhz>; 29671f867ecSLiviu Dudau clock-names = "apb_pclk"; 29771f867ecSLiviu Dudau }; 29853bdd72cSLinus Walleij 29953bdd72cSLinus Walleij iofpga_gpio0: gpio@1d0000 { 30053bdd72cSLinus Walleij compatible = "arm,pl061", "arm,primecell"; 30153bdd72cSLinus Walleij reg = <0x1d0000 0x1000>; 30253bdd72cSLinus Walleij interrupts = <6>; 30353bdd72cSLinus Walleij clocks = <&soc_smc50mhz>; 30453bdd72cSLinus Walleij clock-names = "apb_pclk"; 30553bdd72cSLinus Walleij gpio-controller; 30653bdd72cSLinus Walleij #gpio-cells = <2>; 30753bdd72cSLinus Walleij interrupt-controller; 30853bdd72cSLinus Walleij #interrupt-cells = <2>; 30953bdd72cSLinus Walleij }; 31071f867ecSLiviu Dudau }; 31171f867ecSLiviu Dudau }; 312349b0f95SSudeep Holla }; 313349b0f95SSudeep Holla}; 314