imx6sl-tolino-vision5.dts 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349
  1. // SPDX-License-Identifier: (GPL-2.0)
  2. /*
  3. * Device tree for the Tolino Vision 5 ebook reader
  4. *
  5. * Name on mainboard is: 37NB-E70K0M+6A3
  6. * Serials start with: E70K02 (a number also seen in
  7. * vendor kernel sources)
  8. *
  9. * This mainboard seems to be equipped with different SoCs.
  10. * In the Tolino Vision 5 ebook reader it is a i.MX6SL
  11. *
  12. * Copyright 2021 Andreas Kemnade
  13. * based on works
  14. * Copyright 2016 Freescale Semiconductor, Inc.
  15. */
  16. /dts-v1/;
  17. #include <dt-bindings/input/input.h>
  18. #include <dt-bindings/gpio/gpio.h>
  19. #include "imx6sl.dtsi"
  20. #include "e70k02.dtsi"
  21. / {
  22. model = "Tolino Vision 5";
  23. compatible = "kobo,tolino-vision5", "fsl,imx6sl";
  24. };
  25. &gpio_keys {
  26. pinctrl-names = "default";
  27. pinctrl-0 = <&pinctrl_gpio_keys>;
  28. };
  29. &i2c1 {
  30. pinctrl-names = "default","sleep";
  31. pinctrl-0 = <&pinctrl_i2c1>;
  32. pinctrl-1 = <&pinctrl_i2c1_sleep>;
  33. };
  34. &i2c2 {
  35. pinctrl-names = "default","sleep";
  36. pinctrl-0 = <&pinctrl_i2c2>;
  37. pinctrl-1 = <&pinctrl_i2c2_sleep>;
  38. };
  39. &i2c3 {
  40. pinctrl-names = "default";
  41. pinctrl-0 = <&pinctrl_i2c3>;
  42. };
  43. &iomuxc {
  44. pinctrl-names = "default";
  45. pinctrl-0 = <&pinctrl_hog>;
  46. pinctrl_gpio_keys: gpio-keysgrp {
  47. fsl,pins = <
  48. MX6SL_PAD_FEC_CRS_DV__GPIO4_IO25 0x17059 /* PWR_SW */
  49. MX6SL_PAD_FEC_MDC__GPIO4_IO23 0x17059 /* HALL_EN */
  50. MX6SL_PAD_KEY_COL4__GPIO4_IO00 0x17059 /* PAGE_UP */
  51. MX6SL_PAD_KEY_COL5__GPIO4_IO02 0x17059 /* PAGE_DOWN */
  52. >;
  53. };
  54. pinctrl_hog: hoggrp {
  55. fsl,pins = <
  56. MX6SL_PAD_LCD_DAT1__GPIO2_IO21 0x79
  57. MX6SL_PAD_LCD_DAT4__GPIO2_IO24 0x79
  58. MX6SL_PAD_LCD_DAT5__GPIO2_IO25 0x79
  59. MX6SL_PAD_LCD_DAT6__GPIO2_IO26 0x79
  60. MX6SL_PAD_LCD_DAT7__GPIO2_IO27 0x79
  61. MX6SL_PAD_LCD_DAT8__GPIO2_IO28 0x79
  62. MX6SL_PAD_LCD_DAT9__GPIO2_IO29 0x79
  63. MX6SL_PAD_LCD_DAT10__GPIO2_IO30 0x79
  64. MX6SL_PAD_LCD_DAT11__GPIO2_IO31 0x79
  65. MX6SL_PAD_LCD_DAT12__GPIO3_IO00 0x79
  66. MX6SL_PAD_LCD_DAT13__GPIO3_IO01 0x79
  67. MX6SL_PAD_LCD_DAT14__GPIO3_IO02 0x79
  68. MX6SL_PAD_LCD_DAT15__GPIO3_IO03 0x79
  69. MX6SL_PAD_LCD_DAT16__GPIO3_IO04 0x79
  70. MX6SL_PAD_LCD_DAT17__GPIO3_IO05 0x79
  71. MX6SL_PAD_LCD_DAT18__GPIO3_IO06 0x79
  72. MX6SL_PAD_LCD_DAT19__GPIO3_IO07 0x79
  73. MX6SL_PAD_LCD_DAT20__GPIO3_IO08 0x79
  74. MX6SL_PAD_LCD_DAT21__GPIO3_IO09 0x79
  75. MX6SL_PAD_LCD_DAT22__GPIO3_IO10 0x79
  76. MX6SL_PAD_LCD_DAT23__GPIO3_IO11 0x79
  77. MX6SL_PAD_LCD_CLK__GPIO2_IO15 0x79
  78. MX6SL_PAD_LCD_ENABLE__GPIO2_IO16 0x79
  79. MX6SL_PAD_LCD_HSYNC__GPIO2_IO17 0x79
  80. MX6SL_PAD_LCD_VSYNC__GPIO2_IO18 0x79
  81. MX6SL_PAD_LCD_RESET__GPIO2_IO19 0x79
  82. MX6SL_PAD_FEC_TX_CLK__GPIO4_IO21 0x79
  83. MX6SL_PAD_FEC_REF_CLK__GPIO4_IO26 0x79
  84. MX6SL_PAD_KEY_COL3__GPIO3_IO30 0x79
  85. MX6SL_PAD_KEY_ROW7__GPIO4_IO07 0x79
  86. MX6SL_PAD_ECSPI2_MOSI__GPIO4_IO13 0x79
  87. >;
  88. };
  89. pinctrl_i2c1: i2c1grp {
  90. fsl,pins = <
  91. MX6SL_PAD_I2C1_SCL__I2C1_SCL 0x4001f8b1
  92. MX6SL_PAD_I2C1_SDA__I2C1_SDA 0x4001f8b1
  93. >;
  94. };
  95. pinctrl_i2c1_sleep: i2c1grp-sleep {
  96. fsl,pins = <
  97. MX6SL_PAD_I2C1_SCL__I2C1_SCL 0x400108b1
  98. MX6SL_PAD_I2C1_SDA__I2C1_SDA 0x400108b1
  99. >;
  100. };
  101. pinctrl_i2c2: i2c2grp {
  102. fsl,pins = <
  103. MX6SL_PAD_I2C2_SCL__I2C2_SCL 0x4001f8b1
  104. MX6SL_PAD_I2C2_SDA__I2C2_SDA 0x4001f8b1
  105. >;
  106. };
  107. pinctrl_i2c2_sleep: i2c2grp-sleep {
  108. fsl,pins = <
  109. MX6SL_PAD_I2C2_SCL__I2C2_SCL 0x400108b1
  110. MX6SL_PAD_I2C2_SDA__I2C2_SDA 0x400108b1
  111. >;
  112. };
  113. pinctrl_i2c3: i2c3grp {
  114. fsl,pins = <
  115. MX6SL_PAD_REF_CLK_24M__I2C3_SCL 0x4001f8b1
  116. MX6SL_PAD_REF_CLK_32K__I2C3_SDA 0x4001f8b1
  117. >;
  118. };
  119. pinctrl_led: ledgrp {
  120. fsl,pins = <
  121. MX6SL_PAD_FEC_RXD0__GPIO4_IO17 0x10059
  122. >;
  123. };
  124. pinctrl_lm3630a_bl_gpio: lm3630a-bl-gpiogrp {
  125. fsl,pins = <
  126. MX6SL_PAD_EPDC_PWRCTRL3__GPIO2_IO10 0x10059 /* HWEN */
  127. >;
  128. };
  129. pinctrl_ricoh_gpio: ricoh-gpiogrp {
  130. fsl,pins = <
  131. MX6SL_PAD_FEC_MDIO__GPIO4_IO20 0x1b8b1 /* ricoh619 chg */
  132. MX6SL_PAD_FEC_RX_ER__GPIO4_IO19 0x1b8b1 /* ricoh619 irq */
  133. MX6SL_PAD_KEY_COL2__GPIO3_IO28 0x1b8b1 /* ricoh619 bat_low_int */
  134. >;
  135. };
  136. pinctrl_uart1: uart1grp {
  137. fsl,pins = <
  138. MX6SL_PAD_UART1_TXD__UART1_TX_DATA 0x1b0b1
  139. MX6SL_PAD_UART1_RXD__UART1_RX_DATA 0x1b0b1
  140. >;
  141. };
  142. pinctrl_usbotg1: usbotg1grp {
  143. fsl,pins = <
  144. MX6SL_PAD_EPDC_PWRCOM__USB_OTG1_ID 0x17059
  145. >;
  146. };
  147. pinctrl_usdhc1: usdhc1grp {
  148. fsl,pins = <
  149. MX6SL_PAD_SD1_CMD__SD1_CMD 0x17059
  150. MX6SL_PAD_SD1_CLK__SD1_CLK 0x17059
  151. MX6SL_PAD_SD1_DAT0__SD1_DATA0 0x17059
  152. MX6SL_PAD_SD1_DAT1__SD1_DATA1 0x17059
  153. MX6SL_PAD_SD1_DAT2__SD1_DATA2 0x17059
  154. MX6SL_PAD_SD1_DAT3__SD1_DATA3 0x17059
  155. MX6SL_PAD_SD1_DAT4__SD1_DATA4 0x17059
  156. MX6SL_PAD_SD1_DAT5__SD1_DATA5 0x17059
  157. MX6SL_PAD_SD1_DAT6__SD1_DATA6 0x17059
  158. MX6SL_PAD_SD1_DAT7__SD1_DATA7 0x17059
  159. >;
  160. };
  161. pinctrl_usdhc1_100mhz: usdhc1-100mhzgrp {
  162. fsl,pins = <
  163. MX6SL_PAD_SD1_CMD__SD1_CMD 0x170b9
  164. MX6SL_PAD_SD1_CLK__SD1_CLK 0x170b9
  165. MX6SL_PAD_SD1_DAT0__SD1_DATA0 0x170b9
  166. MX6SL_PAD_SD1_DAT1__SD1_DATA1 0x170b9
  167. MX6SL_PAD_SD1_DAT2__SD1_DATA2 0x170b9
  168. MX6SL_PAD_SD1_DAT3__SD1_DATA3 0x170b9
  169. MX6SL_PAD_SD1_DAT4__SD1_DATA4 0x170b9
  170. MX6SL_PAD_SD1_DAT5__SD1_DATA5 0x170b9
  171. MX6SL_PAD_SD1_DAT6__SD1_DATA6 0x170b9
  172. MX6SL_PAD_SD1_DAT7__SD1_DATA7 0x170b9
  173. >;
  174. };
  175. pinctrl_usdhc1_200mhz: usdhc1-200mhzgrp {
  176. fsl,pins = <
  177. MX6SL_PAD_SD1_CMD__SD1_CMD 0x170f9
  178. MX6SL_PAD_SD1_CLK__SD1_CLK 0x170f9
  179. MX6SL_PAD_SD1_DAT0__SD1_DATA0 0x170f9
  180. MX6SL_PAD_SD1_DAT1__SD1_DATA1 0x170f9
  181. MX6SL_PAD_SD1_DAT2__SD1_DATA2 0x170f9
  182. MX6SL_PAD_SD1_DAT3__SD1_DATA3 0x170f9
  183. MX6SL_PAD_SD1_DAT4__SD1_DATA4 0x170b9
  184. MX6SL_PAD_SD1_DAT5__SD1_DATA5 0x170b9
  185. MX6SL_PAD_SD1_DAT6__SD1_DATA6 0x170b9
  186. MX6SL_PAD_SD1_DAT7__SD1_DATA7 0x170b9
  187. >;
  188. };
  189. pinctrl_usdhc1_sleep: usdhc1-sleepgrp {
  190. fsl,pins = <
  191. MX6SL_PAD_SD1_CMD__SD1_CMD 0x10059
  192. MX6SL_PAD_SD1_CLK__SD1_CLK 0x10059
  193. MX6SL_PAD_SD1_DAT0__SD1_DATA0 0x10059
  194. MX6SL_PAD_SD1_DAT1__SD1_DATA1 0x10059
  195. MX6SL_PAD_SD1_DAT2__SD1_DATA2 0x10059
  196. MX6SL_PAD_SD1_DAT3__SD1_DATA3 0x10059
  197. MX6SL_PAD_SD1_DAT4__SD1_DATA4 0x10059
  198. MX6SL_PAD_SD1_DAT5__SD1_DATA5 0x10059
  199. MX6SL_PAD_SD1_DAT6__SD1_DATA6 0x10059
  200. MX6SL_PAD_SD1_DAT7__SD1_DATA7 0x10059
  201. >;
  202. };
  203. pinctrl_usdhc3: usdhc3grp {
  204. fsl,pins = <
  205. MX6SL_PAD_SD3_CMD__SD3_CMD 0x11059
  206. MX6SL_PAD_SD3_CLK__SD3_CLK 0x11059
  207. MX6SL_PAD_SD3_DAT0__SD3_DATA0 0x11059
  208. MX6SL_PAD_SD3_DAT1__SD3_DATA1 0x11059
  209. MX6SL_PAD_SD3_DAT2__SD3_DATA2 0x11059
  210. MX6SL_PAD_SD3_DAT3__SD3_DATA3 0x11059
  211. >;
  212. };
  213. pinctrl_usdhc3_100mhz: usdhc3-100mhzgrp {
  214. fsl,pins = <
  215. MX6SL_PAD_SD3_CMD__SD3_CMD 0x170b9
  216. MX6SL_PAD_SD3_CLK__SD3_CLK 0x170b9
  217. MX6SL_PAD_SD3_DAT0__SD3_DATA0 0x170b9
  218. MX6SL_PAD_SD3_DAT1__SD3_DATA1 0x170b9
  219. MX6SL_PAD_SD3_DAT2__SD3_DATA2 0x170b9
  220. MX6SL_PAD_SD3_DAT3__SD3_DATA3 0x170b9
  221. >;
  222. };
  223. pinctrl_usdhc3_200mhz: usdhc3-200mhzgrp {
  224. fsl,pins = <
  225. MX6SL_PAD_SD3_CMD__SD3_CMD 0x170f9
  226. MX6SL_PAD_SD3_CLK__SD3_CLK 0x170f9
  227. MX6SL_PAD_SD3_DAT0__SD3_DATA0 0x170f9
  228. MX6SL_PAD_SD3_DAT1__SD3_DATA1 0x170f9
  229. MX6SL_PAD_SD3_DAT2__SD3_DATA2 0x170f9
  230. MX6SL_PAD_SD3_DAT3__SD3_DATA3 0x170f9
  231. >;
  232. };
  233. pinctrl_usdhc3_sleep: usdhc3-sleepgrp {
  234. fsl,pins = <
  235. MX6SL_PAD_SD3_CMD__GPIO5_IO21 0x100c1
  236. MX6SL_PAD_SD3_CLK__GPIO5_IO18 0x100c1
  237. MX6SL_PAD_SD3_DAT0__GPIO5_IO19 0x100c1
  238. MX6SL_PAD_SD3_DAT1__GPIO5_IO20 0x100c1
  239. MX6SL_PAD_SD3_DAT2__GPIO5_IO16 0x100c1
  240. MX6SL_PAD_SD3_DAT3__GPIO5_IO17 0x100c1
  241. >;
  242. };
  243. pinctrl_wifi_power: wifi-powergrp {
  244. fsl,pins = <
  245. MX6SL_PAD_SD2_DAT6__GPIO4_IO29 0x10059 /* WIFI_3V3_ON */
  246. >;
  247. };
  248. pinctrl_wifi_reset: wifi-resetgrp {
  249. fsl,pins = <
  250. MX6SL_PAD_SD2_DAT7__GPIO5_IO00 0x10059 /* WIFI_RST */
  251. >;
  252. };
  253. };
  254. &leds {
  255. pinctrl-names = "default";
  256. pinctrl-0 = <&pinctrl_led>;
  257. };
  258. &lm3630a {
  259. pinctrl-names = "default";
  260. pinctrl-0 = <&pinctrl_lm3630a_bl_gpio>;
  261. };
  262. &reg_wifi {
  263. pinctrl-names = "default";
  264. pinctrl-0 = <&pinctrl_wifi_power>;
  265. };
  266. &reg_vdd1p1 {
  267. vin-supply = <&dcdc2_reg>;
  268. };
  269. &reg_vdd2p5 {
  270. vin-supply = <&dcdc2_reg>;
  271. };
  272. &reg_arm {
  273. vin-supply = <&dcdc3_reg>;
  274. };
  275. &reg_soc {
  276. vin-supply = <&dcdc1_reg>;
  277. };
  278. &reg_pu {
  279. vin-supply = <&dcdc1_reg>;
  280. };
  281. &ricoh619 {
  282. pinctrl-names = "default";
  283. pinctrl-0 = <&pinctrl_ricoh_gpio>;
  284. };
  285. &uart1 {
  286. pinctrl-names = "default";
  287. pinctrl-0 = <&pinctrl_uart1>;
  288. };
  289. &usdhc1 {
  290. pinctrl-names = "default", "state_100mhz", "state_200mhz","sleep";
  291. pinctrl-0 = <&pinctrl_usdhc1>;
  292. pinctrl-1 = <&pinctrl_usdhc1_100mhz>;
  293. pinctrl-2 = <&pinctrl_usdhc1_200mhz>;
  294. pinctrl-3 = <&pinctrl_usdhc1_sleep>;
  295. };
  296. &usdhc3 {
  297. pinctrl-names = "default", "state_100mhz", "state_200mhz","sleep";
  298. pinctrl-0 = <&pinctrl_usdhc3>;
  299. pinctrl-1 = <&pinctrl_usdhc3_100mhz>;
  300. pinctrl-2 = <&pinctrl_usdhc3_200mhz>;
  301. pinctrl-3 = <&pinctrl_usdhc3_sleep>;
  302. };
  303. &wifi_pwrseq {
  304. pinctrl-names = "default";
  305. pinctrl-0 = <&pinctrl_wifi_reset>;
  306. };