ulcb-kf.dtsi 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499
  1. // SPDX-License-Identifier: GPL-2.0
  2. /*
  3. * Device Tree Source for the Kingfisher (ULCB extension) board
  4. *
  5. * Copyright (C) 2017 Renesas Electronics Corp.
  6. * Copyright (C) 2017 Cogent Embedded, Inc.
  7. */
  8. /*
  9. * SSI-PCM3168A
  10. * aplay -D plughw:0,2 xxx.wav
  11. * arecord -D plughw:0,3 xxx.wav
  12. */
  13. / {
  14. aliases {
  15. serial1 = &hscif0;
  16. serial2 = &scif1;
  17. mmc2 = &sdhi3;
  18. };
  19. clksndsel: clksndsel {
  20. #clock-cells = <0>;
  21. compatible = "gpio-mux-clock";
  22. clocks = <&cs2000>, <&audio_clk_a>; /* clk8snd, clksnd */
  23. select-gpios = <&gpio_exp_75 13 GPIO_ACTIVE_HIGH>;
  24. };
  25. hdmi1-out {
  26. compatible = "hdmi-connector";
  27. type = "a";
  28. port {
  29. hdmi1_con: endpoint {
  30. remote-endpoint = <&adv7513_out>;
  31. };
  32. };
  33. };
  34. accel_3v3: regulator-acc-3v3 {
  35. compatible = "regulator-fixed";
  36. regulator-name = "accel-3v3";
  37. regulator-min-microvolt = <3300000>;
  38. regulator-max-microvolt = <3300000>;
  39. };
  40. hdmi_1v8: regulator-hdmi-1v8 {
  41. compatible = "regulator-fixed";
  42. regulator-name = "hdmi-1v8";
  43. regulator-min-microvolt = <1800000>;
  44. regulator-max-microvolt = <1800000>;
  45. };
  46. hdmi_3v3: regulator-hdmi-3v3 {
  47. compatible = "regulator-fixed";
  48. regulator-name = "hdmi-3v3";
  49. regulator-min-microvolt = <3300000>;
  50. regulator-max-microvolt = <3300000>;
  51. };
  52. snd_3p3v: regulator-snd_3p3v {
  53. compatible = "regulator-fixed";
  54. regulator-name = "snd-3.3v";
  55. regulator-min-microvolt = <3300000>;
  56. regulator-max-microvolt = <3300000>;
  57. };
  58. snd_vcc5v: regulator-snd_vcc5v {
  59. compatible = "regulator-fixed";
  60. regulator-name = "snd-vcc5v";
  61. regulator-min-microvolt = <5000000>;
  62. regulator-max-microvolt = <5000000>;
  63. };
  64. wlan_en: regulator-wlan_en {
  65. compatible = "regulator-fixed";
  66. regulator-name = "wlan-en-regulator";
  67. regulator-min-microvolt = <3300000>;
  68. regulator-max-microvolt = <3300000>;
  69. gpio = <&gpio_exp_74 4 GPIO_ACTIVE_HIGH>;
  70. startup-delay-us = <70000>;
  71. enable-active-high;
  72. };
  73. };
  74. &can0 {
  75. pinctrl-0 = <&can0_pins>;
  76. pinctrl-names = "default";
  77. status = "okay";
  78. };
  79. &can1 {
  80. pinctrl-0 = <&can1_pins>;
  81. pinctrl-names = "default";
  82. status = "okay";
  83. };
  84. &du {
  85. ports {
  86. port@0 {
  87. du_out_rgb: endpoint {
  88. remote-endpoint = <&adv7513_in>;
  89. };
  90. };
  91. };
  92. };
  93. &ehci0 {
  94. dr_mode = "otg";
  95. status = "okay";
  96. };
  97. &hscif0 {
  98. pinctrl-0 = <&hscif0_pins>;
  99. pinctrl-names = "default";
  100. uart-has-rtscts;
  101. status = "okay";
  102. };
  103. &hsusb {
  104. dr_mode = "otg";
  105. status = "okay";
  106. };
  107. &i2c2 {
  108. i2cswitch2: i2c-switch@71 {
  109. compatible = "nxp,pca9548";
  110. #address-cells = <1>;
  111. #size-cells = <0>;
  112. reg = <0x71>;
  113. reset-gpios = <&gpio5 3 GPIO_ACTIVE_LOW>;
  114. /* HDMIoSDA, HDMIoSCL */
  115. i2c@4 {
  116. #address-cells = <1>;
  117. #size-cells = <0>;
  118. reg = <4>;
  119. hdmi@3d {
  120. compatible = "adi,adv7513";
  121. reg = <0x3d>;
  122. pinctrl-0 = <&hdmi1_pins>;
  123. pinctrl-names = "default";
  124. interrupt-parent = <&gpio2>;
  125. interrupts = <14 IRQ_TYPE_LEVEL_LOW>;
  126. clocks = <&cs2000>;
  127. clock-names = "cec";
  128. pd-gpios = <&gpio_exp_75 5 GPIO_ACTIVE_LOW>;
  129. avdd-supply = <&hdmi_1v8>;
  130. dvdd-supply = <&hdmi_1v8>;
  131. pvdd-supply = <&hdmi_1v8>;
  132. dvdd-3v-supply = <&hdmi_3v3>;
  133. bgvdd-supply = <&hdmi_1v8>;
  134. adi,input-depth = <8>;
  135. adi,input-colorspace = "rgb";
  136. adi,input-clock = "1x";
  137. ports {
  138. #address-cells = <1>;
  139. #size-cells = <0>;
  140. port@0 {
  141. reg = <0>;
  142. adv7513_in: endpoint {
  143. remote-endpoint = <&du_out_rgb>;
  144. };
  145. };
  146. port@1 {
  147. reg = <1>;
  148. adv7513_out: endpoint {
  149. remote-endpoint = <&hdmi1_con>;
  150. };
  151. };
  152. };
  153. };
  154. };
  155. /* Audio_SDA, Audio_SCL */
  156. i2c@7 {
  157. #address-cells = <1>;
  158. #size-cells = <0>;
  159. reg = <7>;
  160. accelerometer@1d {
  161. compatible = "st,lsm9ds0-imu";
  162. reg = <0x1d>;
  163. vdd-supply = <&accel_3v3>;
  164. vddio-supply = <&accel_3v3>;
  165. };
  166. pcm3168a: audio-codec@44 {
  167. #sound-dai-cells = <0>;
  168. compatible = "ti,pcm3168a";
  169. reg = <0x44>;
  170. clocks = <&clksndsel>;
  171. clock-names = "scki";
  172. VDD1-supply = <&snd_3p3v>;
  173. VDD2-supply = <&snd_3p3v>;
  174. VCCAD1-supply = <&snd_vcc5v>;
  175. VCCAD2-supply = <&snd_vcc5v>;
  176. VCCDA1-supply = <&snd_vcc5v>;
  177. VCCDA2-supply = <&snd_vcc5v>;
  178. ports {
  179. #address-cells = <1>;
  180. #size-cells = <0>;
  181. mclk-fs = <512>;
  182. port@0 {
  183. reg = <0>;
  184. pcm3168a_endpoint_p: endpoint {
  185. remote-endpoint = <&rsnd_for_pcm3168a_play>;
  186. clocks = <&clksndsel>;
  187. };
  188. };
  189. port@1 {
  190. reg = <1>;
  191. pcm3168a_endpoint_c: endpoint {
  192. remote-endpoint = <&rsnd_for_pcm3168a_capture>;
  193. clocks = <&clksndsel>;
  194. };
  195. };
  196. };
  197. };
  198. gyroscope@6b {
  199. compatible = "st,lsm9ds0-gyro";
  200. reg = <0x6b>;
  201. vdd-supply = <&accel_3v3>;
  202. vddio-supply = <&accel_3v3>;
  203. };
  204. };
  205. };
  206. /* U11 */
  207. gpio_exp_74: gpio@74 {
  208. compatible = "ti,tca9539";
  209. reg = <0x74>;
  210. gpio-controller;
  211. #gpio-cells = <2>;
  212. interrupt-controller;
  213. interrupt-parent = <&gpio6>;
  214. interrupts = <8 IRQ_TYPE_EDGE_FALLING>;
  215. audio-out-off-hog {
  216. gpio-hog;
  217. gpios = <0 GPIO_ACTIVE_HIGH>; /* P00 */
  218. output-high;
  219. line-name = "Audio_Out_OFF";
  220. };
  221. hub-pwen-hog {
  222. gpio-hog;
  223. gpios = <6 GPIO_ACTIVE_HIGH>;
  224. output-high;
  225. line-name = "HUB pwen";
  226. };
  227. hub-rst-hog {
  228. gpio-hog;
  229. gpios = <7 GPIO_ACTIVE_HIGH>;
  230. output-high;
  231. line-name = "HUB rst";
  232. };
  233. otg-extlpn-hog {
  234. gpio-hog;
  235. gpios = <9 GPIO_ACTIVE_HIGH>;
  236. output-high;
  237. line-name = "OTG EXTLPn";
  238. };
  239. otg-offvbusn-hog {
  240. gpio-hog;
  241. gpios = <8 GPIO_ACTIVE_HIGH>;
  242. output-low;
  243. line-name = "OTG OFFVBUSn";
  244. };
  245. sd-wifi-mux-hog {
  246. gpio-hog;
  247. gpios = <5 GPIO_ACTIVE_HIGH>;
  248. output-low; /* Connect WL1837 */
  249. line-name = "SD WiFi mux";
  250. };
  251. snd-rst-hog {
  252. gpio-hog;
  253. gpios = <15 GPIO_ACTIVE_HIGH>; /* P17 */
  254. output-high;
  255. line-name = "SND_RST";
  256. };
  257. };
  258. /* U5 */
  259. gpio_exp_75: gpio@75 {
  260. compatible = "ti,tca9539";
  261. reg = <0x75>;
  262. gpio-controller;
  263. #gpio-cells = <2>;
  264. interrupt-controller;
  265. interrupt-parent = <&gpio6>;
  266. interrupts = <4 IRQ_TYPE_EDGE_FALLING>;
  267. };
  268. };
  269. &i2c4 {
  270. i2cswitch4: i2c-switch@71 {
  271. compatible = "nxp,pca9548";
  272. #address-cells = <1>;
  273. #size-cells = <0>;
  274. reg = <0x71>;
  275. reset-gpios = <&gpio3 15 GPIO_ACTIVE_LOW>;
  276. };
  277. gpio_exp_76: gpio@76 {
  278. compatible = "ti,tca9539";
  279. reg = <0x76>;
  280. gpio-controller;
  281. #gpio-cells = <2>;
  282. interrupt-controller;
  283. interrupt-parent = <&gpio7>;
  284. interrupts = <3 IRQ_TYPE_EDGE_FALLING>;
  285. };
  286. gpio_exp_77: gpio@77 {
  287. compatible = "ti,tca9539";
  288. reg = <0x77>;
  289. gpio-controller;
  290. #gpio-cells = <2>;
  291. interrupt-controller;
  292. interrupt-parent = <&gpio5>;
  293. interrupts = <9 IRQ_TYPE_EDGE_FALLING>;
  294. };
  295. };
  296. &ohci0 {
  297. dr_mode = "otg";
  298. status = "okay";
  299. };
  300. &pcie_bus_clk {
  301. clock-frequency = <100000000>;
  302. };
  303. &pciec0 {
  304. status = "okay";
  305. };
  306. &pciec1 {
  307. status = "okay";
  308. };
  309. &pfc {
  310. can0_pins: can0 {
  311. groups = "can0_data_a";
  312. function = "can0";
  313. };
  314. can1_pins: can1 {
  315. groups = "can1_data";
  316. function = "can1";
  317. };
  318. hdmi1_pins: hdmi1 {
  319. adv7513-interrupt {
  320. pins = "GP_2_14";
  321. bias-pull-up;
  322. };
  323. du {
  324. groups = "du_rgb888", "du_sync", "du_clk_out_0",
  325. "du_disp";
  326. function = "du";
  327. };
  328. };
  329. hscif0_pins: hscif0 {
  330. groups = "hscif0_data", "hscif0_ctrl";
  331. function = "hscif0";
  332. };
  333. scif1_pins: scif1 {
  334. groups = "scif1_data_b";
  335. function = "scif1";
  336. };
  337. sdhi3_pins: sdhi3 {
  338. groups = "sdhi3_data4", "sdhi3_ctrl";
  339. function = "sdhi3";
  340. power-source = <3300>;
  341. };
  342. sound_pcm_pins: sound-pcm {
  343. groups = "ssi349_ctrl", "ssi3_data", "ssi4_data";
  344. function = "ssi";
  345. };
  346. usb0_pins: usb0 {
  347. groups = "usb0";
  348. function = "usb0";
  349. };
  350. };
  351. &rcar_sound {
  352. pinctrl-0 = <&sound_pins
  353. &sound_clk_pins
  354. &sound_pcm_pins>;
  355. ports {
  356. /* rsnd_port0/1 are defined in ulcb.dtsi */
  357. rsnd_port2: port@2 {
  358. reg = <2>;
  359. rsnd_for_pcm3168a_play: endpoint {
  360. remote-endpoint = <&pcm3168a_endpoint_p>;
  361. bitclock-master;
  362. frame-master;
  363. dai-tdm-slot-num = <8>;
  364. playback = <&ssi3>;
  365. };
  366. };
  367. rsnd_port3: port@3 {
  368. reg = <3>;
  369. rsnd_for_pcm3168a_capture: endpoint {
  370. remote-endpoint = <&pcm3168a_endpoint_c>;
  371. bitclock-master;
  372. frame-master;
  373. dai-tdm-slot-num = <6>;
  374. capture = <&ssi4>;
  375. };
  376. };
  377. };
  378. };
  379. &scif1 {
  380. pinctrl-0 = <&scif1_pins>;
  381. pinctrl-names = "default";
  382. status = "okay";
  383. };
  384. &sdhi3 {
  385. pinctrl-0 = <&sdhi3_pins>;
  386. pinctrl-names = "default";
  387. vmmc-supply = <&wlan_en>;
  388. vqmmc-supply = <&wlan_en>;
  389. bus-width = <4>;
  390. no-1-8-v;
  391. non-removable;
  392. cap-power-off-card;
  393. keep-power-in-suspend;
  394. max-frequency = <26000000>;
  395. status = "okay";
  396. #address-cells = <1>;
  397. #size-cells = <0>;
  398. wlcore: wlcore@2 {
  399. compatible = "ti,wl1837";
  400. reg = <2>;
  401. interrupt-parent = <&gpio1>;
  402. interrupts = <25 IRQ_TYPE_EDGE_FALLING>;
  403. };
  404. };
  405. &sound_card {
  406. links = <&rsnd_port0 /* ak4613 */
  407. &rsnd_port1 /* HDMI0 */
  408. &rsnd_port2 /* pcm3168a playback */
  409. &rsnd_port3 /* pcm3168a capture */
  410. >;
  411. };
  412. &ssi4 {
  413. shared-pin;
  414. };
  415. &usb2_phy0 {
  416. pinctrl-0 = <&usb0_pins>;
  417. pinctrl-names = "default";
  418. status = "okay";
  419. };
  420. &xhci0 {
  421. status = "okay";
  422. };