Merge remote-tracking branches 'spi/fix/dw', 'spi/fix/lantiq' and 'spi/fix/pl022...
[sfrench/cifs-2.6.git] / arch / arm / boot / dts / kirkwood-linkstation.dtsi
1 /*
2  * Device Tree common file for kirkwood based Buffalo Linkstation
3  *
4  * Copyright (C) 2015, 2016
5  * Roger Shimizu <rogershimizu@gmail.com>
6  *
7  * This file is dual-licensed: you can use it either under the terms
8  * of the GPL or the X11 license, at your option. Note that this dual
9  * licensing only applies to this file, and not this project as a
10  * whole.
11  *
12  *  a) This file is free software; you can redistribute it and/or
13  *     modify it under the terms of the GNU General Public License as
14  *     published by the Free Software Foundation; either version 2 of the
15  *     License, or (at your option) any later version.
16  *
17  *     This file is distributed in the hope that it will be useful,
18  *     but WITHOUT ANY WARRANTY; without even the implied warranty of
19  *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
20  *     GNU General Public License for more details.
21  *
22  * Or, alternatively,
23  *
24  *  b) Permission is hereby granted, free of charge, to any person
25  *     obtaining a copy of this software and associated documentation
26  *     files (the "Software"), to deal in the Software without
27  *     restriction, including without limitation the rights to use,
28  *     copy, modify, merge, publish, distribute, sublicense, and/or
29  *     sell copies of the Software, and to permit persons to whom the
30  *     Software is furnished to do so, subject to the following
31  *     conditions:
32  *
33  *     The above copyright notice and this permission notice shall be
34  *     included in all copies or substantial portions of the Software.
35  *
36  *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
37  *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
38  *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
39  *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
40  *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
41  *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
42  *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
43  *     OTHER DEALINGS IN THE SOFTWARE.
44  */
45
46 / {
47         chosen {
48                 bootargs = "console=ttyS0,115200n8 earlyprintk";
49                 stdout-path = &uart0;
50         };
51
52         ocp@f1000000 {
53                 pinctrl: pin-controller@10000 {
54                         pmx_power_hdd0: pmx-power-hdd0 {
55                                 marvell,function = "gpio";
56                         };
57                         pmx_usb_vbus: pmx-usb-vbus {
58                                 marvell,function = "gpio";
59                         };
60                         pmx_led_alarm: pmx-led-alarm {
61                                 marvell,function = "gpio";
62                         };
63                         pmx_led_function_red: pmx-led-function-red {
64                                 marvell,function = "gpio";
65                         };
66                         pmx_led_function_blue: pmx-led-function-blue {
67                                 marvell,function = "gpio";
68                         };
69                         pmx_led_info: pmx-led-info {
70                                 marvell,function = "gpio";
71                         };
72                         pmx_led_power: pmx-led-power {
73                                 marvell,function = "gpio";
74                         };
75                         pmx_button_function: pmx-button-function {
76                                 marvell,function = "gpio";
77                         };
78                         pmx_power_switch: pmx-power-switch {
79                                 marvell,function = "gpio";
80                         };
81                         pmx_power_auto_switch: pmx-power-auto-switch {
82                                 marvell,function = "gpio";
83                         };
84                 };
85
86                 serial@12000 {
87                         status = "okay";
88                 };
89
90                 sata@80000 {
91                         status = "okay";
92                         nr-ports = <1>;
93                 };
94
95                 spi@10600 {
96                         status = "okay";
97
98                         m25p40@0 {
99                                 #address-cells = <1>;
100                                 #size-cells = <1>;
101                                 compatible = "st,m25p40", "jedec,spi-nor";
102                                 reg = <0>;
103                                 spi-max-frequency = <25000000>;
104                                 mode = <0>;
105
106                                 partition@0 {
107                                         reg = <0x0 0x60000>;
108                                         label = "uboot";
109                                         read-only;
110                                 };
111
112                                 partition@60000 {
113                                         reg = <0x60000 0x10000>;
114                                         label = "dtb";
115                                         read-only;
116                                 };
117
118                                 partition@70000 {
119                                         reg = <0x70000 0x10000>;
120                                         label = "uboot_env";
121                                 };
122                         };
123                 };
124         };
125
126         gpio_keys {
127                 compatible = "gpio-keys";
128                 #address-cells = <1>;
129                 #size-cells = <0>;
130                 pinctrl-0 = <&pmx_button_function &pmx_power_switch
131                              &pmx_power_auto_switch>;
132                 pinctrl-names = "default";
133
134                 function-button {
135                         label = "Function Button";
136                         linux,code = <KEY_OPTION>;
137                 };
138
139                 power-on-switch {
140                         label = "Power-on Switch";
141                         linux,code = <KEY_RESERVED>;
142                         linux,input-type = <5>;
143                 };
144
145                 power-auto-switch {
146                         label = "Power-auto Switch";
147                         linux,code = <KEY_ESC>;
148                         linux,input-type = <5>;
149                 };
150         };
151
152         gpio_leds {
153                 compatible = "gpio-leds";
154                 pinctrl-0 = <&pmx_led_function_red &pmx_led_alarm
155                              &pmx_led_info &pmx_led_power
156                              &pmx_led_function_blue>;
157                 pinctrl-names = "default";
158         };
159
160         restart_poweroff {
161                 compatible = "restart-poweroff";
162         };
163
164         regulators {
165                 compatible = "simple-bus";
166                 #address-cells = <1>;
167                 #size-cells = <0>;
168                 pinctrl-0 = <&pmx_power_hdd0 &pmx_usb_vbus>;
169                 pinctrl-names = "default";
170
171                 usb_power: regulator@1 {
172                         compatible = "regulator-fixed";
173                         reg = <1>;
174                         regulator-name = "USB Power";
175                         regulator-min-microvolt = <5000000>;
176                         regulator-max-microvolt = <5000000>;
177                         enable-active-high;
178                         regulator-always-on;
179                         regulator-boot-on;
180                 };
181
182                 hdd_power0: regulator@2 {
183                         compatible = "regulator-fixed";
184                         reg = <2>;
185                         regulator-name = "HDD0 Power";
186                         regulator-min-microvolt = <5000000>;
187                         regulator-max-microvolt = <5000000>;
188                         enable-active-high;
189                         regulator-always-on;
190                         regulator-boot-on;
191                 };
192         };
193 };
194
195 &pciec {
196         status = "okay";
197 };
198
199 &pcie0 {
200         status = "okay";
201 };