Back to home page

OSCL-LXR

 
 

    


0001 /*
0002  * ARM Juno Platform motherboard peripherals
0003  *
0004  * Copyright (c) 2013-2014 ARM Ltd
0005  *
0006  * This file is licensed under a dual GPLv2 or BSD license.
0007  *
0008  */
0009 
0010 / {
0011         mb_clk24mhz: clk24mhz {
0012                 compatible = "fixed-clock";
0013                 #clock-cells = <0>;
0014                 clock-frequency = <24000000>;
0015                 clock-output-names = "juno_mb:clk24mhz";
0016         };
0017 
0018         mb_clk25mhz: clk25mhz {
0019                 compatible = "fixed-clock";
0020                 #clock-cells = <0>;
0021                 clock-frequency = <25000000>;
0022                 clock-output-names = "juno_mb:clk25mhz";
0023         };
0024 
0025         v2m_refclk1mhz: refclk1mhz {
0026                 compatible = "fixed-clock";
0027                 #clock-cells = <0>;
0028                 clock-frequency = <1000000>;
0029                 clock-output-names = "juno_mb:refclk1mhz";
0030         };
0031 
0032         v2m_refclk32khz: refclk32khz {
0033                 compatible = "fixed-clock";
0034                 #clock-cells = <0>;
0035                 clock-frequency = <32768>;
0036                 clock-output-names = "juno_mb:refclk32khz";
0037         };
0038 
0039         mb_fixed_3v3: mcc-sb-3v3 {
0040                 compatible = "regulator-fixed";
0041                 regulator-name = "MCC_SB_3V3";
0042                 regulator-min-microvolt = <3300000>;
0043                 regulator-max-microvolt = <3300000>;
0044                 regulator-always-on;
0045         };
0046 
0047         gpio-keys {
0048                 compatible = "gpio-keys";
0049 
0050                 power-button {
0051                         debounce-interval = <50>;
0052                         wakeup-source;
0053                         linux,code = <116>;
0054                         label = "POWER";
0055                         gpios = <&iofpga_gpio0 0 0x4>;
0056                 };
0057                 home-button {
0058                         debounce-interval = <50>;
0059                         wakeup-source;
0060                         linux,code = <102>;
0061                         label = "HOME";
0062                         gpios = <&iofpga_gpio0 1 0x4>;
0063                 };
0064                 rlock-button {
0065                         debounce-interval = <50>;
0066                         wakeup-source;
0067                         linux,code = <152>;
0068                         label = "RLOCK";
0069                         gpios = <&iofpga_gpio0 2 0x4>;
0070                 };
0071                 vol-up-button {
0072                         debounce-interval = <50>;
0073                         wakeup-source;
0074                         linux,code = <115>;
0075                         label = "VOL+";
0076                         gpios = <&iofpga_gpio0 3 0x4>;
0077                 };
0078                 vol-down-button {
0079                         debounce-interval = <50>;
0080                         wakeup-source;
0081                         linux,code = <114>;
0082                         label = "VOL-";
0083                         gpios = <&iofpga_gpio0 4 0x4>;
0084                 };
0085                 nmi-button {
0086                         debounce-interval = <50>;
0087                         wakeup-source;
0088                         linux,code = <99>;
0089                         label = "NMI";
0090                         gpios = <&iofpga_gpio0 5 0x4>;
0091                 };
0092         };
0093 
0094         bus@8000000 {
0095                 compatible = "simple-bus";
0096                 #address-cells = <2>;
0097                 #size-cells = <1>;
0098                 ranges = <0 0x8000000 0 0x8000000 0x18000000>;
0099 
0100                 motherboard-bus@8000000 {
0101                         compatible = "arm,vexpress,v2p-p1", "simple-bus";
0102                         #address-cells = <2>;  /* SMB chipselect number and offset */
0103                         #size-cells = <1>;
0104                         ranges = <0 0 0 0x08000000 0x04000000>,
0105                                  <1 0 0 0x14000000 0x04000000>,
0106                                  <2 0 0 0x18000000 0x04000000>,
0107                                  <3 0 0 0x1c000000 0x04000000>,
0108                                  <4 0 0 0x0c000000 0x04000000>,
0109                                  <5 0 0 0x10000000 0x04000000>;
0110                         arm,hbi = <0x252>;
0111                         arm,vexpress,site = <0>;
0112 
0113                         flash@0 {
0114                                 /* 2 * 32MiB NOR Flash memory mounted on CS0 */
0115                                 compatible = "arm,vexpress-flash", "cfi-flash";
0116                                 reg = <0 0x00000000 0x04000000>;
0117                                 bank-width = <4>;
0118                                 /*
0119                                  * Unfortunately, accessing the flash disturbs
0120                                  * the CPU idle states (suspend) and CPU
0121                                  * hotplug of the platform. For this reason,
0122                                  * flash hardware access is disabled by default.
0123                                  */
0124                                 status = "disabled";
0125                                 partitions {
0126                                         compatible = "arm,arm-firmware-suite";
0127                                 };
0128                         };
0129 
0130                         ethernet@200000000 {
0131                                 compatible = "smsc,lan9118", "smsc,lan9115";
0132                                 reg = <2 0x00000000 0x10000>;
0133                                 interrupts = <3>;
0134                                 phy-mode = "mii";
0135                                 reg-io-width = <4>;
0136                                 smsc,irq-active-high;
0137                                 smsc,irq-push-pull;
0138                                 clocks = <&mb_clk25mhz>;
0139                                 vdd33a-supply = <&mb_fixed_3v3>;
0140                                 vddvario-supply = <&mb_fixed_3v3>;
0141                         };
0142 
0143                         iofpga-bus@300000000 {
0144                                 compatible = "simple-bus";
0145                                 #address-cells = <1>;
0146                                 #size-cells = <1>;
0147                                 ranges = <0 3 0 0x200000>;
0148 
0149                                 v2m_sysctl: sysctl@20000 {
0150                                         compatible = "arm,sp810", "arm,primecell";
0151                                         reg = <0x020000 0x1000>;
0152                                         clocks = <&v2m_refclk32khz>, <&v2m_refclk1mhz>, <&mb_clk24mhz>;
0153                                         clock-names = "refclk", "timclk", "apb_pclk";
0154                                         #clock-cells = <1>;
0155                                         clock-output-names = "timerclken0", "timerclken1", "timerclken2", "timerclken3";
0156                                         assigned-clocks = <&v2m_sysctl 0>, <&v2m_sysctl 1>, <&v2m_sysctl 3>, <&v2m_sysctl 3>;
0157                                         assigned-clock-parents = <&v2m_refclk1mhz>, <&v2m_refclk1mhz>, <&v2m_refclk1mhz>, <&v2m_refclk1mhz>;
0158                                 };
0159 
0160                                 apbregs@10000 {
0161                                         compatible = "syscon", "simple-mfd";
0162                                         reg = <0x010000 0x1000>;
0163                                         ranges = <0x0 0x10000 0x1000>;
0164                                         #address-cells = <1>;
0165                                         #size-cells = <1>;
0166 
0167                                         led@8,0 {
0168                                                 compatible = "register-bit-led";
0169                                                 reg = <0x08 0x04>;
0170                                                 offset = <0x08>;
0171                                                 mask = <0x01>;
0172                                                 label = "vexpress:0";
0173                                                 linux,default-trigger = "heartbeat";
0174                                                 default-state = "on";
0175                                         };
0176                                         led@8,1 {
0177                                                 compatible = "register-bit-led";
0178                                                 reg = <0x08 0x04>;
0179                                                 offset = <0x08>;
0180                                                 mask = <0x02>;
0181                                                 label = "vexpress:1";
0182                                                 linux,default-trigger = "mmc0";
0183                                                 default-state = "off";
0184                                         };
0185                                         led@8,2 {
0186                                                 compatible = "register-bit-led";
0187                                                 reg = <0x08 0x04>;
0188                                                 offset = <0x08>;
0189                                                 mask = <0x04>;
0190                                                 label = "vexpress:2";
0191                                                 linux,default-trigger = "cpu0";
0192                                                 default-state = "off";
0193                                         };
0194                                         led@8,3 {
0195                                                 compatible = "register-bit-led";
0196                                                 reg = <0x08 0x04>;
0197                                                 offset = <0x08>;
0198                                                 mask = <0x08>;
0199                                                 label = "vexpress:3";
0200                                                 linux,default-trigger = "cpu1";
0201                                                 default-state = "off";
0202                                         };
0203                                         led@8,4 {
0204                                                 compatible = "register-bit-led";
0205                                                 reg = <0x08 0x04>;
0206                                                 offset = <0x08>;
0207                                                 mask = <0x10>;
0208                                                 label = "vexpress:4";
0209                                                 linux,default-trigger = "cpu2";
0210                                                 default-state = "off";
0211                                         };
0212                                         led@8,5 {
0213                                                 compatible = "register-bit-led";
0214                                                 reg = <0x08 0x04>;
0215                                                 offset = <0x08>;
0216                                                 mask = <0x20>;
0217                                                 label = "vexpress:5";
0218                                                 linux,default-trigger = "cpu3";
0219                                                 default-state = "off";
0220                                         };
0221                                         led@8,6 {
0222                                                 compatible = "register-bit-led";
0223                                                 reg = <0x08 0x04>;
0224                                                 offset = <0x08>;
0225                                                 mask = <0x40>;
0226                                                 label = "vexpress:6";
0227                                                 default-state = "off";
0228                                         };
0229                                         led@8,7 {
0230                                                 compatible = "register-bit-led";
0231                                                 reg = <0x08 0x04>;
0232                                                 offset = <0x08>;
0233                                                 mask = <0x80>;
0234                                                 label = "vexpress:7";
0235                                                 default-state = "off";
0236                                         };
0237                                 };
0238 
0239                                 mmc@50000 {
0240                                         compatible = "arm,pl180", "arm,primecell";
0241                                         reg = <0x050000 0x1000>;
0242                                         interrupts = <5>;
0243                                         /* cd-gpios = <&v2m_mmc_gpios 0 0>;
0244                                         wp-gpios = <&v2m_mmc_gpios 1 0>; */
0245                                         max-frequency = <12000000>;
0246                                         vmmc-supply = <&mb_fixed_3v3>;
0247                                         clocks = <&mb_clk24mhz>, <&soc_smc50mhz>;
0248                                         clock-names = "mclk", "apb_pclk";
0249                                 };
0250 
0251                                 kmi@60000 {
0252                                         compatible = "arm,pl050", "arm,primecell";
0253                                         reg = <0x060000 0x1000>;
0254                                         interrupts = <8>;
0255                                         clocks = <&mb_clk24mhz>, <&soc_smc50mhz>;
0256                                         clock-names = "KMIREFCLK", "apb_pclk";
0257                                 };
0258 
0259                                 kmi@70000 {
0260                                         compatible = "arm,pl050", "arm,primecell";
0261                                         reg = <0x070000 0x1000>;
0262                                         interrupts = <8>;
0263                                         clocks = <&mb_clk24mhz>, <&soc_smc50mhz>;
0264                                         clock-names = "KMIREFCLK", "apb_pclk";
0265                                 };
0266 
0267                                 watchdog@f0000 {
0268                                         compatible = "arm,sp805", "arm,primecell";
0269                                         reg = <0x0f0000 0x10000>;
0270                                         interrupts = <7>;
0271                                         clocks = <&mb_clk24mhz>, <&soc_smc50mhz>;
0272                                         clock-names = "wdog_clk", "apb_pclk";
0273                                 };
0274 
0275                                 v2m_timer01: timer@110000 {
0276                                         compatible = "arm,sp804", "arm,primecell";
0277                                         reg = <0x110000 0x10000>;
0278                                         interrupts = <9>;
0279                                         clocks = <&v2m_sysctl 0>, <&v2m_sysctl 1>, <&mb_clk24mhz>;
0280                                         clock-names = "timclken1", "timclken2", "apb_pclk";
0281                                 };
0282 
0283                                 v2m_timer23: timer@120000 {
0284                                         compatible = "arm,sp804", "arm,primecell";
0285                                         reg = <0x120000 0x10000>;
0286                                         interrupts = <9>;
0287                                         clocks = <&v2m_sysctl 2>, <&v2m_sysctl 3>, <&mb_clk24mhz>;
0288                                         clock-names = "timclken1", "timclken2", "apb_pclk";
0289                                 };
0290 
0291                                 rtc@170000 {
0292                                         compatible = "arm,pl031", "arm,primecell";
0293                                         reg = <0x170000 0x10000>;
0294                                         interrupts = <0>;
0295                                         clocks = <&soc_smc50mhz>;
0296                                         clock-names = "apb_pclk";
0297                                 };
0298 
0299                                 iofpga_gpio0: gpio@1d0000 {
0300                                         compatible = "arm,pl061", "arm,primecell";
0301                                         reg = <0x1d0000 0x1000>;
0302                                         interrupts = <6>;
0303                                         clocks = <&soc_smc50mhz>;
0304                                         clock-names = "apb_pclk";
0305                                         gpio-controller;
0306                                         #gpio-cells = <2>;
0307                                         interrupt-controller;
0308                                         #interrupt-cells = <2>;
0309                                 };
0310                         };
0311                 };
0312         };
0313 };