Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ARM: dts: add Netronix E60K02 board common file

The Netronix board E60K02 can be found some several Ebook-Readers,
at least the Kobo Clara HD and the Tolino Shine 3. The board
is equipped with different SoCs requiring different pinmuxes.

For now the following peripherals are included:
- LED
- Power Key
- Cover (gpio via hall sensor)
- RC5T619 PMIC (the kernel misses support for rtc and charger
subdevices).
- Backlight via lm3630a
- Wifi sdio chip detection (mmc-powerseq and stuff)

It is based on vendor kernel but heavily reworked due to many
changed bindings.

Signed-off-by: Andreas Kemnade <andreas@kemnade.info>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>

authored by

Andreas Kemnade and committed by
Shawn Guo
c100ea86 df0935f0

+306
+306
arch/arm/boot/dts/e60k02.dtsi
··· 1 + // SPDX-License-Identifier: GPL-2.0 2 + /* 3 + * Copyright 2019 Andreas Kemnade 4 + * based on works 5 + * Copyright 2016 Freescale Semiconductor, Inc. 6 + * and 7 + * Copyright (C) 2014 Ricoh Electronic Devices Co., Ltd 8 + * 9 + * Netronix E60K02 board common. 10 + * This board is equipped with different SoCs and 11 + * found in ebook-readers like the Kobo Clara HD (with i.MX6SLL) and 12 + * the Tolino Shine 3 (with i.MX6SL) 13 + */ 14 + #include <dt-bindings/input/input.h> 15 + 16 + / { 17 + 18 + chosen { 19 + stdout-path = &uart1; 20 + }; 21 + 22 + gpio_keys: gpio-keys { 23 + compatible = "gpio-keys"; 24 + 25 + power { 26 + label = "Power"; 27 + gpios = <&gpio5 8 GPIO_ACTIVE_LOW>; 28 + linux,code = <KEY_POWER>; 29 + wakeup-source; 30 + }; 31 + 32 + cover { 33 + label = "Cover"; 34 + gpios = <&gpio5 12 GPIO_ACTIVE_LOW>; 35 + linux,code = <SW_LID>; 36 + linux,input-type = <EV_SW>; 37 + wakeup-source; 38 + }; 39 + }; 40 + 41 + leds: leds { 42 + compatible = "gpio-leds"; 43 + 44 + on { 45 + label = "e60k02:white:on"; 46 + gpios = <&gpio5 7 GPIO_ACTIVE_LOW>; 47 + linux,default-trigger = "timer"; 48 + }; 49 + }; 50 + 51 + memory { 52 + reg = <0x80000000 0x20000000>; 53 + }; 54 + 55 + reg_wifi: regulator-wifi { 56 + compatible = "regulator-fixed"; 57 + regulator-name = "SD3_SPWR"; 58 + regulator-min-microvolt = <3000000>; 59 + regulator-max-microvolt = <3000000>; 60 + gpio = <&gpio4 29 GPIO_ACTIVE_HIGH>; 61 + enable-active-high; 62 + }; 63 + 64 + wifi_pwrseq: wifi_pwrseq { 65 + compatible = "mmc-pwrseq-simple"; 66 + post-power-on-delay-ms = <20>; 67 + reset-gpios = <&gpio5 0 GPIO_ACTIVE_LOW>; 68 + }; 69 + }; 70 + 71 + 72 + &i2c1 { 73 + clock-frequency = <100000>; 74 + status = "okay"; 75 + 76 + lm3630a: backlight@36 { 77 + reg = <0x36>; 78 + compatible = "ti,lm3630a"; 79 + enable-gpios = <&gpio2 10 GPIO_ACTIVE_HIGH>; 80 + 81 + #address-cells = <1>; 82 + #size-cells = <0>; 83 + 84 + led@0 { 85 + reg = <0>; 86 + led-sources = <0>; 87 + label = "backlight_warm"; 88 + default-brightness = <0>; 89 + max-brightness = <255>; 90 + }; 91 + 92 + led@1 { 93 + reg = <1>; 94 + led-sources = <1>; 95 + label = "backlight_cold"; 96 + default-brightness = <0>; 97 + max-brightness = <255>; 98 + }; 99 + }; 100 + }; 101 + 102 + &i2c2 { 103 + clock-frequency = <100000>; 104 + status = "okay"; 105 + 106 + /* TODO: CYTTSP5 touch controller at 0x24 */ 107 + 108 + /* TODO: TPS65185 PMIC for E Ink at 0x68 */ 109 + 110 + }; 111 + 112 + &i2c3 { 113 + clock-frequency = <100000>; 114 + status = "okay"; 115 + 116 + ricoh619: pmic@32 { 117 + compatible = "ricoh,rc5t619"; 118 + reg = <0x32>; 119 + system-power-controller; 120 + 121 + regulators { 122 + dcdc1_reg: DCDC1 { 123 + regulator-name = "DCDC1"; 124 + regulator-min-microvolt = <300000>; 125 + regulator-max-microvolt = <1875000>; 126 + regulator-always-on; 127 + regulator-boot-on; 128 + 129 + regulator-state-mem { 130 + regulator-on-in-suspend; 131 + regulator-suspend-max-microvolt = <900000>; 132 + regulator-suspend-min-microvolt = <900000>; 133 + }; 134 + }; 135 + 136 + /* Core3_3V3 */ 137 + dcdc2_reg: DCDC2 { 138 + regulator-name = "DCDC2"; 139 + regulator-always-on; 140 + regulator-boot-on; 141 + 142 + regulator-state-mem { 143 + regulator-on-in-suspend; 144 + regulator-suspend-max-microvolt = <3300000>; 145 + regulator-suspend-min-microvolt = <3300000>; 146 + }; 147 + }; 148 + 149 + dcdc3_reg: DCDC3 { 150 + regulator-name = "DCDC3"; 151 + regulator-min-microvolt = <300000>; 152 + regulator-max-microvolt = <1875000>; 153 + regulator-always-on; 154 + regulator-boot-on; 155 + 156 + regulator-state-mem { 157 + regulator-on-in-suspend; 158 + regulator-suspend-max-microvolt = <1140000>; 159 + regulator-suspend-min-microvolt = <1140000>; 160 + }; 161 + }; 162 + 163 + /* Core4_1V2 */ 164 + dcdc4_reg: DCDC4 { 165 + regulator-name = "DCDC4"; 166 + regulator-min-microvolt = <1200000>; 167 + regulator-max-microvolt = <1200000>; 168 + regulator-always-on; 169 + regulator-boot-on; 170 + 171 + regulator-state-mem { 172 + regulator-on-in-suspend; 173 + regulator-suspend-max-microvolt = <1140000>; 174 + regulator-suspend-min-microvolt = <1140000>; 175 + }; 176 + }; 177 + 178 + /* Core4_1V8 */ 179 + dcdc5_reg: DCDC5 { 180 + regulator-name = "DCDC5"; 181 + regulator-min-microvolt = <1800000>; 182 + regulator-max-microvolt = <1800000>; 183 + regulator-always-on; 184 + regulator-boot-on; 185 + 186 + regulator-state-mem { 187 + regulator-on-in-suspend; 188 + regulator-suspend-max-microvolt = <1700000>; 189 + regulator-suspend-min-microvolt = <1700000>; 190 + }; 191 + }; 192 + 193 + /* IR_3V3 */ 194 + ldo1_reg: LDO1 { 195 + regulator-name = "LDO1"; 196 + regulator-boot-on; 197 + }; 198 + 199 + /* Core1_3V3 */ 200 + ldo2_reg: LDO2 { 201 + regulator-name = "LDO2"; 202 + regulator-always-on; 203 + regulator-boot-on; 204 + 205 + regulator-state-mem { 206 + regulator-on-in-suspend; 207 + regulator-suspend-max-microvolt = <3000000>; 208 + regulator-suspend-min-microvolt = <3000000>; 209 + }; 210 + }; 211 + 212 + /* Core5_1V2 */ 213 + ldo3_reg: LDO3 { 214 + regulator-name = "LDO3"; 215 + regulator-always-on; 216 + regulator-boot-on; 217 + }; 218 + 219 + ldo4_reg: LDO4 { 220 + regulator-name = "LDO4"; 221 + regulator-boot-on; 222 + }; 223 + 224 + /* SPD_3V3 */ 225 + ldo5_reg: LDO5 { 226 + regulator-name = "LDO5"; 227 + regulator-always-on; 228 + regulator-boot-on; 229 + }; 230 + 231 + /* DDR_0V6 */ 232 + ldo6_reg: LDO6 { 233 + regulator-name = "LDO6"; 234 + regulator-always-on; 235 + regulator-boot-on; 236 + }; 237 + 238 + /* VDD_PWM */ 239 + ldo7_reg: LDO7 { 240 + regulator-name = "LDO7"; 241 + regulator-always-on; 242 + regulator-boot-on; 243 + }; 244 + 245 + /* ldo_1v8 */ 246 + ldo8_reg: LDO8 { 247 + regulator-name = "LDO8"; 248 + regulator-min-microvolt = <1800000>; 249 + regulator-max-microvolt = <1800000>; 250 + regulator-always-on; 251 + regulator-boot-on; 252 + }; 253 + 254 + ldo9_reg: LDO9 { 255 + regulator-name = "LDO9"; 256 + regulator-boot-on; 257 + }; 258 + 259 + ldo10_reg: LDO10 { 260 + regulator-name = "LDO10"; 261 + regulator-boot-on; 262 + }; 263 + 264 + ldortc1_reg: LDORTC1 { 265 + regulator-name = "LDORTC1"; 266 + regulator-boot-on; 267 + }; 268 + 269 + ldortc2_reg: LDORTC2 { 270 + regulator-name = "LDORTC2"; 271 + regulator-boot-on; 272 + }; 273 + }; 274 + }; 275 + }; 276 + 277 + &snvs_rtc { 278 + /* we are using the rtc in the pmic, not disabled in imx6sll.dtsi */ 279 + status = "disabled"; 280 + }; 281 + 282 + &uart1 { 283 + status = "okay"; 284 + }; 285 + 286 + &usdhc2 { 287 + non-removable; 288 + status = "okay"; 289 + }; 290 + 291 + &usdhc3 { 292 + vmmc-supply = <&reg_wifi>; 293 + mmc-pwrseq = <&wifi_pwrseq>; 294 + cap-power-off-card; 295 + non-removable; 296 + status = "okay"; 297 + }; 298 + 299 + &usbotg1 { 300 + pinctrl-names = "default"; 301 + disable-over-current; 302 + srp-disable; 303 + hnp-disable; 304 + adp-disable; 305 + status = "okay"; 306 + };