imx6dl-b1x5pv2.dtsi 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413
  1. // SPDX-License-Identifier: GPL-2.0 or MIT
  2. //
  3. // Device Tree Source for General Electric B1x5Pv2
  4. // patient monitor series
  5. //
  6. // Copyright 2018-2021 General Electric Company
  7. // Copyright 2018-2021 Collabora
  8. #include <dt-bindings/input/input.h>
  9. #include "imx6dl-qmx6.dtsi"
  10. / {
  11. chosen {
  12. stdout-path = &uart3;
  13. };
  14. /* Do not allow frequencies above 800MHz */
  15. cpus {
  16. cpu@0 {
  17. operating-points = <
  18. /* kHz uV */
  19. 792000 1175000
  20. 396000 1150000
  21. >;
  22. fsl,soc-operating-points = <
  23. /* ARM kHz SOC-PU uV */
  24. 792000 1175000
  25. 396000 1175000
  26. >;
  27. };
  28. cpu@1 {
  29. operating-points = <
  30. /* kHz uV */
  31. 792000 1175000
  32. 396000 1150000
  33. >;
  34. fsl,soc-operating-points = <
  35. /* ARM kHz SOC-PU uV */
  36. 792000 1175000
  37. 396000 1175000
  38. >;
  39. };
  40. };
  41. reg_syspwr: regulator-12v {
  42. compatible = "regulator-fixed";
  43. regulator-name = "SYS_PWR";
  44. regulator-min-microvolt = <12000000>;
  45. regulator-max-microvolt = <12000000>;
  46. };
  47. reg_5v_pmc: regulator-5v-pmc {
  48. compatible = "regulator-fixed";
  49. regulator-name = "5V PMC";
  50. regulator-min-microvolt = <5000000>;
  51. regulator-max-microvolt = <5000000>;
  52. vin-supply = <&reg_syspwr>;
  53. };
  54. reg_5v: regulator-5v {
  55. compatible = "regulator-fixed";
  56. regulator-name = "5V";
  57. regulator-min-microvolt = <5000000>;
  58. regulator-max-microvolt = <5000000>;
  59. vin-supply = <&reg_syspwr>;
  60. };
  61. reg_3v3: regulator-3v3 {
  62. compatible = "regulator-fixed";
  63. regulator-name = "3V3";
  64. regulator-min-microvolt = <3300000>;
  65. regulator-max-microvolt = <3300000>;
  66. vin-supply = <&reg_syspwr>;
  67. };
  68. reg_5v0_audio: regulator-5v0-audio {
  69. compatible = "regulator-fixed";
  70. regulator-name = "5V0_AUDIO";
  71. regulator-min-microvolt = <5000000>;
  72. regulator-max-microvolt = <5000000>;
  73. vin-supply = <&reg_5v>;
  74. gpio = <&tca6424a 16 GPIO_ACTIVE_HIGH>;
  75. enable-active-high;
  76. /*
  77. * This must be always-on for da7212, which has some not
  78. * properly documented dependencies for it's speaker supply
  79. * pin. The issue manifests as speaker volume being very low.
  80. */
  81. regulator-always-on;
  82. };
  83. reg_3v3_audio: regulator-3v3-audio {
  84. compatible = "regulator-fixed";
  85. regulator-name = "3V3_AUDIO";
  86. regulator-min-microvolt = <3300000>;
  87. regulator-max-microvolt = <3300000>;
  88. vin-supply = <&reg_3v3>;
  89. pinctrl-0 = <&pinctrl_q7_hda_reset>;
  90. pinctrl-names = "default";
  91. gpio = <&gpio6 8 GPIO_ACTIVE_HIGH>;
  92. enable-active-high;
  93. };
  94. reg_2v5_audio: regulator-2v5-audio {
  95. compatible = "regulator-fixed";
  96. regulator-name = "2V5_AUDIO";
  97. regulator-min-microvolt = <2500000>;
  98. regulator-max-microvolt = <2500000>;
  99. regulator-always-on;
  100. vin-supply = <&reg_3v3_audio>;
  101. };
  102. reg_wlan: regulator-wlan {
  103. compatible = "regulator-fixed";
  104. regulator-name = "WLAN";
  105. regulator-min-microvolt = <3300000>;
  106. regulator-max-microvolt = <3300000>;
  107. vin-supply = <&reg_3v3>;
  108. pinctrl-names = "default";
  109. pinctrl-0 = <&pinctrl_q7_sdio_power>;
  110. gpio = <&gpio4 30 GPIO_ACTIVE_HIGH>;
  111. enable-active-high;
  112. startup-delay-us = <70000>;
  113. };
  114. reg_bl: regulator-backlight {
  115. compatible = "regulator-fixed";
  116. regulator-name = "LED_VCC";
  117. regulator-min-microvolt = <12000000>;
  118. regulator-max-microvolt = <12000000>;
  119. vin-supply = <&reg_syspwr>;
  120. pinctrl-0 = <&pinctrl_q7_lcd_power>;
  121. pinctrl-names = "default";
  122. gpio = <&gpio1 7 GPIO_ACTIVE_HIGH>;
  123. enable-active-high;
  124. };
  125. reg_lcd: regulator-lcd {
  126. compatible = "regulator-fixed";
  127. regulator-name = "LCD_5V";
  128. regulator-min-microvolt = <5000000>;
  129. regulator-max-microvolt = <5000000>;
  130. vin-supply = <&reg_5v>;
  131. };
  132. usb_power: regulator-usb-power {
  133. compatible = "regulator-fixed";
  134. regulator-name = "USB POWER";
  135. regulator-min-microvolt = <5000000>;
  136. regulator-max-microvolt = <5000000>;
  137. vin-supply = <&reg_5v>;
  138. };
  139. charger: battery-charger {
  140. compatible = "gpio-charger"; /* ti,bq24172 */
  141. charger-type = "mains";
  142. gpios = <&tca6424a 3 GPIO_ACTIVE_LOW>;
  143. charge-current-limit-gpios = <&tca6424a 11 GPIO_ACTIVE_HIGH>,
  144. <&tca6424a 12 GPIO_ACTIVE_HIGH>;
  145. charge-current-limit-mapping = <1300000 0x0>,
  146. <700000 0x1>,
  147. <0 0x2>;
  148. charge-status-gpios = <&tca6424a 6 GPIO_ACTIVE_HIGH>;
  149. };
  150. poweroff {
  151. compatible = "gpio-poweroff";
  152. pinctrl-names = "default";
  153. pinctrl-0 = <&pinctrl_q7_spi_cs1>;
  154. gpios = <&gpio4 25 GPIO_ACTIVE_LOW>;
  155. };
  156. power-button-key {
  157. compatible = "gpio-keys";
  158. pinctrl-names = "default";
  159. pinctrl-0 = <&pinctrl_q7_sleep_button>;
  160. power-button {
  161. label = "power button";
  162. gpios = <&gpio4 7 GPIO_ACTIVE_LOW>;
  163. linux,code = <KEY_POWER>;
  164. };
  165. };
  166. rotary-encoder-key {
  167. compatible = "gpio-keys";
  168. rotary-encoder-event {
  169. label = "rotary-encoder press";
  170. gpios = <&tca6424a 0 GPIO_ACTIVE_HIGH>;
  171. linux,code = <KEY_ENTER>;
  172. linux,can-disable;
  173. };
  174. };
  175. rotary-encoder {
  176. compatible = "rotary-encoder";
  177. pinctrl-names = "default";
  178. pinctrl-0 = <&pinctrl_q7_gpio2 &pinctrl_q7_gpio4>;
  179. gpios = <&gpio4 26 GPIO_ACTIVE_LOW>, <&gpio1 0 GPIO_ACTIVE_LOW>;
  180. rotary-encoder,relative-axis;
  181. rotary-encoder,steps-per-period = <2>;
  182. wakeup-source;
  183. };
  184. leds {
  185. compatible = "gpio-leds";
  186. pinctrl-names = "default";
  187. pinctrl-0 = <&pinctrl_q7_gpio1 &pinctrl_q7_gpio3 &pinctrl_q7_gpio5>;
  188. led-alarm1 {
  189. label = "alarm:red";
  190. gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
  191. };
  192. led-alarm2 {
  193. label = "alarm:yellow";
  194. gpios = <&gpio4 27 GPIO_ACTIVE_HIGH>;
  195. };
  196. led-alarm3 {
  197. label = "alarm:blue";
  198. gpios = <&gpio4 15 GPIO_ACTIVE_HIGH>;
  199. };
  200. };
  201. backlight: backlight {
  202. compatible = "pwm-backlight";
  203. pinctrl-names = "default";
  204. pinctrl-0 = <&pinctrl_q7_backlight_enable>;
  205. power-supply = <&reg_bl>;
  206. pwms = <&pwm4 0 5000000 0>;
  207. brightness-levels = <0 255>;
  208. num-interpolated-steps = <255>;
  209. default-brightness-level = <179>;
  210. enable-gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>;
  211. };
  212. panel {
  213. backlight = <&backlight>;
  214. power-supply = <&reg_lcd>;
  215. port {
  216. panel_in: endpoint {
  217. remote-endpoint = <&lvds0_out>;
  218. };
  219. };
  220. };
  221. sound {
  222. compatible = "simple-audio-card";
  223. simple-audio-card,name = "audio-card";
  224. simple-audio-card,format = "i2s";
  225. simple-audio-card,bitclock-master = <&dailink_master>;
  226. simple-audio-card,frame-master = <&dailink_master>;
  227. simple-audio-card,widgets = "Speaker", "Ext Spk";
  228. simple-audio-card,audio-routing = "Ext Spk", "LINE";
  229. simple-audio-card,cpu {
  230. sound-dai = <&ssi1>;
  231. };
  232. dailink_master: simple-audio-card,codec {
  233. sound-dai = <&codec>;
  234. };
  235. };
  236. clk_ext_audio_codec: clock-codec {
  237. compatible = "fixed-clock";
  238. #clock-cells = <0>;
  239. clock-frequency = <12288000>;
  240. };
  241. };
  242. &audmux {
  243. status = "okay";
  244. };
  245. &fec {
  246. status = "okay";
  247. };
  248. &hdmi {
  249. status = "okay";
  250. };
  251. &i2c1 {
  252. battery: battery@b {
  253. compatible = "ti,bq20z65", "sbs,sbs-battery";
  254. reg = <0x0b>;
  255. sbs,battery-detect-gpios = <&tca6424a 5 GPIO_ACTIVE_LOW>;
  256. sbs,i2c-retry-count = <5>;
  257. power-supplies = <&charger>;
  258. };
  259. codec: audio-codec@1a {
  260. compatible = "dlg,da7212";
  261. reg = <0x1a>;
  262. #sound-dai-cells = <0>;
  263. VDDA-supply = <&reg_2v5_audio>;
  264. VDDSP-supply = <&reg_5v0_audio>;
  265. VDDMIC-supply = <&reg_3v3_audio>;
  266. VDDIO-supply = <&reg_3v3_audio>;
  267. clocks = <&clk_ext_audio_codec>;
  268. clock-names = "mclk";
  269. };
  270. };
  271. &i2c5 {
  272. tca6424a: gpio-controller@22 {
  273. compatible = "ti,tca6424";
  274. reg = <0x22>;
  275. gpio-controller;
  276. #gpio-cells = <2>;
  277. vcc-supply = <&reg_3v3>;
  278. interrupt-parent = <&gpio7>;
  279. interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
  280. pinctrl-names = "default";
  281. pinctrl-0 = <&pinctrl_q7_gpio6>;
  282. interrupt-controller;
  283. #interrupt-cells = <2>;
  284. gpio-line-names = "GPIO_ROTOR#", "ACM_IO_INT", "TMP_SENSOR_IRQ", "AC_IN",
  285. "TF_S", "BATT_T", "LED_INC_CHAR", "ACM1_OCF",
  286. "ACM2_OCF", "ACM_IO_RST", "USB1_POWER_EN", "EGPIO_CC_CTL0",
  287. "EGPIO_CC_CTL1", "12V_OEMNBP_EN", "CP2105_RST", "",
  288. "SPEAKER_PA_EN", "ARM7_UPI_RESET", "ARM7_PWR_RST", "NURSE_CALL",
  289. "MARKER_EN", "EGPIO_TOUCH_RST", "PRESSURE_INT1", "PRESSURE_INT2";
  290. };
  291. tmp75: temperature-sensor@48 {
  292. compatible = "ti,tmp75";
  293. reg = <0x48>;
  294. vs-supply = <&reg_3v3>;
  295. interrupt-parent = <&tca6424a>;
  296. interrupts = <2 IRQ_TYPE_EDGE_FALLING>;
  297. };
  298. };
  299. &ldb {
  300. status = "okay";
  301. lvds0: lvds-channel@0 {
  302. status = "okay";
  303. fsl,data-mapping = "spwg";
  304. fsl,data-width = <24>;
  305. port@4 {
  306. reg = <4>;
  307. lvds0_out: endpoint {
  308. remote-endpoint = <&panel_in>;
  309. };
  310. };
  311. };
  312. };
  313. &pwm4 {
  314. status = "okay";
  315. };
  316. &ssi1 {
  317. fsl,mode = "i2s-slave";
  318. status = "okay";
  319. };
  320. &usbotg {
  321. vbus-supply = <&usb_power>;
  322. disable-over-current;
  323. dr_mode = "host";
  324. status = "okay";
  325. /*
  326. * TPS2051BDGN fault-gpio is connected to Q7[86] USB_0_1_OC_N.
  327. * On QMX6 this is not connceted to the i.MX6, but to the USB Hub
  328. * from &usbh1. This means, that we cannot easily detect and handle
  329. * over-current events. Fortunately the regulator limits the current
  330. * automatically, so the hardware is still protected.
  331. */
  332. };
  333. &usdhc4 {
  334. /* WiFi module */
  335. pinctrl-names = "default";
  336. pinctrl-0 = <&pinctrl_usdhc4>;
  337. bus-width = <4>;
  338. no-1-8-v;
  339. non-removable;
  340. wakeup-source;
  341. keep-power-in-suspend;
  342. cap-power-off-card;
  343. max-frequency = <25000000>;
  344. vmmc-supply = <&reg_wlan>;
  345. #address-cells = <1>;
  346. #size-cells = <0>;
  347. status = "okay";
  348. wlcore: wlcore@2 {
  349. compatible = "ti,wl1837";
  350. reg = <2>;
  351. pinctrl-names = "default";
  352. pinctrl-0 = <&pinctrl_q7_gpio7>;
  353. interrupt-parent = <&gpio4>;
  354. interrupts = <14 IRQ_TYPE_LEVEL_HIGH>;
  355. tcxo-clock-frequency = <26000000>;
  356. };
  357. };