Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi
[sfrench/cifs-2.6.git] / arch / arm / boot / dts / mmp2-olpc-xo-1-75.dts
1 // SPDX-License-Identifier: GPL-2.0-or-later OR MIT
2 /*
3  * OLPC XO 1.75 Laptop.
4  *
5  * Copyright (C) 2018,2019 Lubomir Rintel <lkundrak@v3.sk>
6  */
7
8 /dts-v1/;
9 #include "mmp2.dtsi"
10 #include <dt-bindings/gpio/gpio.h>
11 #include <dt-bindings/input/linux-event-codes.h>
12 #include <dt-bindings/interrupt-controller/irq.h>
13
14 / {
15         model = "OLPC XO-1.75";
16         compatible = "olpc,xo-1.75", "mrvl,mmp2";
17
18         chosen {
19                 #address-cells = <1>;
20                 #size-cells = <1>;
21                 ranges;
22
23                 framebuffer@1fc00000 {
24                         compatible = "simple-framebuffer";
25                         reg = <0x1fc00000 (1200 * 900 * 2)>;
26                         width = <1200>;
27                         height = <900>;
28                         stride = <(1200 * 2)>;
29                         format = "r5g6b5";
30                         clocks = <&soc_clocks MMP2_CLK_DISP0_LCDC>,
31                                  <&soc_clocks MMP2_CLK_DISP0>;
32                 };
33         };
34
35         memory {
36                 linux,usable-memory = <0x0 0x1f800000>;
37                 available = <0xcf000 0x1ef31000 0x1000 0xbf000>;
38                 reg = <0x0 0x20000000>;
39                 device_type = "memory";
40         };
41
42         gpio-keys {
43                 compatible = "gpio-keys";
44
45                 lid {
46                         label = "Lid";
47                         gpios = <&gpio 129 GPIO_ACTIVE_LOW>;
48                         linux,input-type = <EV_SW>;
49                         linux,code = <SW_LID>;
50                         wakeup-source;
51                 };
52
53                 tablet_mode {
54                         label = "E-Book Mode";
55                         gpios = <&gpio 128 GPIO_ACTIVE_LOW>;
56                         linux,input-type = <EV_SW>;
57                         linux,code = <SW_TABLET_MODE>;
58                         wakeup-source;
59                 };
60
61                 microphone_insert {
62                         label = "Microphone Plug";
63                         gpios = <&gpio 96 GPIO_ACTIVE_HIGH>;
64                         linux,input-type = <EV_SW>;
65                         linux,code = <SW_MICROPHONE_INSERT>;
66                         debounce-interval = <100>;
67                         wakeup-source;
68                 };
69
70                 headphone_insert {
71                         label = "Headphone Plug";
72                         gpios = <&gpio 97 GPIO_ACTIVE_HIGH>;
73                         linux,input-type = <EV_SW>;
74                         linux,code = <SW_HEADPHONE_INSERT>;
75                         debounce-interval = <100>;
76                         wakeup-source;
77                 };
78         };
79
80         camera_i2c {
81                 compatible = "i2c-gpio";
82                 gpios = <&gpio 109 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>,
83                         <&gpio 108 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
84                 #address-cells = <1>;
85                 #size-cells = <0>;
86                 i2c-gpio,timeout-ms = <1000>;
87                 status = "okay";
88
89                 camera@21 {
90                         compatible = "ovti,ov7670";
91                         reg = <0x21>;
92                         reset-gpios = <&gpio 102 GPIO_ACTIVE_LOW>;
93                         powerdown-gpios = <&gpio 150 GPIO_ACTIVE_LOW>;
94                         clocks = <&camera0>;
95                         clock-names = "xclk";
96
97                         port {
98                                 ov7670_0: endpoint {
99                                         hsync-active = <1>;
100                                         vsync-active = <1>;
101                                         remote-endpoint = <&camera0_0>;
102                                 };
103                         };
104                 };
105         };
106
107         battery {
108                 compatible = "olpc,xo1.5-battery", "olpc,xo1-battery";
109         };
110
111         wlan_reg: fixedregulator0 {
112                 compatible = "regulator-fixed";
113                 regulator-name = "wlan";
114                 regulator-min-microvolt = <3300000>;
115                 regulator-max-microvolt = <3300000>;
116                 gpio = <&gpio 34 GPIO_ACTIVE_HIGH>;
117                 enable-active-high;
118         };
119
120         wlan_pwrseq: pwrseq0 {
121                 compatible = "mmc-pwrseq-sd8787";
122                 powerdown-gpios = <&gpio 57 GPIO_ACTIVE_HIGH>;
123                 reset-gpios = <&gpio 58 GPIO_ACTIVE_HIGH>;
124         };
125
126         soc {
127                 axi@d4200000 {
128                         ap-sp@d4290000 {
129                                 #address-cells = <1>;
130                                 #size-cells = <0>;
131                                 compatible = "olpc,ap-sp";
132                                 interrupts = <40>;
133                                 reg = <0xd4290000 0x1000>;
134                                 data-gpios = <&gpio 72 GPIO_ACTIVE_HIGH>;
135                                 clk-gpios = <&gpio 71 GPIO_ACTIVE_HIGH>;
136                                 status = "okay";
137                         };
138                 };
139         };
140 };
141
142 &uart3 {
143         status = "okay";
144 };
145
146 &uart4 {
147         status = "okay";
148 };
149
150 &rtc {
151         status = "okay";
152 };
153
154 &usb_phy0 {
155         status = "okay";
156 };
157
158 &usb_otg0 {
159         status = "okay";
160 };
161
162 &mmc1 {
163         clock-frequency = <50000000>;
164         no-1-8-v;
165         mrvl,clk-delay-cycles = <31>;
166         broken-cd;
167         status = "okay";
168 };
169
170 &mmc2 {
171         clock-frequency = <50000000>;
172         no-1-8-v;
173         bus-width = <4>;
174         non-removable;
175         broken-cd;
176         wakeup-source;
177         keep-power-in-suspend;
178         mmc-pwrseq = <&wlan_pwrseq>;
179         vmmc-supply = <&wlan_reg>;
180         status = "okay";
181 };
182
183 &mmc3 {
184         clock-frequency = <50000000>;
185         no-1-8-v;
186         bus-width = <8>;
187         non-removable;
188         broken-cd;
189         mrvl,clk-delay-cycles = <31>;
190         status = "okay";
191 };
192
193 &twsi1 {
194         status = "okay";
195
196         audio-codec@1a {
197                 compatible = "realtek,alc5631";
198                 reg = <0x1a>;
199                 status = "okay";
200         };
201 };
202
203 &twsi2 {
204         status = "okay";
205
206         rtc@68 {
207                 compatible = "dallas,ds1338";
208                 reg = <0x68>;
209                 status = "okay";
210         };
211 };
212
213 &twsi6 {
214         status = "okay";
215
216         accelerometer@1d {
217                 compatible = "st,lis331dlh", "st,lis3lv02d";
218                 reg = <0x1d>;
219                 status = "okay";
220         };
221 };
222
223 &ssp3 {
224         #address-cells = <0>;
225         spi-slave;
226         status = "okay";
227         ready-gpio = <&gpio 125 GPIO_ACTIVE_HIGH>;
228
229         slave {
230                 compatible = "olpc,xo1.75-ec";
231                 spi-cpha;
232                 cmd-gpio = <&gpio 155 GPIO_ACTIVE_HIGH>;
233         };
234 };
235
236 &camera0 {
237         status = "okay";
238
239         port {
240                 camera0_0: endpoint {
241                         remote-endpoint = <&ov7670_0>;
242                 };
243         };
244 };