0001 // SPDX-License-Identifier: GPL-2.0+
0002 // Copyright 2019 Jonathan Neuschäfer
0003 //
0004 // The Kobo Aura e-book reader, model N514. The mainboard is marked as E606F0B.
0005
0006 /dts-v1/;
0007 #include "imx50.dtsi"
0008 #include <dt-bindings/input/input.h>
0009 #include <dt-bindings/interrupt-controller/irq.h>
0010
0011 / {
0012 model = "Kobo Aura (N514)";
0013 compatible = "kobo,aura", "fsl,imx50";
0014
0015 chosen {
0016 stdout-path = "serial1:115200n8";
0017 };
0018
0019 memory@70000000 {
0020 device_type = "memory";
0021 reg = <0x70000000 0x10000000>;
0022 };
0023
0024 gpio-leds {
0025 compatible = "gpio-leds";
0026 pinctrl-names = "default";
0027 pinctrl-0 = <&pinctrl_leds>;
0028
0029 on {
0030 label = "kobo_aura:orange:on";
0031 gpios = <&gpio6 24 GPIO_ACTIVE_LOW>;
0032 panic-indicator;
0033 };
0034 };
0035
0036 gpio-keys {
0037 compatible = "gpio-keys";
0038 pinctrl-names = "default";
0039 pinctrl-0 = <&pinctrl_gpiokeys>;
0040
0041 power {
0042 label = "Power Button";
0043 gpios = <&gpio4 10 GPIO_ACTIVE_LOW>;
0044 linux,code = <KEY_POWER>;
0045 };
0046
0047 hallsensor {
0048 label = "Hallsensor";
0049 gpios = <&gpio5 15 GPIO_ACTIVE_LOW>;
0050 linux,code = <KEY_RESERVED>;
0051 linux,input-type = <EV_SW>;
0052 };
0053
0054 frontlight {
0055 label = "Frontlight";
0056 gpios = <&gpio4 1 GPIO_ACTIVE_LOW>;
0057 linux,code = <KEY_DISPLAYTOGGLE>;
0058 };
0059 };
0060
0061 sd2_pwrseq: pwrseq {
0062 compatible = "mmc-pwrseq-simple";
0063 pinctrl-names = "default";
0064 pinctrl-0 = <&pinctrl_sd2_reset>;
0065 reset-gpios = <&gpio4 17 GPIO_ACTIVE_LOW>;
0066 };
0067
0068 sd2_vmmc: gpio-regulator {
0069 compatible = "regulator-gpio";
0070 pinctrl-names = "default";
0071 pinctrl-0 = <&pinctrl_sd2_vmmc>;
0072 regulator-name = "vmmc";
0073 states = <3300000 0>;
0074 regulator-min-microvolt = <3300000>;
0075 regulator-max-microvolt = <3300000>;
0076 enable-gpio = <&gpio4 12 GPIO_ACTIVE_LOW>;
0077 startup-delay-us = <100000>;
0078 };
0079 };
0080
0081 &esdhc1 {
0082 pinctrl-names = "default";
0083 pinctrl-0 = <&pinctrl_sd1>;
0084 max-frequency = <50000000>;
0085 bus-width = <4>;
0086 cd-gpios = <&gpio5 17 GPIO_ACTIVE_LOW>;
0087 disable-wp;
0088 status = "okay";
0089
0090 /* External µSD card */
0091 };
0092
0093 &esdhc2 {
0094 pinctrl-names = "default";
0095 pinctrl-0 = <&pinctrl_sd2>;
0096 bus-width = <4>;
0097 max-frequency = <50000000>;
0098 disable-wp;
0099 mmc-pwrseq = <&sd2_pwrseq>;
0100 vmmc-supply = <&sd2_vmmc>;
0101 status = "okay";
0102
0103 /* CyberTan WC121 SDIO WiFi (BCM43362) */
0104 };
0105
0106 &esdhc3 {
0107 pinctrl-names = "default";
0108 pinctrl-0 = <&pinctrl_sd3>;
0109 bus-width = <8>;
0110 non-removable;
0111 max-frequency = <50000000>;
0112 disable-wp;
0113 status = "okay";
0114
0115 /* Internal eMMC */
0116 };
0117
0118 &i2c1 {
0119 pinctrl-names = "default";
0120 pinctrl-0 = <&pinctrl_i2c1>;
0121 status = "okay";
0122
0123 touchscreen@15 {
0124 reg = <0x15>;
0125 compatible = "elan,ektf2132";
0126 pinctrl-names = "default";
0127 pinctrl-0 = <&pinctrl_ts>;
0128 power-gpios = <&gpio4 9 GPIO_ACTIVE_HIGH>;
0129 interrupts-extended = <&gpio5 13 IRQ_TYPE_EDGE_FALLING>;
0130 };
0131 };
0132
0133 &i2c2 {
0134 pinctrl-names = "default";
0135 pinctrl-0 = <&pinctrl_i2c2>;
0136 status = "okay";
0137
0138 /* TODO: TPS65185 PMIC for E Ink at 0x68 */
0139 };
0140
0141 &i2c3 {
0142 pinctrl-names = "default";
0143 pinctrl-0 = <&pinctrl_i2c3>;
0144 status = "okay";
0145
0146 embedded-controller@43 {
0147 pinctrl-names = "default";
0148 pinctrl-0 = <&pinctrl_ec>;
0149 compatible = "netronix,ntxec";
0150 reg = <0x43>;
0151 system-power-controller;
0152 interrupts-extended = <&gpio4 11 IRQ_TYPE_EDGE_FALLING>;
0153 #pwm-cells = <2>;
0154 };
0155 };
0156
0157 &iomuxc {
0158 pinctrl_ec: ecgrp {
0159 fsl,pins = <
0160 MX50_PAD_CSPI_SS0__GPIO4_11 0x0 /* INT */
0161 >;
0162 };
0163
0164 pinctrl_gpiokeys: gpiokeysgrp {
0165 fsl,pins = <
0166 MX50_PAD_CSPI_MISO__GPIO4_10 0x0
0167 MX50_PAD_SD2_D7__GPIO5_15 0x0
0168 MX50_PAD_KEY_ROW0__GPIO4_1 0x0
0169 >;
0170 };
0171
0172 pinctrl_i2c1: i2c1grp {
0173 fsl,pins = <
0174 MX50_PAD_I2C1_SCL__I2C1_SCL 0x400001fd
0175 MX50_PAD_I2C1_SDA__I2C1_SDA 0x400001fd
0176 >;
0177 };
0178
0179 pinctrl_i2c2: i2c2grp {
0180 fsl,pins = <
0181 MX50_PAD_I2C2_SCL__I2C2_SCL 0x400001fd
0182 MX50_PAD_I2C2_SDA__I2C2_SDA 0x400001fd
0183 >;
0184 };
0185
0186 pinctrl_i2c3: i2c3grp {
0187 fsl,pins = <
0188 MX50_PAD_I2C3_SCL__I2C3_SCL 0x400001fd
0189 MX50_PAD_I2C3_SDA__I2C3_SDA 0x400001fd
0190 >;
0191 };
0192
0193 pinctrl_leds: ledsgrp {
0194 fsl,pins = <
0195 MX50_PAD_PWM1__GPIO6_24 0x0
0196 >;
0197 };
0198
0199 pinctrl_sd1: sd1grp {
0200 fsl,pins = <
0201 MX50_PAD_SD1_CMD__ESDHC1_CMD 0x1e4
0202 MX50_PAD_SD1_CLK__ESDHC1_CLK 0xd4
0203 MX50_PAD_SD1_D0__ESDHC1_DAT0 0x1d4
0204 MX50_PAD_SD1_D1__ESDHC1_DAT1 0x1d4
0205 MX50_PAD_SD1_D2__ESDHC1_DAT2 0x1d4
0206 MX50_PAD_SD1_D3__ESDHC1_DAT3 0x1d4
0207
0208 MX50_PAD_SD2_CD__GPIO5_17 0x0
0209 >;
0210 };
0211
0212 pinctrl_sd2: sd2grp {
0213 fsl,pins = <
0214 MX50_PAD_SD2_CMD__ESDHC2_CMD 0x1e4
0215 MX50_PAD_SD2_CLK__ESDHC2_CLK 0xd4
0216 MX50_PAD_SD2_D0__ESDHC2_DAT0 0x1d4
0217 MX50_PAD_SD2_D1__ESDHC2_DAT1 0x1d4
0218 MX50_PAD_SD2_D2__ESDHC2_DAT2 0x1d4
0219 MX50_PAD_SD2_D3__ESDHC2_DAT3 0x1d4
0220 >;
0221 };
0222
0223 pinctrl_sd2_reset: sd2-resetgrp {
0224 fsl,pins = <
0225 MX50_PAD_ECSPI2_MOSI__GPIO4_17 0x0
0226 >;
0227 };
0228
0229 pinctrl_sd2_vmmc: sd2-vmmcgrp {
0230 fsl,pins = <
0231 MX50_PAD_ECSPI1_SCLK__GPIO4_12 0x0
0232 >;
0233 };
0234
0235 pinctrl_sd3: sd3grp {
0236 fsl,pins = <
0237 MX50_PAD_SD3_CMD__ESDHC3_CMD 0x1e4
0238 MX50_PAD_SD3_CLK__ESDHC3_CLK 0xd4
0239 MX50_PAD_SD3_D0__ESDHC3_DAT0 0x1d4
0240 MX50_PAD_SD3_D1__ESDHC3_DAT1 0x1d4
0241 MX50_PAD_SD3_D2__ESDHC3_DAT2 0x1d4
0242 MX50_PAD_SD3_D3__ESDHC3_DAT3 0x1d4
0243 MX50_PAD_SD3_D4__ESDHC3_DAT4 0x1d4
0244 MX50_PAD_SD3_D5__ESDHC3_DAT5 0x1d4
0245 MX50_PAD_SD3_D6__ESDHC3_DAT6 0x1d4
0246 MX50_PAD_SD3_D7__ESDHC3_DAT7 0x1d4
0247 >;
0248 };
0249
0250 pinctrl_ts: tsgrp {
0251 fsl,pins = <
0252 MX50_PAD_CSPI_MOSI__GPIO4_9 0x0
0253 MX50_PAD_SD2_D5__GPIO5_13 0x0
0254 >;
0255 };
0256
0257 pinctrl_uart2: uart2grp {
0258 fsl,pins = <
0259 MX50_PAD_UART2_TXD__UART2_TXD_MUX 0x1e4
0260 MX50_PAD_UART2_RXD__UART2_RXD_MUX 0x1e4
0261 >;
0262 };
0263
0264 pinctrl_usbphy: usbphygrp {
0265 fsl,pins = <
0266 MX50_PAD_ECSPI2_SS0__GPIO4_19 0x0
0267 >;
0268 };
0269 };
0270
0271 &uart2 {
0272 pinctrl-names = "default";
0273 pinctrl-0 = <&pinctrl_uart2>;
0274 status = "okay";
0275 };
0276
0277 &usbotg {
0278 phy_type = "utmi_wide";
0279 dr_mode = "peripheral";
0280 status = "okay";
0281 };
0282
0283 &usbphy0 {
0284 pinctrl-names = "default";
0285 pinctrl-0 = <&pinctrl_usbphy>;
0286 vbus-detect-gpio = <&gpio4 19 GPIO_ACTIVE_LOW>;
0287 };