imx6sll-kobo-clarahd.dts 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335
  1. // SPDX-License-Identifier: (GPL-2.0)
  2. /*
  3. * Device tree for the Kobo Clara HD ebook reader
  4. *
  5. * Name on mainboard is: 37NB-E60K00+4A4
  6. * Serials start with: E60K02 (a number also seen in
  7. * vendor kernel sources)
  8. *
  9. * This mainboard seems to be equipped with different SoCs.
  10. * In the Kobo Clara HD ebook reader it is an i.MX6SLL
  11. *
  12. * Copyright 2019 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 "imx6sll.dtsi"
  20. #include "e60k02.dtsi"
  21. / {
  22. model = "Kobo Clara HD";
  23. compatible = "kobo,clarahd", "fsl,imx6sll";
  24. };
  25. &clks {
  26. assigned-clocks = <&clks IMX6SLL_CLK_PLL4_AUDIO_DIV>;
  27. assigned-clock-rates = <393216000>;
  28. };
  29. &cpu0 {
  30. arm-supply = <&dcdc3_reg>;
  31. soc-supply = <&dcdc1_reg>;
  32. };
  33. &gpio_keys {
  34. pinctrl-names = "default";
  35. pinctrl-0 = <&pinctrl_gpio_keys>;
  36. };
  37. &i2c1 {
  38. pinctrl-names = "default","sleep";
  39. pinctrl-0 = <&pinctrl_i2c1>;
  40. pinctrl-1 = <&pinctrl_i2c1_sleep>;
  41. };
  42. &i2c2 {
  43. pinctrl-names = "default","sleep";
  44. pinctrl-0 = <&pinctrl_i2c2>;
  45. pinctrl-1 = <&pinctrl_i2c2_sleep>;
  46. };
  47. &i2c3 {
  48. pinctrl-names = "default";
  49. pinctrl-0 = <&pinctrl_i2c3>;
  50. };
  51. &iomuxc {
  52. pinctrl-names = "default";
  53. pinctrl-0 = <&pinctrl_hog>;
  54. pinctrl_gpio_keys: gpio-keysgrp {
  55. fsl,pins = <
  56. MX6SLL_PAD_SD1_DATA1__GPIO5_IO08 0x17059 /* PWR_SW */
  57. MX6SLL_PAD_SD1_DATA4__GPIO5_IO12 0x17059 /* HALL_EN */
  58. >;
  59. };
  60. pinctrl_hog: hoggrp {
  61. fsl,pins = <
  62. MX6SLL_PAD_LCD_DATA00__GPIO2_IO20 0x79
  63. MX6SLL_PAD_LCD_DATA01__GPIO2_IO21 0x79
  64. MX6SLL_PAD_LCD_DATA02__GPIO2_IO22 0x79
  65. MX6SLL_PAD_LCD_DATA03__GPIO2_IO23 0x79
  66. MX6SLL_PAD_LCD_DATA04__GPIO2_IO24 0x79
  67. MX6SLL_PAD_LCD_DATA05__GPIO2_IO25 0x79
  68. MX6SLL_PAD_LCD_DATA06__GPIO2_IO26 0x79
  69. MX6SLL_PAD_LCD_DATA07__GPIO2_IO27 0x79
  70. MX6SLL_PAD_LCD_DATA08__GPIO2_IO28 0x79
  71. MX6SLL_PAD_LCD_DATA09__GPIO2_IO29 0x79
  72. MX6SLL_PAD_LCD_DATA10__GPIO2_IO30 0x79
  73. MX6SLL_PAD_LCD_DATA11__GPIO2_IO31 0x79
  74. MX6SLL_PAD_LCD_DATA12__GPIO3_IO00 0x79
  75. MX6SLL_PAD_LCD_DATA13__GPIO3_IO01 0x79
  76. MX6SLL_PAD_LCD_DATA14__GPIO3_IO02 0x79
  77. MX6SLL_PAD_LCD_DATA15__GPIO3_IO03 0x79
  78. MX6SLL_PAD_LCD_DATA16__GPIO3_IO04 0x79
  79. MX6SLL_PAD_LCD_DATA17__GPIO3_IO05 0x79
  80. MX6SLL_PAD_LCD_DATA18__GPIO3_IO06 0x79
  81. MX6SLL_PAD_LCD_DATA19__GPIO3_IO07 0x79
  82. MX6SLL_PAD_LCD_DATA20__GPIO3_IO08 0x79
  83. MX6SLL_PAD_LCD_DATA21__GPIO3_IO09 0x79
  84. MX6SLL_PAD_LCD_DATA22__GPIO3_IO10 0x79
  85. MX6SLL_PAD_LCD_DATA23__GPIO3_IO11 0x79
  86. MX6SLL_PAD_LCD_CLK__GPIO2_IO15 0x79
  87. MX6SLL_PAD_LCD_ENABLE__GPIO2_IO16 0x79
  88. MX6SLL_PAD_LCD_HSYNC__GPIO2_IO17 0x79
  89. MX6SLL_PAD_LCD_VSYNC__GPIO2_IO18 0x79
  90. MX6SLL_PAD_LCD_RESET__GPIO2_IO19 0x79
  91. MX6SLL_PAD_KEY_COL3__GPIO3_IO30 0x79
  92. MX6SLL_PAD_KEY_ROW7__GPIO4_IO07 0x79
  93. MX6SLL_PAD_ECSPI2_MOSI__GPIO4_IO13 0x79
  94. MX6SLL_PAD_KEY_COL5__GPIO4_IO02 0x79
  95. >;
  96. };
  97. pinctrl_i2c1: i2c1grp {
  98. fsl,pins = <
  99. MX6SLL_PAD_I2C1_SCL__I2C1_SCL 0x4001f8b1
  100. MX6SLL_PAD_I2C1_SDA__I2C1_SDA 0x4001f8b1
  101. >;
  102. };
  103. pinctrl_i2c1_sleep: i2c1grp-sleep {
  104. fsl,pins = <
  105. MX6SLL_PAD_I2C1_SCL__I2C1_SCL 0x400108b1
  106. MX6SLL_PAD_I2C1_SDA__I2C1_SDA 0x400108b1
  107. >;
  108. };
  109. pinctrl_i2c2: i2c2grp {
  110. fsl,pins = <
  111. MX6SLL_PAD_I2C2_SCL__I2C2_SCL 0x4001f8b1
  112. MX6SLL_PAD_I2C2_SDA__I2C2_SDA 0x4001f8b1
  113. >;
  114. };
  115. pinctrl_i2c2_sleep: i2c2grp-sleep {
  116. fsl,pins = <
  117. MX6SLL_PAD_I2C2_SCL__I2C2_SCL 0x400108b1
  118. MX6SLL_PAD_I2C2_SDA__I2C2_SDA 0x400108b1
  119. >;
  120. };
  121. pinctrl_i2c3: i2c3grp {
  122. fsl,pins = <
  123. MX6SLL_PAD_REF_CLK_24M__I2C3_SCL 0x4001f8b1
  124. MX6SLL_PAD_REF_CLK_32K__I2C3_SDA 0x4001f8b1
  125. >;
  126. };
  127. pinctrl_led: ledgrp {
  128. fsl,pins = <
  129. MX6SLL_PAD_SD1_DATA6__GPIO5_IO07 0x17059
  130. >;
  131. };
  132. pinctrl_lm3630a_bl_gpio: lm3630a-bl-gpiogrp {
  133. fsl,pins = <
  134. MX6SLL_PAD_EPDC_PWR_CTRL3__GPIO2_IO10 0x10059 /* HWEN */
  135. >;
  136. };
  137. pinctrl_ricoh_gpio: ricoh-gpiogrp {
  138. fsl,pins = <
  139. MX6SLL_PAD_SD1_CLK__GPIO5_IO15 0x1b8b1 /* ricoh619 chg */
  140. MX6SLL_PAD_SD1_DATA0__GPIO5_IO11 0x1b8b1 /* ricoh619 irq */
  141. MX6SLL_PAD_KEY_COL2__GPIO3_IO28 0x1b8b1 /* ricoh619 bat_low_int */
  142. >;
  143. };
  144. pinctrl_uart1: uart1grp {
  145. fsl,pins = <
  146. MX6SLL_PAD_UART1_TXD__UART1_DCE_TX 0x1b0b1
  147. MX6SLL_PAD_UART1_RXD__UART1_DCE_RX 0x1b0b1
  148. >;
  149. };
  150. pinctrl_uart4: uart4grp {
  151. fsl,pins = <
  152. MX6SLL_PAD_KEY_ROW6__UART4_DCE_TX 0x1b0b1
  153. MX6SLL_PAD_KEY_COL6__UART4_DCE_RX 0x1b0b1
  154. >;
  155. };
  156. pinctrl_usbotg1: usbotg1grp {
  157. fsl,pins = <
  158. MX6SLL_PAD_EPDC_PWR_COM__USB_OTG1_ID 0x17059
  159. >;
  160. };
  161. pinctrl_usdhc2: usdhc2grp {
  162. fsl,pins = <
  163. MX6SLL_PAD_SD2_CMD__SD2_CMD 0x17059
  164. MX6SLL_PAD_SD2_CLK__SD2_CLK 0x13059
  165. MX6SLL_PAD_SD2_DATA0__SD2_DATA0 0x17059
  166. MX6SLL_PAD_SD2_DATA1__SD2_DATA1 0x17059
  167. MX6SLL_PAD_SD2_DATA2__SD2_DATA2 0x17059
  168. MX6SLL_PAD_SD2_DATA3__SD2_DATA3 0x17059
  169. >;
  170. };
  171. pinctrl_usdhc2_100mhz: usdhc2grp-100mhz {
  172. fsl,pins = <
  173. MX6SLL_PAD_SD2_CMD__SD2_CMD 0x170b9
  174. MX6SLL_PAD_SD2_CLK__SD2_CLK 0x130b9
  175. MX6SLL_PAD_SD2_DATA0__SD2_DATA0 0x170b9
  176. MX6SLL_PAD_SD2_DATA1__SD2_DATA1 0x170b9
  177. MX6SLL_PAD_SD2_DATA2__SD2_DATA2 0x170b9
  178. MX6SLL_PAD_SD2_DATA3__SD2_DATA3 0x170b9
  179. >;
  180. };
  181. pinctrl_usdhc2_200mhz: usdhc2grp-200mhz {
  182. fsl,pins = <
  183. MX6SLL_PAD_SD2_CMD__SD2_CMD 0x170f9
  184. MX6SLL_PAD_SD2_CLK__SD2_CLK 0x130f9
  185. MX6SLL_PAD_SD2_DATA0__SD2_DATA0 0x170f9
  186. MX6SLL_PAD_SD2_DATA1__SD2_DATA1 0x170f9
  187. MX6SLL_PAD_SD2_DATA2__SD2_DATA2 0x170f9
  188. MX6SLL_PAD_SD2_DATA3__SD2_DATA3 0x170f9
  189. >;
  190. };
  191. pinctrl_usdhc2_sleep: usdhc2grp-sleep {
  192. fsl,pins = <
  193. MX6SLL_PAD_SD2_CMD__GPIO5_IO04 0x100f9
  194. MX6SLL_PAD_SD2_CLK__GPIO5_IO05 0x100f9
  195. MX6SLL_PAD_SD2_DATA0__GPIO5_IO01 0x100f9
  196. MX6SLL_PAD_SD2_DATA1__GPIO4_IO30 0x100f9
  197. MX6SLL_PAD_SD2_DATA2__GPIO5_IO03 0x100f9
  198. MX6SLL_PAD_SD2_DATA3__GPIO4_IO28 0x100f9
  199. >;
  200. };
  201. pinctrl_usdhc3: usdhc3grp {
  202. fsl,pins = <
  203. MX6SLL_PAD_SD3_CMD__SD3_CMD 0x11059
  204. MX6SLL_PAD_SD3_CLK__SD3_CLK 0x11059
  205. MX6SLL_PAD_SD3_DATA0__SD3_DATA0 0x11059
  206. MX6SLL_PAD_SD3_DATA1__SD3_DATA1 0x11059
  207. MX6SLL_PAD_SD3_DATA2__SD3_DATA2 0x11059
  208. MX6SLL_PAD_SD3_DATA3__SD3_DATA3 0x11059
  209. >;
  210. };
  211. pinctrl_usdhc3_100mhz: usdhc3grp-100mhz {
  212. fsl,pins = <
  213. MX6SLL_PAD_SD3_CMD__SD3_CMD 0x170b9
  214. MX6SLL_PAD_SD3_CLK__SD3_CLK 0x170b9
  215. MX6SLL_PAD_SD3_DATA0__SD3_DATA0 0x170b9
  216. MX6SLL_PAD_SD3_DATA1__SD3_DATA1 0x170b9
  217. MX6SLL_PAD_SD3_DATA2__SD3_DATA2 0x170b9
  218. MX6SLL_PAD_SD3_DATA3__SD3_DATA3 0x170b9
  219. >;
  220. };
  221. pinctrl_usdhc3_200mhz: usdhc3grp-200mhz {
  222. fsl,pins = <
  223. MX6SLL_PAD_SD3_CMD__SD3_CMD 0x170f9
  224. MX6SLL_PAD_SD3_CLK__SD3_CLK 0x170f9
  225. MX6SLL_PAD_SD3_DATA0__SD3_DATA0 0x170f9
  226. MX6SLL_PAD_SD3_DATA1__SD3_DATA1 0x170f9
  227. MX6SLL_PAD_SD3_DATA2__SD3_DATA2 0x170f9
  228. MX6SLL_PAD_SD3_DATA3__SD3_DATA3 0x170f9
  229. >;
  230. };
  231. pinctrl_usdhc3_sleep: usdhc3grp-sleep {
  232. fsl,pins = <
  233. MX6SLL_PAD_SD3_CMD__GPIO5_IO21 0x100c1
  234. MX6SLL_PAD_SD3_CLK__GPIO5_IO18 0x100c1
  235. MX6SLL_PAD_SD3_DATA0__GPIO5_IO19 0x100c1
  236. MX6SLL_PAD_SD3_DATA1__GPIO5_IO20 0x100c1
  237. MX6SLL_PAD_SD3_DATA2__GPIO5_IO16 0x100c1
  238. MX6SLL_PAD_SD3_DATA3__GPIO5_IO17 0x100c1
  239. >;
  240. };
  241. pinctrl_wifi_power: wifi-powergrp {
  242. fsl,pins = <
  243. MX6SLL_PAD_SD2_DATA6__GPIO4_IO29 0x10059 /* WIFI_3V3_ON */
  244. >;
  245. };
  246. pinctrl_wifi_reset: wifi-resetgrp {
  247. fsl,pins = <
  248. MX6SLL_PAD_SD2_DATA7__GPIO5_IO00 0x10059 /* WIFI_RST */
  249. >;
  250. };
  251. };
  252. &leds {
  253. pinctrl-names = "default";
  254. pinctrl-0 = <&pinctrl_led>;
  255. };
  256. &lm3630a {
  257. pinctrl-names = "default";
  258. pinctrl-0 = <&pinctrl_lm3630a_bl_gpio>;
  259. };
  260. &reg_wifi {
  261. pinctrl-names = "default";
  262. pinctrl-0 = <&pinctrl_wifi_power>;
  263. };
  264. &ricoh619 {
  265. pinctrl-names = "default";
  266. pinctrl-0 = <&pinctrl_ricoh_gpio>;
  267. };
  268. &uart1 {
  269. pinctrl-names = "default";
  270. pinctrl-0 = <&pinctrl_uart1>;
  271. };
  272. &uart4 {
  273. pinctrl-names = "default";
  274. pinctrl-0 = <&pinctrl_uart4>;
  275. };
  276. &usdhc2 {
  277. pinctrl-names = "default", "state_100mhz", "state_200mhz","sleep";
  278. pinctrl-0 = <&pinctrl_usdhc2>;
  279. pinctrl-1 = <&pinctrl_usdhc2_100mhz>;
  280. pinctrl-2 = <&pinctrl_usdhc2_200mhz>;
  281. pinctrl-3 = <&pinctrl_usdhc2_sleep>;
  282. };
  283. &usdhc3 {
  284. pinctrl-names = "default", "state_100mhz", "state_200mhz","sleep";
  285. pinctrl-0 = <&pinctrl_usdhc3>;
  286. pinctrl-1 = <&pinctrl_usdhc3_100mhz>;
  287. pinctrl-2 = <&pinctrl_usdhc3_200mhz>;
  288. pinctrl-3 = <&pinctrl_usdhc3_sleep>;
  289. };
  290. &wifi_pwrseq {
  291. pinctrl-names = "default";
  292. pinctrl-0 = <&pinctrl_wifi_reset>;
  293. };