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}; 245