meson8b_odroidc.dts.multi 39 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097
  1. /dts-v1/;
  2. /{
  3. compatible = "AMLOGIC,8726_M8B";
  4. model = "AMLOGIC";
  5. interrupt-parent = <&gic>;
  6. #address-cells = <1>;
  7. #size-cells = <1>;
  8. cpus {
  9. #address-cells = <1>;
  10. #size-cells = <0>;
  11. cpu@0 {
  12. device_type = "cpu";
  13. compatible = "arm,cortex-a5";
  14. reg = <0x200>;
  15. };
  16. cpu@1 {
  17. device_type = "cpu";
  18. compatible = "arm,cortex-a5";
  19. reg = <0x1>;
  20. };
  21. cpu@2 {
  22. device_type = "cpu";
  23. compatible = "arm,cortex-a5";
  24. reg = <0x2>;
  25. };
  26. cpu@3 {
  27. device_type = "cpu";
  28. compatible = "arm,cortex-a5";
  29. reg = <0x3>;
  30. };
  31. };
  32. cache-controller {
  33. compatible = "arm,meson-pl310-cache";
  34. reg = <0xc4200000 0x1000>;
  35. arm,data-latency = <3 3 3>;
  36. arm,tag-latency = <2 2 2>;
  37. arm,filter-ranges = <0x100000 0xc0000000>;
  38. cache-unified;
  39. cache-level = <2>;
  40. aux-instruction_prefetch;
  41. aux-data_prefetch;
  42. aux-ns_lockdown;
  43. aux-force_no_write_alloc;
  44. aux-cache_replace_policy_round_robin;
  45. aux-early_write_response;
  46. aux-full_line_of_zero;
  47. aux-ns_int_ctrl;
  48. aux-share_override;
  49. prefetch-double_line_fill;
  50. prefetch-prefetch_drop;
  51. prefetch-prefetch_offset = <7>;
  52. };
  53. memory{
  54. device_type = "memory";
  55. aml_reserved_start = <0x06000000>; /**reserved memory start */
  56. aml_reserved_end = <0x05000000>;/**reserved memory end : dtb start for uboot*/
  57. phys_offset = <0x00200000>;
  58. linux,total-memory = <0x3fe00000>;
  59. #address-cells = <1>;
  60. #size-cells = <1>;
  61. cma_0:region@0 {
  62. region_name = "cma_0";
  63. reg = <0 0x02a00000>;
  64. linux,contiguous-region;
  65. };
  66. };
  67. gic:interrupt-controller{
  68. compatible = "arm,cortex-a9-gic";
  69. reg = <0xc4301000 0x1000
  70. 0xc4300100 0x0100>;
  71. interrupt-controller;
  72. #interrupt-cells = <3>;
  73. #address-cells = <0>;
  74. };
  75. meson-rng {
  76. compatible = "amlogic,meson-rng";
  77. status = "ok";
  78. };
  79. vpu{
  80. compatible = "amlogic,vpu";
  81. dev_name = "vpu";
  82. status = "ok";
  83. clk_level = <3>;
  84. };
  85. mesonfb{
  86. compatible = "amlogic,mesonfb";
  87. dev_name = "mesonfb";
  88. status = "okay";
  89. reserve-memory = <0x01800000 0x00100000>;
  90. reserve-iomap = "true";
  91. vmode = <0>; /**0:VMODE_720P 1:VMODE_LCD 2:VMODE_LVDS_1080P 3:VMODE_1080P*/
  92. scale_mode = <1>; /*0:default 1:new*/
  93. 4k2k_fb = <0>;
  94. display_size_default = <1280 720 1280 1440 32>; //1920*1080*4*3 = 0x17BB000
  95. };
  96. mesonstream{
  97. compatible = "amlogic,mesonstream";
  98. dev_name = "mesonstream.0";
  99. status = "okay";
  100. reserve-memory = <0x02000000>; // 32M
  101. reserve-iomap = "true";
  102. };
  103. vdec{
  104. compatible = "amlogic,vdec";
  105. dev_name = "vdec.0";
  106. status = "okay";
  107. reserve-memory = <0x04000000>; // 64M
  108. reserve-iomap = "true";
  109. };
  110. ppmgr{
  111. compatible = "amlogic,ppmgr";
  112. dev_name = "ppmgr";
  113. status = "okay";
  114. reserve-memory = <0x01000000>; // 16M
  115. };
  116. amvenc_avc{
  117. compatible = "amlogic,amvenc_avc";
  118. dev_name = "amvenc_avc.0";
  119. status = "okay";
  120. linux,contiguous-region = <&cma_0>;
  121. reserve-iomap = "true";
  122. };
  123. ion_dev{
  124. compatible = "amlogic,ion_dev";
  125. dev_name = "ion_dev";
  126. status = "okay";
  127. share-memory-name = "ppmgr0";
  128. share-memory-offset = <0>;
  129. share-memory-size = <0x01000000>; //16M
  130. };
  131. deinterlace{
  132. compatible = "amlogic,deinterlace";
  133. dev_name = "deinterlace";
  134. status = "okay";
  135. reserve-memory = <0x02100000>; //10x1920x1088x3/2=33M
  136. };
  137. mesonvout{
  138. compatible = "amlogic,mesonvout";
  139. dev_name = "mesonvout";
  140. status = "okay";
  141. };
  142. rtc{
  143. compatible = "amlogic,aml_rtc";
  144. status = "okay";
  145. };
  146. uart_ao{
  147. compatible = "amlogic,aml_uart";
  148. port_name = "uart_ao";
  149. status = "okay";
  150. dev_name = "uart_ao";
  151. pinctrl-names = "default";
  152. pinctrl-0 = <&ao_uart_pins>;
  153. };
  154. uart_1{
  155. compatible = "amlogic,aml_uart";
  156. port_name = "uart_b";
  157. status = "okay";
  158. dev_name = "uart_1";
  159. pinctrl-names = "default";
  160. pinctrl-0 = <&b_uart_pins>;
  161. };
  162. sdio{
  163. compatible = "amlogic,aml_sdio";
  164. dev_name = "aml_sdio.0";
  165. status = "okay";
  166. reg = <0xc1108c20 0x20>;
  167. pinctrl-names = "sd_clk_cmd_pins", "sd_all_pins", "emmc_clk_cmd_pins", "emmc_all_pins", "sdio_clk_cmd_pins", "sdio_all_pins","sd_1bit_pins"; // "jtag_pin", "uartao_default";
  168. pinctrl-0 = <&sd_clk_cmd_pins>;
  169. pinctrl-1 = <&sd_all_pins>;
  170. pinctrl-2 = <&emmc_clk_cmd_pins>;
  171. pinctrl-3 = <&emmc_all_pins>;
  172. pinctrl-4 = <&sdio_clk_cmd_pins>;
  173. pinctrl-5 = <&sdio_all_pins>;
  174. pinctrl-6 = <&sd_1bit_pins>;
  175. emmc{
  176. status = "okay";
  177. port = <2>; /**0:sdio_a, 1:sdio_b, 2:sdio_c, 3:sdhc_a, 4:sdhc_b, 5:sdhc_c */
  178. pinname = "emmc";
  179. ocr_avail = <0x200000>; /**VDD voltage 3.3 ~ 3.4 */
  180. caps = "MMC_CAP_4_BIT_DATA","MMC_CAP_MMC_HIGHSPEED","MMC_CAP_SD_HIGHSPEED", "MMC_CAP_NONREMOVABLE","MMC_CAP_ERASE", "MMC_CAP_HW_RESET"; // MMC_CAP_NEEDS_POLL -- for detect, MMC_CAP_NONREMOVABLE -- for eMMC/TSD
  181. caps2 = "MMC_CAP2_BOOTPART_NOACC";
  182. f_min = <300000>;
  183. f_max = <50000000>;
  184. f_max_w = <50000000>;
  185. max_req_size = <0x20000>; /**128KB*/
  186. gpio_dat3 = "BOOT_3";
  187. card_type = <1>; /* 0:unknown, 1:mmc card(include eMMC), 2:sd card(include tSD), 3:sdio device(ie:sdio-wifi), 4:SD combo (IO+mem) card, 5:NON sdio device(means sd/mmc card), other:reserved */
  188. };
  189. sd{
  190. status = "okay";
  191. port = <1>; /**0:sdio_a, 1:sdio_b, 2:sdio_c, 3:sdhc_a, 4:sdhc_b, 5:sdhc_c */
  192. pinname = "sd";
  193. ocr_avail = <0x200000>; /**VDD voltage 3.3 ~ 3.4 */
  194. caps = "MMC_CAP_4_BIT_DATA","MMC_CAP_MMC_HIGHSPEED","MMC_CAP_SD_HIGHSPEED";
  195. f_min = <300000>;
  196. f_max = <50000000>;
  197. f_max_w = <50000000>;
  198. max_req_size = <0x20000>; /**128KB*/
  199. gpio_dat3 = "CARD_4";
  200. gpio_cd = "CARD_6";
  201. gpio_volsw = "GPIOAO_3";
  202. irq_in = <3>;
  203. irq_out = <5>;
  204. card_type = <5>; /* 0:unknown, 1:mmc card(include eMMC), 2:sd card(include tSD), 3:sdio device(ie:sdio-wifi), 4:SD combo (IO+mem) card, 5:NON sdio device(means sd/mmc card), other:reserved */
  205. };
  206. };
  207. sdhc{
  208. compatible = "amlogic,aml_sdhc";
  209. dev_name = "aml_sdhc.0";
  210. status = "okay";
  211. reg = <0xc1108e00 0x3c>;
  212. pinctrl-names = "sdhc_sd_clk_cmd_pins", "sdhc_sd_all_pins", "sdhc_emmc_clk_cmd_pins", "sdhc_emmc_all_pins", "sdhc_sdio_clk_cmd_pins", "sdhc_sdio_all_pins";
  213. pinctrl-0 = <&sdhc_sd_clk_cmd_pins>;
  214. pinctrl-1 = <&sdhc_sd_all_pins>;
  215. pinctrl-2 = <&sdhc_emmc_clk_cmd_pins>;
  216. pinctrl-3 = <&sdhc_emmc_all_pins>;
  217. pinctrl-4 = <&sdhc_sdio_clk_cmd_pins>;
  218. pinctrl-5 = <&sdhc_sdio_all_pins>;
  219. //pinctrl-6 = <&sd_1bit_pins>;
  220. sd{
  221. status = "okay";
  222. port = <4>; /**0:sdhc_a, 1:sdio_b, 2:sdio_c, 3:sdhc_a, 4:sdhc_b, 5:sdhc_c */
  223. pinname = "sd";
  224. ocr_avail = <0x00200080>; // 3.3:0x200000, 1.8+3.3:0x00200080
  225. caps = "MMC_CAP_4_BIT_DATA","MMC_CAP_MMC_HIGHSPEED","MMC_CAP_SD_HIGHSPEED","MMC_CAP_UHS_SDR12","MMC_CAP_UHS_SDR25","MMC_CAP_UHS_SDR50","MMC_CAP_UHS_SDR104";
  226. f_min = <300000>;
  227. f_max = <100000000>;
  228. max_req_size = <0x20000>; /**128KB*/
  229. gpio_dat3 = "CARD_4";
  230. //jtag_pin = "CARD_0";
  231. gpio_cd = "CARD_6";
  232. //gpio_ro = "GPIOZ_0";
  233. gpio_volsw = "GPIOAO_3";
  234. irq_in = <3>;
  235. irq_out = <5>;
  236. card_type = <5>; /* 0:unknown, 1:mmc card(include eMMC), 2:sd card(include tSD), 3:sdio device(ie:sdio-wifi), 4:SD combo (IO+mem) card, 5:NON sdio device(means sd/mmc card), other:reserved */
  237. };
  238. emmc{
  239. status = "okay";
  240. port = <5>; /**0:sdio_a, 1:sdio_b, 2:sdio_c, 3:sdhc_a, 4:sdhc_b, 5:sdhc_c */
  241. pinname = "emmc";
  242. ocr_avail = <0x00200080>; /**VDD voltage 3.3 ~ 3.4 */
  243. caps = "MMC_CAP_8_BIT_DATA","MMC_CAP_MMC_HIGHSPEED","MMC_CAP_SD_HIGHSPEED", "MMC_CAP_NONREMOVABLE","MMC_CAP_ERASE", "MMC_CAP_HW_RESET"; // MMC_CAP_NEEDS_POLL -- for detect, MMC_CAP_NONREMOVABLE -- for eMMC/TSD
  244. caps2 = "MMC_CAP2_HS200_1_8V_SDR", "MMC_CAP2_BOOTPART_NOACC";
  245. f_min = <300000>;
  246. f_max = <100000000>;
  247. max_req_size = <0x20000>; /**128KB*/
  248. gpio_dat3 = "BOOT_3";
  249. card_type = <1>; /* 0:unknown, 1:mmc card(include eMMC), 2:sd card(include tSD), 3:sdio device(ie:sdio-wifi), 4:SD combo (IO+mem) card, 5:NON sdio device(means sd/mmc card), other:reserved */
  250. };
  251. };
  252. i2c@c1108500{ /*I2C-A*/
  253. compatible = "amlogic,aml_i2c";
  254. dev_name = "i2c-A";
  255. status = "ok";
  256. reg = <0xc1108500 0x20>;
  257. device_id = <1>;
  258. pinctrl-names="default";
  259. pinctrl-0=<&a_i2c_master>;
  260. #address-cells = <1>;
  261. #size-cells = <0>;
  262. use_pio = <0>;
  263. master_i2c_speed = <100000>;
  264. };
  265. i2c@c11087c0{ /*I2C-B*/
  266. compatible = "amlogic,aml_i2c";
  267. dev_name = "i2c-B";
  268. status = "ok";
  269. reg = <0xc11087c0 0x20>;
  270. device_id = <2>;
  271. pinctrl-names="default";
  272. pinctrl-0=<&b_i2c_master>;
  273. #address-cells = <1>;
  274. #size-cells = <0>;
  275. use_pio = <0>;
  276. master_i2c_speed = <100000>;
  277. /* Hardkernel I2C 3.5" Touchscreen */
  278. /* drivers/input/sx865x.c */
  279. sx865x: sx865x@49 {
  280. status = "okay";
  281. compatible = "semtech,sx8650";
  282. reg = <0x49>;
  283. #clock-cells = <0>;
  284. /* H/W Pin control setup */
  285. gpio-pendown = "GPIOX_1";
  286. gpio-reset = "GPIOX_2";
  287. /* platform data setup */
  288. invert-x = <0>;
  289. invert-y = <1>;
  290. swap-xy = <1>;
  291. };
  292. };
  293. i2c@c11087e0{ /*I2C-C*/
  294. compatible = "amlogic,aml_i2c";
  295. dev_name = "i2c-C";
  296. status = "ok";
  297. reg = <0xc11087e0 0x20>;
  298. device_id = <3>;
  299. pinctrl-names="default";
  300. // pinctrl-0=<&c_i2c_master>;
  301. #address-cells = <1>;
  302. #size-cells = <0>;
  303. use_pio = <0>;
  304. master_i2c_speed = <300000>;
  305. };
  306. i2c@c1108d20{ /*I2C-D*/
  307. compatible = "amlogic,aml_i2c";
  308. dev_name = "i2c-D";
  309. status = "ok";
  310. reg = <0xc1108d20 0x20>;
  311. device_id = <4>;
  312. pinctrl-names="default";
  313. // pinctrl-0=<&d_i2c_master>;
  314. #address-cells = <1>;
  315. #size-cells = <0>;
  316. use_pio = <0>;
  317. master_i2c_speed = <300000>;
  318. };
  319. dvfs {
  320. compatible = "amlogic, amlogic-dvfs"; /** fixed for driver, don't change */
  321. #address-cells = <1>;
  322. #size-cells = <0>;
  323. status = "ok";
  324. vcck_dvfs {
  325. dvfs_id = <1>; /** must be value of (1 << n) */
  326. table_count = <16>; /** must be correct count for dvfs_table */
  327. /*change-frequent-only;*/
  328. dvfs_table = <
  329. /* NOTE: frequent in this table must be ascending order */
  330. /* frequent(Khz) min_uV max_uV */
  331. 96000 825000 825000
  332. 192000 825000 825000
  333. 312000 825000 825000
  334. 408000 825000 825000
  335. 504000 825000 825000
  336. 600000 825000 825000
  337. 720000 825000 825000
  338. 816000 850000 850000
  339. 1008000 875000 875000
  340. 1200000 925000 925000
  341. 1320000 1100000 1100000
  342. 1488000 1100000 1100000
  343. 1536000 1140000 1140000
  344. 1632000 1140000 1140000
  345. 1728000 1140000 1140000
  346. 1824000 1140000 1140000
  347. >;
  348. };
  349. };
  350. meson_vcck_dvfs_driver{
  351. compatible = "amlogic, meson_vcck_dvfs";
  352. dev_name = "meson_vcck_dvfs_driver";
  353. status = "ok";
  354. pinctrl-names = "default";
  355. pinctrl-0 = <&aml_pwm_pins>;
  356. use_pwm = <1>;
  357. pmw_controller = "PWM_C";
  358. table_count = <29>;
  359. cs_voltage_table = <
  360. 0x10f001b 860000
  361. 0x1050025 870000
  362. 0x0fc002e 880000
  363. 0x0f30037 890000
  364. 0x0ea0040 900000
  365. 0x0e10049 910000
  366. 0x0d60054 920000
  367. 0x0cb005f 930000
  368. 0x0c0006a 940000
  369. 0x0b50075 950000
  370. 0x0aa0080 960000
  371. 0x0a0008a 970000
  372. 0x0960094 980000
  373. 0x08d009d 990000
  374. 0x07b00af 1000000
  375. 0x07200b8 1010000
  376. 0x06900c1 1020000
  377. 0x06000ca 1030000
  378. 0x05700d3 1040000
  379. 0x04e00dc 1050000
  380. 0x04500e5 1060000
  381. 0x03c00ee 1070000
  382. 0x03300f7 1080000
  383. 0x02a0100 1090000
  384. 0x0180109 1100000
  385. 0x00f011b 1110000
  386. 0x00a0120 1120000
  387. 0x0050125 1130000
  388. 0x000012a 1140000
  389. >;
  390. };
  391. arm_pmu {
  392. compatible = "arm,cortex-a9-pmu";
  393. status = "ok";
  394. interrupts = <0 137 0x04
  395. 0 138 0x04
  396. 0 153 0x04
  397. 0 154 0x04>;
  398. };
  399. usb_con {
  400. lm-compatible = "logicmodule-bus";
  401. usb_b{
  402. lm-compatible = "amlogic,usb";
  403. lm-periph-id = <1>; /** lm name */
  404. clock-src = "usb1"; /** clock src */
  405. port-id = <1>; /** ref to mach/usb.h */
  406. port-type = <1>; /** 0: otg, 1: host, 2: slave */
  407. port-speed = <0>; /** 0: default, 1: high, 2: full */
  408. port-config = <0>; /** 0: default */
  409. port-dma = <0>; /** 0: default, 1: single, 2: incr, 3: incr4, 4: incr8, 5: incr16, 6: disable*/
  410. port-id-mode = <1>; /** 0: hardware, 1: sw_host, 2: sw_slave*/
  411. gpio-hub-rst = "GPIOAO_4";
  412. status = "okay";
  413. };
  414. usb_a{
  415. lm-compatible = "amlogic,usb";
  416. lm-periph-id = <0>; /** lm name */
  417. clock-src = "usb0"; /** clock src */
  418. port-id = <0>; /** ref to mach/usb.h */
  419. port-type = <0>; /** 0: otg, 1: host, 2: slave */
  420. port-speed = <0>; /** 0: default, high, 1: full */
  421. port-config = <0>; /** 0: default */
  422. port-dma = <0>; /** 0: default, 1: single, 2: incr, 3: incr4, 4: incr8, 5: incr16, 6: disable*/
  423. port-id-mode = <0>; /** 0: hardware, 1: sw_host, 2: sw_slave*/
  424. gpio-vbus-power = "GPIOAO_5";
  425. gpio-work-mask = <1>; /**0: work on pulldown,1:work on pullup*/
  426. status = "okay";
  427. };
  428. };
  429. audio_platform{
  430. compatible = "amlogic,aml-i2s";
  431. dev_name = "aml-i2s.0";
  432. status = "okay";
  433. };
  434. audio_dai{
  435. compatible = "amlogic,aml-i2s-dai";
  436. dev_name = "aml-i2s-dai.0";
  437. status = "okay";
  438. };
  439. audio_spdif_dai{
  440. compatible = "amlogic,aml-spdif-dai";
  441. dev_name = "aml-spdif-dai.0";
  442. status = "okay";
  443. };
  444. audio_spdif_codec{
  445. compatible = "amlogic,aml-spdif-codec";
  446. dev_name = "spdif-dit.0";
  447. pinctrl-names = "aml_audio_spdif";
  448. pinctrl-0 = <&audio_spdif_pins>;
  449. status = "okay";
  450. };
  451. audio_pcm_dai{
  452. compatible = "amlogic,aml-pcm-dai";
  453. dev_name = "aml-pcm-dai.0";
  454. status = "okay";
  455. };
  456. audio_pcm{
  457. compatible = "amlogic,aml-pcm";
  458. dev_name = "aml-pcm.0";
  459. status = "okay";
  460. };
  461. pcm5102{
  462. compatible = "hardkernel,pcm5102";
  463. dev_name = "pcm5102.0";
  464. status = "okay";
  465. };
  466. aml_m8_sound_card{
  467. compatible = "sound_card, aml_snd_m8";
  468. aml,sound_card = "ODROID-HDMI";
  469. sleep_time = <130>;
  470. status = "okay";
  471. };
  472. odroid_sound_card{
  473. compatible = "sound_card, odroid_snd";
  474. aml,sound_card = "ODROID-DAC";
  475. pinctrl-names = "odroid_i2s";
  476. pinctrl-0 = <&audio_pins>;
  477. status = "okay";
  478. };
  479. odroid_hifi2{
  480. compatible = "sound_card, odroid_dac2";
  481. aml,sound_card = "ODROID-DAC2";
  482. pinctrl-names = "odroid_i2s";
  483. pinctrl-0 = <&audio_pins>;
  484. status = "okay";
  485. };
  486. saradc{
  487. compatible = "amlogic,saradc";
  488. status = "okay";
  489. };
  490. meson-ir {
  491. compatible = "amlogic,meson6-ir";
  492. reg = <0xc8100580 0x20>;
  493. interrupts = <0 15 1>;
  494. pinctrl-names = "default";
  495. pinctrl-0 = <&remote_pins>;
  496. pulse-inverted;
  497. status = "ok";
  498. };
  499. spi@cc000000{
  500. compatible = "amlogic,apollo_spi_nor";
  501. status = "ok";
  502. reg = <0xcc000000 0x04000000>;
  503. pinctrl-names = "default";
  504. pinctrl-0 = <&aml_spi_nor_pins>;
  505. nr-parts = <2>;
  506. nr-part-0 = <&bootloader>;
  507. nr-part-1 = <&ubootenv>;
  508. bootloader:bootloader{
  509. name = "bootloader";
  510. offset = <0>;
  511. size = <0x100000>;
  512. };
  513. ubootenv:ubootenv{
  514. name = "ubootenv";
  515. offset = <0x100000>;
  516. size = <0x10000>;
  517. };
  518. };
  519. spi@c1108d80 {
  520. #address-cells = <1>;
  521. #size-cells = <0>;
  522. compatible = "amlogic,spicc";
  523. dev_name = "spicc";
  524. status = "okay";
  525. reg = <0xc1108d80 0x28>;
  526. pinctrl-names="default";
  527. pinctrl-0=<&aml_spicc_pins>;
  528. device_id = <0>;
  529. num_chipselect = <2>;
  530. cs_gpios = "GPIOX_20", "GPIOX_21";
  531. spidev@0 {
  532. spi-max-frequency = <2000000>;
  533. compatible = "spidev";
  534. reg = <0>;
  535. };
  536. /* SPI Touch Screen Define */
  537. ads7846@1 {
  538. spi-max-frequency = <1000000>;
  539. /*
  540. Driver Select : "ti,tsc2046", "ti,ads7843", "ti,ads7845", "ti,ads7846", "ti,ads7873"
  541. kernel/drivers/hardkernel/ads7846.c
  542. */
  543. compatible = "ti,ads7846";
  544. /*
  545. SPI Chip Select : (0 ~ 1)
  546. Chip Select = GPIOX_21 (CS1)
  547. */
  548. reg = <1>;
  549. /* AMLogic Interrupt Define */
  550. /*
  551. IRQ Source : (GPIO_IRQ0(0) ~ GPIO_IRQ7(7))
  552. */
  553. irq-source = <0>;
  554. /*
  555. IRQ Filter Select : (0 ~ 7)
  556. Value 0 : No Filtering, Value 1 ~ 7 : value * 3 * 111nS(delay)
  557. */
  558. irq-filter = <7>; /* 258.741us Delay */
  559. /*
  560. IRQ Trigger Select : (0 ~ 3)
  561. GPIO_IRQ_HIGH = 0, GPIO_IRQ_LOW = 1, GPIO_IRQ_RISING = 2, GPIO_IRQ_FALLING = 3
  562. */
  563. irq-trigger = <3>; /* GPIO_IRQ_FALLING (Trigger Interrupt) */
  564. /* Used Pen Down GPIO(IRQ GPIO) Select */
  565. pendown-gpio = "GPIOY_8";
  566. ti,moving-average = <1>;
  567. ti,mv-avg-length = <20>;
  568. ti,swap-xy = <1>;
  569. ti,x-min = <0>;
  570. ti,x-max = <8000>;
  571. ti,y-min = <0>;
  572. ti,y-max = <4800>;
  573. ti,x-plate-ohms = <40>;
  574. ti,pressure-min = <0>;
  575. ti,pressure-max = <255>;
  576. linux,wakeup;
  577. };
  578. };
  579. efuse{
  580. compatible = "amlogic,efuse";
  581. dev_name = "efuse";
  582. status = "okay";
  583. plat-pos = <0 454>;
  584. plat-count = <58>;
  585. usid-min = <8>; /*reserved*/
  586. usid-max = <31>; /*reserved*/
  587. };
  588. thermal{
  589. compatible = "amlogic-thermal";
  590. #thermal-cells=<7>;
  591. dev_name = "aml_thermal";
  592. trip_point=<70 1488001 1488001 511 511 3 2
  593. 80 1200001 1200001 435 435 2 2
  594. 90 800001 800001 328 328 1 1
  595. 110 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff>;
  596. cpu_cali_a=<0>;
  597. idle_interval=<1000>;
  598. use_virtual_thermal;
  599. freq_sample_period=<30>;
  600. report_time=<1 10 30 60>; /* based on freq_sample_period */
  601. cpu_virtual=<
  602. 500000 40 40 40 40
  603. 600000 45 55 60 65
  604. 800000 50 60 65 70
  605. 1000000 55 65 70 75
  606. 1200000 60 70 75 80
  607. 1350000 65 75 80 85
  608. >;
  609. gpu_virtual=<
  610. 183 40 40 40 40
  611. 251 40 45 50 55
  612. 319 50 60 65 70
  613. 426 55 65 70 75
  614. 511 60 70 75 80
  615. >;
  616. };
  617. amhdmitx{
  618. compatible = "amlogic,amhdmitx";
  619. dev_name = "amhdmitx";
  620. status = "ok";
  621. vend-data = <&vend_data>;
  622. pwr-ctrl = <&pwr_ctrl>;
  623. vend_data: vend_data{
  624. vendor_name = "Hardkernel"; /* Max Chars: 8 */
  625. vendor_id = <0x000000>; /* Refer to http://standards.ieee.org/develop/regauth/oui/oui.txt */
  626. product_desc = "ODROID-C1"; /* Max Chars: 16 */
  627. cec_osd_string = "ODROID-C1"; /* Max Chars: 14 */
  628. ao_cec = <0x000001>;
  629. };
  630. pwr_ctrl: pwr_ctrl{
  631. pwr_5v_on = "";
  632. pwr_5v_off = "";
  633. pwr_3v3_on = "";
  634. pwr_3v3_off = "";
  635. pwr_hpll_vdd_on = "";
  636. pwr_hpll_vdd_off = "";
  637. };
  638. };
  639. aml_pm{
  640. compatible = "amlogic,pm-m8";
  641. dev_name = "aml_pm_m8";
  642. status = "okay";
  643. };
  644. cpufreq-meson{
  645. compatible = "amlogic,cpufreq-meson";
  646. syspll_fixed;
  647. status = "okay";
  648. };
  649. crypto_device{
  650. compatible = "amlogic,crypto-device";
  651. dev_name = "crypto_device";
  652. };
  653. gpio:gpio{
  654. compatible = "amlogic,m8b-gpio";
  655. dev_name = "gpio";
  656. #gpio-cells=<2>;
  657. };
  658. pinmux{
  659. compatible = "amlogic,pinmux-m8b";
  660. dev_name = "pinmux";
  661. #pinmux-cells=<2>;
  662. ao_uart_pins:ao_uart{
  663. amlogic,setmask=<10 0x1800>;
  664. amlogic,pins="GPIOAO_0", "GPIOAO_1";
  665. amlogic,pullup=<1>;
  666. amlogic,pullupen=<1>;
  667. };
  668. // a_uart_pins:a_uart{
  669. // amlogic,setmask=<4 0x3c00>;
  670. // amlogic,pins="GPIOX_12", "GPIOX_13", "GPIOX_14", "GPIOX_15";
  671. // };
  672. b_uart_pins:b_uart{
  673. amlogic,setmask=<4 0x0300>;
  674. amlogic,pins="GPIOX_16", "GPIOX_17";
  675. amlogic,pullup=<1>;
  676. amlogic,pullupen=<1>;
  677. };
  678. nand_input_state:nand_input{
  679. amlogic,pins = "BOOT_0","BOOT_1","BOOT_2","BOOT_3","BOOT_4",
  680. "BOOT_5","BOOT_6","BOOT_7","BOOT_12","BOOT_13",
  681. "BOOT_8","BOOT_9","BOOT_10","BOOT_11",
  682. "BOOT_14","BOOT_15","BOOT_16","BOOT_17";
  683. amlogic,enable-output=<1>;
  684. };
  685. conf_nand_state: conf_nand{
  686. amlogic,pins = "BOOT_0","BOOT_1","BOOT_2","BOOT_3","BOOT_4",
  687. "BOOT_5","BOOT_6","BOOT_7","BOOT_15";
  688. amlogic,pullup=<0>;
  689. };
  690. nand_base: nand{
  691. amlogic,setmask=<2 0x7fe0000>;
  692. amlogic,clrmask=< 5 0xe
  693. 6 0x3f000000
  694. 4 0x7c000000>;
  695. amlogic,pins = "BOOT_0","BOOT_1","BOOT_2","BOOT_3","BOOT_4",
  696. "BOOT_5","BOOT_6","BOOT_7","BOOT_8","BOOT_9",
  697. "BOOT_10","BOOT_12","BOOT_13",
  698. "BOOT_14","BOOT_15","BOOT_16","BOOT_17";
  699. };
  700. sdhc_b_pins:sdhc_b_pin{
  701. amlogic,setmask=<2 0xfc00>;
  702. amlogic,clrmask=<2 0xf0 8 0x600>;
  703. amlogic,pins="CARD_0","CARD_1","CARD_2","CARD_3","CARD_4","CARD_5";
  704. };
  705. sdhc_c_pins:sdhc_c_pin{
  706. amlogic,setmask=<6 0x3f000000>;
  707. amlogic,clrmask=<4 0x6c000000 2 0x4c00000>;
  708. amlogic,pins="BOOT_0","BOOT_1","BOOT_2","BOOT_3","BOOT_10","BOOT_11";
  709. };
  710. sdhc_a_pins:sdhc_a_pin{
  711. amlogic,setmask=<8 0x3f>;
  712. amlogic,clrmask=<5 0x6c00 >;
  713. amlogic,pins="GPIOX_0","GPIOX_1","GPIOX_2","GPIOX_3","GPIOX_8","GPIOX_9";
  714. };
  715. sdio_all_pins:sdio_all_pins{
  716. amlogic,setmask=<8 0x0000003f>; /*sdio a*/
  717. amlogic,clrmask=<6 0x3f000000 /*sdio c*/
  718. 2 0x0000fc00 /*sdio b*/
  719. 5 0x00006c00>; /*sdhc a*/
  720. amlogic,pins = "GPIOX_0","GPIOX_1","GPIOX_2","GPIOX_3","GPIOX_8","GPIOX_9";
  721. amlogic,enable-output=<1>; /** 0:output, 1:input */
  722. amlogic,pullup=<1>;
  723. amlogic,pullupen=<1>;
  724. };
  725. sdio_clk_cmd_pins:sdio_clk_cmd_pins{
  726. amlogic,setmask=<8 0x00000003>; /*sdio a*/
  727. amlogic,clrmask=<6 0x3f000000 /*sdio c*/
  728. 2 0x0000fc00 /*sdio b*/
  729. 5 0x00006c00>; /*sdhc a*/
  730. amlogic,pins = "GPIOX_8","GPIOX_9"; /** GPIOX_8:CLK, GPIOX_9:CMD */
  731. amlogic,enable-output=<1>; /** 0:output, 1:input */
  732. amlogic,pullup=<1>;
  733. amlogic,pullupen=<1>;
  734. };
  735. sd_all_pins:sd_all_pins{
  736. amlogic,setmask=<2 0x0000fc00>; /*sdio b*/
  737. amlogic,clrmask=<6 0x3f000000 /*sdio c*/
  738. 8 0x0000063f /*sdio a, UART*/
  739. 2 0x000000f0>; /*sdhc b*/
  740. amlogic,pins = "CARD_0","CARD_1","CARD_2","CARD_3","CARD_4","CARD_5";
  741. amlogic,enable-output=<1>; /* 0:output, 1:input */
  742. amlogic,pullup=<1>;
  743. amlogic,pullupen=<1>;
  744. };
  745. sd_1bit_pins:sd_1bit_pins{
  746. amlogic,setmask=<2 0x00008c00>; /*sdio b*/
  747. amlogic,clrmask=<6 0x3f000000 /*sdio c*/
  748. 8 0x0000003f /*sdio a*/
  749. 2 0x000000f0>; /*sdhc b*/
  750. amlogic,pins = "CARD_0","CARD_1","CARD_2","CARD_3","CARD_4","CARD_5";
  751. amlogic,enable-output=<1>; /* 0:output, 1:input */
  752. amlogic,pullup=<1>;
  753. amlogic,pullupen=<1>;
  754. };
  755. sd_clk_cmd_pins:sd_clk_cmd_pins{
  756. amlogic,setmask=<2 0x00000c00>; /*sdio b*/
  757. amlogic,clrmask=<6 0x3f000000 /*sdio c*/
  758. 8 0x0000003f /*sdio a*/
  759. 2 0x000000f0>; /*sdhc b*/
  760. amlogic,pins = "CARD_2","CARD_3"; /** CARD_2:CLK, CARD_3:CMD */
  761. amlogic,enable-output=<1>; /** 0:output, 1:input */
  762. amlogic,pullup=<1>;
  763. amlogic,pullupen=<1>;
  764. };
  765. emmc_all_pins:emmc_all_pins{
  766. amlogic,setmask=<6 0xfc000000>; /*sdio c*/
  767. amlogic,clrmask=<2 0x06c2fc00 /*sdio b & nand*/
  768. 8 0x0000003f /*sdio a*/
  769. 4 0x6c000000>; /*sdhc c*/
  770. amlogic,pins = "BOOT_0","BOOT_1","BOOT_2","BOOT_3","BOOT_8","BOOT_10";
  771. amlogic,enable-output=<1>; /** 0:output, 1:input */
  772. amlogic,pullup=<1>;
  773. amlogic,pullupen=<1>;
  774. };
  775. emmc_clk_cmd_pins:emmc_clk_cmd_pins{
  776. amlogic,setmask=<6 0xc0000000>; /*bit[30-31] */
  777. amlogic,clrmask=<2 0x06c2fc00 /*sdio b & nand nand bit17 bit25*/
  778. 8 0x0000003f /*sdio a*/
  779. 7 0xc0000>; /*sdhc c bit 18-19*/
  780. amlogic,pins = "BOOT_8","BOOT_10"; /** BOOT_10:CMD, BOOT_8:CLK */
  781. amlogic,enable-output=<1>; /** 0:output, 1:input */
  782. amlogic,pullup=<1>;
  783. amlogic,pullupen=<1>;
  784. };
  785. sdhc_sd_clk_cmd_pins:sdhc_sd_clk_cmd_pins{
  786. amlogic,setmask=<2 0x00000030>; /*sdhc b*/
  787. amlogic,clrmask=<5 0x00007c00 /*sdhc a*/
  788. 4 0x7c000000 /*sdhc c*/
  789. 2 0x0000fc00 /*sdio b*/
  790. 8 0x00000600>; /*UART*/
  791. amlogic,pins = "CARD_2","CARD_3"; /* CARD_2:CLK, CARD_3:CMD */
  792. amlogic,enable-output=<1>; /* 0:output, 1:input */
  793. amlogic,pullup=<1>;
  794. amlogic,pullupen=<1>;
  795. };
  796. sdhc_sd_all_pins:sdhc_sd_all_pins{
  797. amlogic,setmask=<2 0x000000f0>; /*sdhc b*/
  798. amlogic,clrmask=<5 0x00007c00 /*sdhc a*/
  799. 4 0x7c000000 /*sdhc c*/
  800. 2 0x0000fc00 /*sdio b*/
  801. 8 0x00000600>; /*UART*/
  802. amlogic,pins="CARD_0","CARD_1","CARD_2","CARD_3","CARD_4","CARD_5";
  803. amlogic,enable-output=<1>; /* 0:output, 1:input */
  804. amlogic,pullup=<1>;
  805. amlogic,pullupen=<1>;
  806. };
  807. sdhc_emmc_clk_cmd_pins:sdhc_emmc_clk_cmd_pins{
  808. amlogic,setmask=<7 0xc0000>; /*bit[18-19] */
  809. amlogic,clrmask=<2 0x04c000f0 /*sdhc b & nand*/
  810. 5 0x00007c00 /*sdhc a*/
  811. 6 0xff000000>; /*sdio c*/
  812. amlogic,pins = "BOOT_8","BOOT_10"; /** BOOT_10:CMD, BOOT_8:CLK */
  813. amlogic,enable-output=<1>; /** 0:output, 1:input */
  814. amlogic,pullup=<1>;
  815. amlogic,pullupen=<1>;
  816. };
  817. sdhc_emmc_all_pins:sdhc_emmc_all_pins{
  818. amlogic,setmask=<4 0x70000000
  819. 7 0xc0000>; /*sdhc c*/
  820. amlogic,clrmask=<2 0x04c000f0 /*sdhc b & nand*/
  821. 5 0x00007c00 /*sdhc a*/
  822. 6 0xff000000>; /*sdio c*/
  823. amlogic,pins = "BOOT_0","BOOT_1","BOOT_2","BOOT_3","BOOT_4","BOOT_5","BOOT_6","BOOT_7","BOOT_8","BOOT_10";
  824. amlogic,enable-output=<1>; /** 0:output, 1:input */
  825. amlogic,pullup=<1>;
  826. amlogic,pullupen=<1>;
  827. };
  828. sdhc_sdio_clk_cmd_pins:sdhc_sdio_clk_cmd_pins{
  829. amlogic,setmask=<5 0x00000c00>; /*sdhc a bit[10-11] */
  830. amlogic,clrmask=<2 0x058000f0 /*sdhc b*/
  831. 4 0x7c000000 /*sdhc c */
  832. 8 0x0000003f>; /*sdio a*/
  833. amlogic,pins = "GPIOX_8","GPIOX_9"; /** BOOT_16:CMD, BOOT_17:CLK */
  834. amlogic,enable-output=<1>; /** 0:output, 1:input */
  835. amlogic,pullup=<1>;
  836. amlogic,pullupen=<1>;
  837. };
  838. sdhc_sdio_all_pins:sdhc_sdio_all_pins{
  839. amlogic,setmask=<5 0x00006c00>; /*sdhc a*/
  840. amlogic,clrmask=<2 0x058000f0 /*sdhc b*/
  841. 4 0x7c000000 /*sdhc c */
  842. 8 0x0000003f>; /*sdio a*/
  843. amlogic,pins = "GPIOX_0","GPIOX_1","GPIOX_2","GPIOX_3","GPIOX_8","GPIOX_9";
  844. amlogic,enable-output=<1>; /** 0:output, 1:input */
  845. amlogic,pullup=<1>;
  846. amlogic,pullupen=<1>;
  847. };
  848. ao_i2c_master:ao_i2c{
  849. amlogic,setmask=<10 0x60>;
  850. amlogic,clrmask=<10 0x1800006>;
  851. amlogic,pins="GPIOAO_4","GPIOAO_5";
  852. };
  853. a_i2c_master:a_i2c{
  854. amlogic,setmask=<9 0xC0000000>;
  855. amlogic,clrmask=<0 0x3C0300
  856. 6 0xC00000
  857. 8 0x1800000>;
  858. amlogic,pins="GPIODV_24","GPIODV_25";
  859. };
  860. b_i2c_master:b_i2c{
  861. amlogic,setmask=<9 0x30000000>;
  862. amlogic,clrmask=<0 0x480
  863. 6 0x300000
  864. 8 0x10780000>;
  865. amlogic,pins="GPIODV_26","GPIODV_27";
  866. };
  867. // MATCH "I2C_D_pin_match" = "&d_i2c_master"
  868. // L2 PROP_U32 2 = "amlogic,setmask"
  869. // L2 PROP_STR 2 = "amlogic,pins"
  870. // d_i2c_master:d_i2c{
  871. // amlogic,setmask=<4 0xc>;
  872. // amlogic,pins="GPIOH_7","GPIOH_8";
  873. // };
  874. remote_pins:remote_pin{
  875. amlogic,setmask=<10 0x1>;
  876. amlogic,pins="GPIOAO_7";
  877. };
  878. audio_spdif_pins:audio_pin1{
  879. amlogic,setmask=<10 0x00010000>;
  880. amlogic,clrmask=<10 0x00040000
  881. 1 0x00002000>;
  882. amlogic,pins ="GPIOAO_6";
  883. };
  884. audio_pins:audio_pin{
  885. amlogic,setmask=<10 0x78000000>;
  886. amlogic,pins = "GPIOAO_8","GPIOAO_9","GPIOAO_10","GPIOAO_11";
  887. };
  888. aml_spi_nor_pins: aml_spi_nor_pins{
  889. amlogic,setmask=<5 0xf>;
  890. amlogic,clrmask=<2 0x380000>;
  891. amlogic,pins = "BOOT_11","BOOT_12","BOOT_13","BOOT_18";
  892. };
  893. aml_spicc_pins: aml_spicc_pins{
  894. amlogic,setmask=<4 0x03c00000
  895. >;
  896. amlogic,clrmask=<3 0x004003C0
  897. 5 0x00000C00
  898. 6 0x000F0000
  899. 7 0x80000000
  900. 8 0x00000003
  901. 9 0x00080000>;
  902. amlogic,pins = "GPIOX_8","GPIOX_9","GPIOX_10";
  903. };
  904. aml_pwm_pins:aml_pwm{
  905. amlogic,setmask=<3 0x1000000>;
  906. amlogic,clrmask=<0 0x48
  907. 7 0x10000020>;
  908. amlogic,pins="GPIODV_9";
  909. };
  910. odroid_pwm0:odroid_pwm0{
  911. amlogic,setmask=<2 0x00000008>; /*GPIOX_11 PWM_B Reg2[3]*/
  912. amlogic,clrmask=<3 0x00100000
  913. 7 0x40000000>;
  914. amlogic,pins="GPIOX_11";
  915. };
  916. odroid_pwm1:odroid_pwm1{
  917. amlogic,setmask=<2 0x00000008 /*GPIOX_11 PWM_B Reg2[3]*/
  918. 9 0x00080000>; /*GPIOX_10 PWM_E Reg9[19]*/
  919. amlogic,clrmask=<3 0x00500100
  920. 4 0x00800000
  921. 6 0x00020000
  922. 7 0xc0000000>;
  923. amlogic,pins="GPIOX_11","GPIOX_10";
  924. };
  925. };
  926. meson-eth{
  927. compatible = "amlogic,meson-eth";
  928. dev_name = "meson-eth";
  929. status = "okay";
  930. ethbaseaddr = <0xfe0c0000>;
  931. interruptnum = <40>;
  932. savepowermode = <0>;
  933. phy_interface = <0>;
  934. new_maclogic = <1>;
  935. reset_pin_enable = <0>;
  936. reset_pin = "GPI0H_4";
  937. reset_delay = <100>;
  938. disable_phyrefclk;
  939. };
  940. leds {
  941. compatible = "gpio-leds";
  942. /* Blue LED */
  943. hearbeat {
  944. label = "blue:heartbeat";
  945. gpios = "GPIOAO_13";
  946. default-state = "off";
  947. linux,default-trigger = "heartbeat";
  948. };
  949. };
  950. pwm{
  951. compatible = "amlogic, odroid-pwm";
  952. dev_name = "meson_pwm";
  953. status = "ok";
  954. pinctrl-names = "odroid_pwm0","odroid_pwm1";
  955. pinctrl-0 = <&odroid_pwm0>;
  956. pinctrl-1 = <&odroid_pwm1>;
  957. };
  958. pwm-ctrl {
  959. compatible = "amlogic, pwm-ctrl";
  960. dev_name = "pwm-ctrl";
  961. status = "ok";
  962. };
  963. w1 {
  964. compatible = "w1-gpio";
  965. dev_name = "w1";
  966. status = "ok";
  967. gpios = "GPIOY_3";
  968. // linux,open-drain; // .is_open_drain = 1;
  969. };
  970. amvideocap{
  971. compatible = "amlogic,amvideocap";
  972. dev_name = "amvideocap.0";
  973. status = "okay";
  974. reserve-memory = <0x00a00000>; // 1920 * 1088 * 4 = 8,355,840
  975. reserve-iomap = "true";
  976. };
  977. amlogic-watchdog {
  978. compatible = "amlogic,aml-wdt";
  979. default_timeout=<10>;
  980. reset_watchdog_method=<0>;//0:sysfs,1:kernel
  981. reset_watchdog_time=<2>;
  982. shutdown_timeout=<10>;
  983. firmware_timeout=<6>;
  984. suspend_timeout=<6>;
  985. };
  986. }; /* end of / */