0001 // SPDX-License-Identifier: (GPL-2.0)
0002 /*
0003 * Device tree for the Tolino Vision 5 ebook reader
0004 *
0005 * Name on mainboard is: 37NB-E70K0M+6A3
0006 * Serials start with: E70K02 (a number also seen in
0007 * vendor kernel sources)
0008 *
0009 * This mainboard seems to be equipped with different SoCs.
0010 * In the Tolino Vision 5 ebook reader it is a i.MX6SL
0011 *
0012 * Copyright 2021 Andreas Kemnade
0013 * based on works
0014 * Copyright 2016 Freescale Semiconductor, Inc.
0015 */
0016
0017 /dts-v1/;
0018
0019 #include <dt-bindings/input/input.h>
0020 #include <dt-bindings/gpio/gpio.h>
0021 #include "imx6sl.dtsi"
0022 #include "e70k02.dtsi"
0023
0024 / {
0025 model = "Tolino Vision 5";
0026 compatible = "kobo,tolino-vision5", "fsl,imx6sl";
0027 };
0028
0029 &gpio_keys {
0030 pinctrl-names = "default";
0031 pinctrl-0 = <&pinctrl_gpio_keys>;
0032 };
0033
0034 &i2c1 {
0035 pinctrl-names = "default","sleep";
0036 pinctrl-0 = <&pinctrl_i2c1>;
0037 pinctrl-1 = <&pinctrl_i2c1_sleep>;
0038 };
0039
0040 &i2c2 {
0041 pinctrl-names = "default","sleep";
0042 pinctrl-0 = <&pinctrl_i2c2>;
0043 pinctrl-1 = <&pinctrl_i2c2_sleep>;
0044 };
0045
0046 &i2c3 {
0047 pinctrl-names = "default";
0048 pinctrl-0 = <&pinctrl_i2c3>;
0049 };
0050
0051 &iomuxc {
0052 pinctrl-names = "default";
0053 pinctrl-0 = <&pinctrl_hog>;
0054
0055 pinctrl_gpio_keys: gpio-keysgrp {
0056 fsl,pins = <
0057 MX6SL_PAD_FEC_CRS_DV__GPIO4_IO25 0x17059 /* PWR_SW */
0058 MX6SL_PAD_FEC_MDC__GPIO4_IO23 0x17059 /* HALL_EN */
0059 MX6SL_PAD_KEY_COL4__GPIO4_IO00 0x17059 /* PAGE_UP */
0060 MX6SL_PAD_KEY_COL5__GPIO4_IO02 0x17059 /* PAGE_DOWN */
0061 >;
0062 };
0063
0064 pinctrl_hog: hoggrp {
0065 fsl,pins = <
0066 MX6SL_PAD_LCD_DAT1__GPIO2_IO21 0x79
0067 MX6SL_PAD_LCD_DAT4__GPIO2_IO24 0x79
0068 MX6SL_PAD_LCD_DAT5__GPIO2_IO25 0x79
0069 MX6SL_PAD_LCD_DAT6__GPIO2_IO26 0x79
0070 MX6SL_PAD_LCD_DAT7__GPIO2_IO27 0x79
0071 MX6SL_PAD_LCD_DAT8__GPIO2_IO28 0x79
0072 MX6SL_PAD_LCD_DAT9__GPIO2_IO29 0x79
0073 MX6SL_PAD_LCD_DAT10__GPIO2_IO30 0x79
0074 MX6SL_PAD_LCD_DAT11__GPIO2_IO31 0x79
0075 MX6SL_PAD_LCD_DAT12__GPIO3_IO00 0x79
0076 MX6SL_PAD_LCD_DAT13__GPIO3_IO01 0x79
0077 MX6SL_PAD_LCD_DAT14__GPIO3_IO02 0x79
0078 MX6SL_PAD_LCD_DAT15__GPIO3_IO03 0x79
0079 MX6SL_PAD_LCD_DAT16__GPIO3_IO04 0x79
0080 MX6SL_PAD_LCD_DAT17__GPIO3_IO05 0x79
0081 MX6SL_PAD_LCD_DAT18__GPIO3_IO06 0x79
0082 MX6SL_PAD_LCD_DAT19__GPIO3_IO07 0x79
0083 MX6SL_PAD_LCD_DAT20__GPIO3_IO08 0x79
0084 MX6SL_PAD_LCD_DAT21__GPIO3_IO09 0x79
0085 MX6SL_PAD_LCD_DAT22__GPIO3_IO10 0x79
0086 MX6SL_PAD_LCD_DAT23__GPIO3_IO11 0x79
0087 MX6SL_PAD_LCD_CLK__GPIO2_IO15 0x79
0088 MX6SL_PAD_LCD_ENABLE__GPIO2_IO16 0x79
0089 MX6SL_PAD_LCD_HSYNC__GPIO2_IO17 0x79
0090 MX6SL_PAD_LCD_VSYNC__GPIO2_IO18 0x79
0091 MX6SL_PAD_LCD_RESET__GPIO2_IO19 0x79
0092 MX6SL_PAD_FEC_TX_CLK__GPIO4_IO21 0x79
0093 MX6SL_PAD_FEC_REF_CLK__GPIO4_IO26 0x79
0094 MX6SL_PAD_KEY_COL3__GPIO3_IO30 0x79
0095 MX6SL_PAD_KEY_ROW7__GPIO4_IO07 0x79
0096 MX6SL_PAD_ECSPI2_MOSI__GPIO4_IO13 0x79
0097 >;
0098 };
0099
0100 pinctrl_i2c1: i2c1grp {
0101 fsl,pins = <
0102 MX6SL_PAD_I2C1_SCL__I2C1_SCL 0x4001f8b1
0103 MX6SL_PAD_I2C1_SDA__I2C1_SDA 0x4001f8b1
0104 >;
0105 };
0106
0107 pinctrl_i2c1_sleep: i2c1grp-sleep {
0108 fsl,pins = <
0109 MX6SL_PAD_I2C1_SCL__I2C1_SCL 0x400108b1
0110 MX6SL_PAD_I2C1_SDA__I2C1_SDA 0x400108b1
0111 >;
0112 };
0113
0114 pinctrl_i2c2: i2c2grp {
0115 fsl,pins = <
0116 MX6SL_PAD_I2C2_SCL__I2C2_SCL 0x4001f8b1
0117 MX6SL_PAD_I2C2_SDA__I2C2_SDA 0x4001f8b1
0118 >;
0119 };
0120
0121 pinctrl_i2c2_sleep: i2c2grp-sleep {
0122 fsl,pins = <
0123 MX6SL_PAD_I2C2_SCL__I2C2_SCL 0x400108b1
0124 MX6SL_PAD_I2C2_SDA__I2C2_SDA 0x400108b1
0125 >;
0126 };
0127
0128 pinctrl_i2c3: i2c3grp {
0129 fsl,pins = <
0130 MX6SL_PAD_REF_CLK_24M__I2C3_SCL 0x4001f8b1
0131 MX6SL_PAD_REF_CLK_32K__I2C3_SDA 0x4001f8b1
0132 >;
0133 };
0134
0135 pinctrl_led: ledgrp {
0136 fsl,pins = <
0137 MX6SL_PAD_FEC_RXD0__GPIO4_IO17 0x10059
0138 >;
0139 };
0140
0141 pinctrl_lm3630a_bl_gpio: lm3630a-bl-gpiogrp {
0142 fsl,pins = <
0143 MX6SL_PAD_EPDC_PWRCTRL3__GPIO2_IO10 0x10059 /* HWEN */
0144 >;
0145 };
0146
0147 pinctrl_ricoh_gpio: ricoh-gpiogrp {
0148 fsl,pins = <
0149 MX6SL_PAD_FEC_MDIO__GPIO4_IO20 0x1b8b1 /* ricoh619 chg */
0150 MX6SL_PAD_FEC_RX_ER__GPIO4_IO19 0x1b8b1 /* ricoh619 irq */
0151 MX6SL_PAD_KEY_COL2__GPIO3_IO28 0x1b8b1 /* ricoh619 bat_low_int */
0152 >;
0153 };
0154
0155 pinctrl_uart1: uart1grp {
0156 fsl,pins = <
0157 MX6SL_PAD_UART1_TXD__UART1_TX_DATA 0x1b0b1
0158 MX6SL_PAD_UART1_RXD__UART1_RX_DATA 0x1b0b1
0159 >;
0160 };
0161
0162 pinctrl_usbotg1: usbotg1grp {
0163 fsl,pins = <
0164 MX6SL_PAD_EPDC_PWRCOM__USB_OTG1_ID 0x17059
0165 >;
0166 };
0167
0168 pinctrl_usdhc1: usdhc1grp {
0169 fsl,pins = <
0170 MX6SL_PAD_SD1_CMD__SD1_CMD 0x17059
0171 MX6SL_PAD_SD1_CLK__SD1_CLK 0x17059
0172 MX6SL_PAD_SD1_DAT0__SD1_DATA0 0x17059
0173 MX6SL_PAD_SD1_DAT1__SD1_DATA1 0x17059
0174 MX6SL_PAD_SD1_DAT2__SD1_DATA2 0x17059
0175 MX6SL_PAD_SD1_DAT3__SD1_DATA3 0x17059
0176 MX6SL_PAD_SD1_DAT4__SD1_DATA4 0x17059
0177 MX6SL_PAD_SD1_DAT5__SD1_DATA5 0x17059
0178 MX6SL_PAD_SD1_DAT6__SD1_DATA6 0x17059
0179 MX6SL_PAD_SD1_DAT7__SD1_DATA7 0x17059
0180 >;
0181 };
0182
0183 pinctrl_usdhc1_100mhz: usdhc1-100mhzgrp {
0184 fsl,pins = <
0185 MX6SL_PAD_SD1_CMD__SD1_CMD 0x170b9
0186 MX6SL_PAD_SD1_CLK__SD1_CLK 0x170b9
0187 MX6SL_PAD_SD1_DAT0__SD1_DATA0 0x170b9
0188 MX6SL_PAD_SD1_DAT1__SD1_DATA1 0x170b9
0189 MX6SL_PAD_SD1_DAT2__SD1_DATA2 0x170b9
0190 MX6SL_PAD_SD1_DAT3__SD1_DATA3 0x170b9
0191 MX6SL_PAD_SD1_DAT4__SD1_DATA4 0x170b9
0192 MX6SL_PAD_SD1_DAT5__SD1_DATA5 0x170b9
0193 MX6SL_PAD_SD1_DAT6__SD1_DATA6 0x170b9
0194 MX6SL_PAD_SD1_DAT7__SD1_DATA7 0x170b9
0195 >;
0196 };
0197
0198 pinctrl_usdhc1_200mhz: usdhc1-200mhzgrp {
0199 fsl,pins = <
0200 MX6SL_PAD_SD1_CMD__SD1_CMD 0x170f9
0201 MX6SL_PAD_SD1_CLK__SD1_CLK 0x170f9
0202 MX6SL_PAD_SD1_DAT0__SD1_DATA0 0x170f9
0203 MX6SL_PAD_SD1_DAT1__SD1_DATA1 0x170f9
0204 MX6SL_PAD_SD1_DAT2__SD1_DATA2 0x170f9
0205 MX6SL_PAD_SD1_DAT3__SD1_DATA3 0x170f9
0206 MX6SL_PAD_SD1_DAT4__SD1_DATA4 0x170b9
0207 MX6SL_PAD_SD1_DAT5__SD1_DATA5 0x170b9
0208 MX6SL_PAD_SD1_DAT6__SD1_DATA6 0x170b9
0209 MX6SL_PAD_SD1_DAT7__SD1_DATA7 0x170b9
0210 >;
0211 };
0212
0213 pinctrl_usdhc1_sleep: usdhc1-sleepgrp {
0214 fsl,pins = <
0215 MX6SL_PAD_SD1_CMD__SD1_CMD 0x10059
0216 MX6SL_PAD_SD1_CLK__SD1_CLK 0x10059
0217 MX6SL_PAD_SD1_DAT0__SD1_DATA0 0x10059
0218 MX6SL_PAD_SD1_DAT1__SD1_DATA1 0x10059
0219 MX6SL_PAD_SD1_DAT2__SD1_DATA2 0x10059
0220 MX6SL_PAD_SD1_DAT3__SD1_DATA3 0x10059
0221 MX6SL_PAD_SD1_DAT4__SD1_DATA4 0x10059
0222 MX6SL_PAD_SD1_DAT5__SD1_DATA5 0x10059
0223 MX6SL_PAD_SD1_DAT6__SD1_DATA6 0x10059
0224 MX6SL_PAD_SD1_DAT7__SD1_DATA7 0x10059
0225 >;
0226 };
0227
0228 pinctrl_usdhc3: usdhc3grp {
0229 fsl,pins = <
0230 MX6SL_PAD_SD3_CMD__SD3_CMD 0x11059
0231 MX6SL_PAD_SD3_CLK__SD3_CLK 0x11059
0232 MX6SL_PAD_SD3_DAT0__SD3_DATA0 0x11059
0233 MX6SL_PAD_SD3_DAT1__SD3_DATA1 0x11059
0234 MX6SL_PAD_SD3_DAT2__SD3_DATA2 0x11059
0235 MX6SL_PAD_SD3_DAT3__SD3_DATA3 0x11059
0236 >;
0237 };
0238
0239 pinctrl_usdhc3_100mhz: usdhc3-100mhzgrp {
0240 fsl,pins = <
0241 MX6SL_PAD_SD3_CMD__SD3_CMD 0x170b9
0242 MX6SL_PAD_SD3_CLK__SD3_CLK 0x170b9
0243 MX6SL_PAD_SD3_DAT0__SD3_DATA0 0x170b9
0244 MX6SL_PAD_SD3_DAT1__SD3_DATA1 0x170b9
0245 MX6SL_PAD_SD3_DAT2__SD3_DATA2 0x170b9
0246 MX6SL_PAD_SD3_DAT3__SD3_DATA3 0x170b9
0247 >;
0248 };
0249
0250 pinctrl_usdhc3_200mhz: usdhc3-200mhzgrp {
0251 fsl,pins = <
0252 MX6SL_PAD_SD3_CMD__SD3_CMD 0x170f9
0253 MX6SL_PAD_SD3_CLK__SD3_CLK 0x170f9
0254 MX6SL_PAD_SD3_DAT0__SD3_DATA0 0x170f9
0255 MX6SL_PAD_SD3_DAT1__SD3_DATA1 0x170f9
0256 MX6SL_PAD_SD3_DAT2__SD3_DATA2 0x170f9
0257 MX6SL_PAD_SD3_DAT3__SD3_DATA3 0x170f9
0258 >;
0259 };
0260
0261 pinctrl_usdhc3_sleep: usdhc3-sleepgrp {
0262 fsl,pins = <
0263 MX6SL_PAD_SD3_CMD__GPIO5_IO21 0x100c1
0264 MX6SL_PAD_SD3_CLK__GPIO5_IO18 0x100c1
0265 MX6SL_PAD_SD3_DAT0__GPIO5_IO19 0x100c1
0266 MX6SL_PAD_SD3_DAT1__GPIO5_IO20 0x100c1
0267 MX6SL_PAD_SD3_DAT2__GPIO5_IO16 0x100c1
0268 MX6SL_PAD_SD3_DAT3__GPIO5_IO17 0x100c1
0269 >;
0270 };
0271
0272 pinctrl_wifi_power: wifi-powergrp {
0273 fsl,pins = <
0274 MX6SL_PAD_SD2_DAT6__GPIO4_IO29 0x10059 /* WIFI_3V3_ON */
0275 >;
0276 };
0277
0278 pinctrl_wifi_reset: wifi-resetgrp {
0279 fsl,pins = <
0280 MX6SL_PAD_SD2_DAT7__GPIO5_IO00 0x10059 /* WIFI_RST */
0281 >;
0282 };
0283 };
0284
0285 &leds {
0286 pinctrl-names = "default";
0287 pinctrl-0 = <&pinctrl_led>;
0288 };
0289
0290 &lm3630a {
0291 pinctrl-names = "default";
0292 pinctrl-0 = <&pinctrl_lm3630a_bl_gpio>;
0293 };
0294
0295 ®_wifi {
0296 pinctrl-names = "default";
0297 pinctrl-0 = <&pinctrl_wifi_power>;
0298 };
0299
0300 ®_vdd1p1 {
0301 vin-supply = <&dcdc2_reg>;
0302 };
0303
0304 ®_vdd2p5 {
0305 vin-supply = <&dcdc2_reg>;
0306 };
0307
0308 ®_arm {
0309 vin-supply = <&dcdc3_reg>;
0310 };
0311
0312 ®_soc {
0313 vin-supply = <&dcdc1_reg>;
0314 };
0315
0316 ®_pu {
0317 vin-supply = <&dcdc1_reg>;
0318 };
0319
0320 &ricoh619 {
0321 pinctrl-names = "default";
0322 pinctrl-0 = <&pinctrl_ricoh_gpio>;
0323 };
0324
0325 &uart1 {
0326 pinctrl-names = "default";
0327 pinctrl-0 = <&pinctrl_uart1>;
0328 };
0329
0330 &usdhc1 {
0331 pinctrl-names = "default", "state_100mhz", "state_200mhz","sleep";
0332 pinctrl-0 = <&pinctrl_usdhc1>;
0333 pinctrl-1 = <&pinctrl_usdhc1_100mhz>;
0334 pinctrl-2 = <&pinctrl_usdhc1_200mhz>;
0335 pinctrl-3 = <&pinctrl_usdhc1_sleep>;
0336 };
0337
0338 &usdhc3 {
0339 pinctrl-names = "default", "state_100mhz", "state_200mhz","sleep";
0340 pinctrl-0 = <&pinctrl_usdhc3>;
0341 pinctrl-1 = <&pinctrl_usdhc3_100mhz>;
0342 pinctrl-2 = <&pinctrl_usdhc3_200mhz>;
0343 pinctrl-3 = <&pinctrl_usdhc3_sleep>;
0344 };
0345
0346 &wifi_pwrseq {
0347 pinctrl-names = "default";
0348 pinctrl-0 = <&pinctrl_wifi_reset>;
0349 };