1*4882a593Smuzhiyun// SPDX-License-Identifier: GPL-2.0+ 2*4882a593Smuzhiyun// Copyright 2019 Jonathan Neuschäfer 3*4882a593Smuzhiyun// 4*4882a593Smuzhiyun// The Kobo Aura e-book reader, model N514. The mainboard is marked as E606F0B. 5*4882a593Smuzhiyun 6*4882a593Smuzhiyun/dts-v1/; 7*4882a593Smuzhiyun#include "imx50.dtsi" 8*4882a593Smuzhiyun#include <dt-bindings/input/input.h> 9*4882a593Smuzhiyun 10*4882a593Smuzhiyun/ { 11*4882a593Smuzhiyun model = "Kobo Aura (N514)"; 12*4882a593Smuzhiyun compatible = "kobo,aura", "fsl,imx50"; 13*4882a593Smuzhiyun 14*4882a593Smuzhiyun chosen { 15*4882a593Smuzhiyun stdout-path = "serial1:115200n8"; 16*4882a593Smuzhiyun }; 17*4882a593Smuzhiyun 18*4882a593Smuzhiyun memory@70000000 { 19*4882a593Smuzhiyun device_type = "memory"; 20*4882a593Smuzhiyun reg = <0x70000000 0x10000000>; 21*4882a593Smuzhiyun }; 22*4882a593Smuzhiyun 23*4882a593Smuzhiyun gpio-leds { 24*4882a593Smuzhiyun compatible = "gpio-leds"; 25*4882a593Smuzhiyun pinctrl-names = "default"; 26*4882a593Smuzhiyun pinctrl-0 = <&pinctrl_leds>; 27*4882a593Smuzhiyun 28*4882a593Smuzhiyun on { 29*4882a593Smuzhiyun label = "kobo_aura:orange:on"; 30*4882a593Smuzhiyun gpios = <&gpio6 24 GPIO_ACTIVE_LOW>; 31*4882a593Smuzhiyun panic-indicator; 32*4882a593Smuzhiyun }; 33*4882a593Smuzhiyun }; 34*4882a593Smuzhiyun 35*4882a593Smuzhiyun gpio-keys { 36*4882a593Smuzhiyun compatible = "gpio-keys"; 37*4882a593Smuzhiyun pinctrl-names = "default"; 38*4882a593Smuzhiyun pinctrl-0 = <&pinctrl_gpiokeys>; 39*4882a593Smuzhiyun 40*4882a593Smuzhiyun power { 41*4882a593Smuzhiyun label = "Power Button"; 42*4882a593Smuzhiyun gpios = <&gpio4 10 GPIO_ACTIVE_LOW>; 43*4882a593Smuzhiyun linux,code = <KEY_POWER>; 44*4882a593Smuzhiyun }; 45*4882a593Smuzhiyun 46*4882a593Smuzhiyun hallsensor { 47*4882a593Smuzhiyun label = "Hallsensor"; 48*4882a593Smuzhiyun gpios = <&gpio5 15 GPIO_ACTIVE_LOW>; 49*4882a593Smuzhiyun linux,code = <KEY_RESERVED>; 50*4882a593Smuzhiyun linux,input-type = <EV_SW>; 51*4882a593Smuzhiyun }; 52*4882a593Smuzhiyun 53*4882a593Smuzhiyun frontlight { 54*4882a593Smuzhiyun label = "Frontlight"; 55*4882a593Smuzhiyun gpios = <&gpio4 1 GPIO_ACTIVE_LOW>; 56*4882a593Smuzhiyun linux,code = <KEY_DISPLAYTOGGLE>; 57*4882a593Smuzhiyun }; 58*4882a593Smuzhiyun }; 59*4882a593Smuzhiyun 60*4882a593Smuzhiyun sd2_pwrseq: pwrseq { 61*4882a593Smuzhiyun compatible = "mmc-pwrseq-simple"; 62*4882a593Smuzhiyun pinctrl-names = "default"; 63*4882a593Smuzhiyun pinctrl-0 = <&pinctrl_sd2_reset>; 64*4882a593Smuzhiyun reset-gpios = <&gpio4 17 GPIO_ACTIVE_LOW>; 65*4882a593Smuzhiyun }; 66*4882a593Smuzhiyun 67*4882a593Smuzhiyun sd2_vmmc: gpio-regulator { 68*4882a593Smuzhiyun compatible = "regulator-gpio"; 69*4882a593Smuzhiyun pinctrl-names = "default"; 70*4882a593Smuzhiyun pinctrl-0 = <&pinctrl_sd2_vmmc>; 71*4882a593Smuzhiyun regulator-name = "vmmc"; 72*4882a593Smuzhiyun states = <3300000 0>; 73*4882a593Smuzhiyun regulator-min-microvolt = <3300000>; 74*4882a593Smuzhiyun regulator-max-microvolt = <3300000>; 75*4882a593Smuzhiyun enable-gpio = <&gpio4 12 GPIO_ACTIVE_LOW>; 76*4882a593Smuzhiyun startup-delay-us = <100000>; 77*4882a593Smuzhiyun }; 78*4882a593Smuzhiyun}; 79*4882a593Smuzhiyun 80*4882a593Smuzhiyun&esdhc1 { 81*4882a593Smuzhiyun pinctrl-names = "default"; 82*4882a593Smuzhiyun pinctrl-0 = <&pinctrl_sd1>; 83*4882a593Smuzhiyun max-frequency = <50000000>; 84*4882a593Smuzhiyun bus-width = <4>; 85*4882a593Smuzhiyun cd-gpios = <&gpio5 17 GPIO_ACTIVE_LOW>; 86*4882a593Smuzhiyun disable-wp; 87*4882a593Smuzhiyun status = "okay"; 88*4882a593Smuzhiyun 89*4882a593Smuzhiyun /* External µSD card */ 90*4882a593Smuzhiyun}; 91*4882a593Smuzhiyun 92*4882a593Smuzhiyun&esdhc2 { 93*4882a593Smuzhiyun pinctrl-names = "default"; 94*4882a593Smuzhiyun pinctrl-0 = <&pinctrl_sd2>; 95*4882a593Smuzhiyun bus-width = <4>; 96*4882a593Smuzhiyun max-frequency = <50000000>; 97*4882a593Smuzhiyun disable-wp; 98*4882a593Smuzhiyun mmc-pwrseq = <&sd2_pwrseq>; 99*4882a593Smuzhiyun vmmc-supply = <&sd2_vmmc>; 100*4882a593Smuzhiyun status = "okay"; 101*4882a593Smuzhiyun 102*4882a593Smuzhiyun /* CyberTan WC121 SDIO WiFi (BCM43362) */ 103*4882a593Smuzhiyun}; 104*4882a593Smuzhiyun 105*4882a593Smuzhiyun&esdhc3 { 106*4882a593Smuzhiyun pinctrl-names = "default"; 107*4882a593Smuzhiyun pinctrl-0 = <&pinctrl_sd3>; 108*4882a593Smuzhiyun bus-width = <8>; 109*4882a593Smuzhiyun non-removable; 110*4882a593Smuzhiyun max-frequency = <50000000>; 111*4882a593Smuzhiyun disable-wp; 112*4882a593Smuzhiyun status = "okay"; 113*4882a593Smuzhiyun 114*4882a593Smuzhiyun /* Internal eMMC */ 115*4882a593Smuzhiyun}; 116*4882a593Smuzhiyun 117*4882a593Smuzhiyun&i2c1 { 118*4882a593Smuzhiyun pinctrl-names = "default"; 119*4882a593Smuzhiyun pinctrl-0 = <&pinctrl_i2c1>; 120*4882a593Smuzhiyun status = "okay"; 121*4882a593Smuzhiyun 122*4882a593Smuzhiyun /* TODO: ektf2132 touch controller at 0x15 */ 123*4882a593Smuzhiyun}; 124*4882a593Smuzhiyun 125*4882a593Smuzhiyun&i2c2 { 126*4882a593Smuzhiyun pinctrl-names = "default"; 127*4882a593Smuzhiyun pinctrl-0 = <&pinctrl_i2c2>; 128*4882a593Smuzhiyun status = "okay"; 129*4882a593Smuzhiyun 130*4882a593Smuzhiyun /* TODO: TPS65185 PMIC for E Ink at 0x68 */ 131*4882a593Smuzhiyun}; 132*4882a593Smuzhiyun 133*4882a593Smuzhiyun&i2c3 { 134*4882a593Smuzhiyun pinctrl-names = "default"; 135*4882a593Smuzhiyun pinctrl-0 = <&pinctrl_i2c3>; 136*4882a593Smuzhiyun status = "okay"; 137*4882a593Smuzhiyun 138*4882a593Smuzhiyun /* TODO: embedded controller at 0x43 */ 139*4882a593Smuzhiyun}; 140*4882a593Smuzhiyun 141*4882a593Smuzhiyun&iomuxc { 142*4882a593Smuzhiyun pinctrl_gpiokeys: gpiokeys { 143*4882a593Smuzhiyun fsl,pins = < 144*4882a593Smuzhiyun MX50_PAD_CSPI_MISO__GPIO4_10 0x0 145*4882a593Smuzhiyun MX50_PAD_SD2_D7__GPIO5_15 0x0 146*4882a593Smuzhiyun MX50_PAD_KEY_ROW0__GPIO4_1 0x0 147*4882a593Smuzhiyun >; 148*4882a593Smuzhiyun }; 149*4882a593Smuzhiyun 150*4882a593Smuzhiyun pinctrl_i2c1: i2c1 { 151*4882a593Smuzhiyun fsl,pins = < 152*4882a593Smuzhiyun MX50_PAD_I2C1_SCL__I2C1_SCL 0x400001fd 153*4882a593Smuzhiyun MX50_PAD_I2C1_SDA__I2C1_SDA 0x400001fd 154*4882a593Smuzhiyun >; 155*4882a593Smuzhiyun }; 156*4882a593Smuzhiyun 157*4882a593Smuzhiyun pinctrl_i2c2: i2c2 { 158*4882a593Smuzhiyun fsl,pins = < 159*4882a593Smuzhiyun MX50_PAD_I2C2_SCL__I2C2_SCL 0x400001fd 160*4882a593Smuzhiyun MX50_PAD_I2C2_SDA__I2C2_SDA 0x400001fd 161*4882a593Smuzhiyun >; 162*4882a593Smuzhiyun }; 163*4882a593Smuzhiyun 164*4882a593Smuzhiyun pinctrl_i2c3: i2c3 { 165*4882a593Smuzhiyun fsl,pins = < 166*4882a593Smuzhiyun MX50_PAD_I2C3_SCL__I2C3_SCL 0x400001fd 167*4882a593Smuzhiyun MX50_PAD_I2C3_SDA__I2C3_SDA 0x400001fd 168*4882a593Smuzhiyun >; 169*4882a593Smuzhiyun }; 170*4882a593Smuzhiyun 171*4882a593Smuzhiyun pinctrl_leds: leds { 172*4882a593Smuzhiyun fsl,pins = < 173*4882a593Smuzhiyun MX50_PAD_PWM1__GPIO6_24 0x0 174*4882a593Smuzhiyun >; 175*4882a593Smuzhiyun }; 176*4882a593Smuzhiyun 177*4882a593Smuzhiyun pinctrl_sd1: sd1 { 178*4882a593Smuzhiyun fsl,pins = < 179*4882a593Smuzhiyun MX50_PAD_SD1_CMD__ESDHC1_CMD 0x1e4 180*4882a593Smuzhiyun MX50_PAD_SD1_CLK__ESDHC1_CLK 0xd4 181*4882a593Smuzhiyun MX50_PAD_SD1_D0__ESDHC1_DAT0 0x1d4 182*4882a593Smuzhiyun MX50_PAD_SD1_D1__ESDHC1_DAT1 0x1d4 183*4882a593Smuzhiyun MX50_PAD_SD1_D2__ESDHC1_DAT2 0x1d4 184*4882a593Smuzhiyun MX50_PAD_SD1_D3__ESDHC1_DAT3 0x1d4 185*4882a593Smuzhiyun 186*4882a593Smuzhiyun MX50_PAD_SD2_CD__GPIO5_17 0x0 187*4882a593Smuzhiyun >; 188*4882a593Smuzhiyun }; 189*4882a593Smuzhiyun 190*4882a593Smuzhiyun pinctrl_sd2: sd2 { 191*4882a593Smuzhiyun fsl,pins = < 192*4882a593Smuzhiyun MX50_PAD_SD2_CMD__ESDHC2_CMD 0x1e4 193*4882a593Smuzhiyun MX50_PAD_SD2_CLK__ESDHC2_CLK 0xd4 194*4882a593Smuzhiyun MX50_PAD_SD2_D0__ESDHC2_DAT0 0x1d4 195*4882a593Smuzhiyun MX50_PAD_SD2_D1__ESDHC2_DAT1 0x1d4 196*4882a593Smuzhiyun MX50_PAD_SD2_D2__ESDHC2_DAT2 0x1d4 197*4882a593Smuzhiyun MX50_PAD_SD2_D3__ESDHC2_DAT3 0x1d4 198*4882a593Smuzhiyun >; 199*4882a593Smuzhiyun }; 200*4882a593Smuzhiyun 201*4882a593Smuzhiyun pinctrl_sd2_reset: sd2-reset { 202*4882a593Smuzhiyun fsl,pins = < 203*4882a593Smuzhiyun MX50_PAD_ECSPI2_MOSI__GPIO4_17 0x0 204*4882a593Smuzhiyun >; 205*4882a593Smuzhiyun }; 206*4882a593Smuzhiyun 207*4882a593Smuzhiyun pinctrl_sd2_vmmc: sd2-vmmc { 208*4882a593Smuzhiyun fsl,pins = < 209*4882a593Smuzhiyun MX50_PAD_ECSPI1_SCLK__GPIO4_12 0x0 210*4882a593Smuzhiyun >; 211*4882a593Smuzhiyun }; 212*4882a593Smuzhiyun 213*4882a593Smuzhiyun pinctrl_sd3: sd3 { 214*4882a593Smuzhiyun fsl,pins = < 215*4882a593Smuzhiyun MX50_PAD_SD3_CMD__ESDHC3_CMD 0x1e4 216*4882a593Smuzhiyun MX50_PAD_SD3_CLK__ESDHC3_CLK 0xd4 217*4882a593Smuzhiyun MX50_PAD_SD3_D0__ESDHC3_DAT0 0x1d4 218*4882a593Smuzhiyun MX50_PAD_SD3_D1__ESDHC3_DAT1 0x1d4 219*4882a593Smuzhiyun MX50_PAD_SD3_D2__ESDHC3_DAT2 0x1d4 220*4882a593Smuzhiyun MX50_PAD_SD3_D3__ESDHC3_DAT3 0x1d4 221*4882a593Smuzhiyun MX50_PAD_SD3_D4__ESDHC3_DAT4 0x1d4 222*4882a593Smuzhiyun MX50_PAD_SD3_D5__ESDHC3_DAT5 0x1d4 223*4882a593Smuzhiyun MX50_PAD_SD3_D6__ESDHC3_DAT6 0x1d4 224*4882a593Smuzhiyun MX50_PAD_SD3_D7__ESDHC3_DAT7 0x1d4 225*4882a593Smuzhiyun >; 226*4882a593Smuzhiyun }; 227*4882a593Smuzhiyun 228*4882a593Smuzhiyun pinctrl_uart2: uart2 { 229*4882a593Smuzhiyun fsl,pins = < 230*4882a593Smuzhiyun MX50_PAD_UART2_TXD__UART2_TXD_MUX 0x1e4 231*4882a593Smuzhiyun MX50_PAD_UART2_RXD__UART2_RXD_MUX 0x1e4 232*4882a593Smuzhiyun >; 233*4882a593Smuzhiyun }; 234*4882a593Smuzhiyun 235*4882a593Smuzhiyun pinctrl_usbphy: usbphy { 236*4882a593Smuzhiyun fsl,pins = < 237*4882a593Smuzhiyun MX50_PAD_ECSPI2_SS0__GPIO4_19 0x0 238*4882a593Smuzhiyun >; 239*4882a593Smuzhiyun }; 240*4882a593Smuzhiyun}; 241*4882a593Smuzhiyun 242*4882a593Smuzhiyun&uart2 { 243*4882a593Smuzhiyun pinctrl-names = "default"; 244*4882a593Smuzhiyun pinctrl-0 = <&pinctrl_uart2>; 245*4882a593Smuzhiyun status = "okay"; 246*4882a593Smuzhiyun}; 247*4882a593Smuzhiyun 248*4882a593Smuzhiyun&usbotg { 249*4882a593Smuzhiyun phy_type = "utmi_wide"; 250*4882a593Smuzhiyun dr_mode = "peripheral"; 251*4882a593Smuzhiyun status = "okay"; 252*4882a593Smuzhiyun}; 253*4882a593Smuzhiyun 254*4882a593Smuzhiyun&usbphy0 { 255*4882a593Smuzhiyun pinctrl-names = "default"; 256*4882a593Smuzhiyun pinctrl-0 = <&pinctrl_usbphy>; 257*4882a593Smuzhiyun vbus-detect-gpio = <&gpio4 19 GPIO_ACTIVE_LOW>; 258*4882a593Smuzhiyun}; 259