9 /memreserve/ 0x80000000 0x00010000;
10 /memreserve/ 0x8a800000 0x600000;
12 /* memory reserved for ION(carveout mm)*/
13 /memreserve/ 0x98800000 0x7100000;
15 /* memory reserved for ION(overlay)*/
16 /memreserve/ 0x9f900000 0x700000; /* 7MK */
18 /include/ "sc2723-regulators.dtsi"
19 /include/ "sprd-battery.dtsi"
20 /* **** FPGA needn't clk **** *\
21 include "scx35l64-clocks.dtsi"
22 \* ************************** */
26 compatible = "sprd,TsharkL";
27 sprd,sc-id = <8830 1 0x20000>;
28 interrupt-parent = <&gic>;
33 bootargs = "earlyprintk=sprd_uart,0x70000000";
42 compatible = "arm,armv8";
44 enable-method = "spin-table";
45 cpu-release-addr = <0x0 0x8000fff8>;
49 compatible = "arm,armv8";
51 enable-method = "spin-table";
52 cpu-release-addr = <0x0 0x8000fff8>;
56 compatible = "arm,armv8";
58 enable-method = "spin-table";
59 cpu-release-addr = <0x0 0x8000fff8>;
63 compatible = "arm,armv8";
65 enable-method = "spin-table";
66 cpu-release-addr = <0x0 0x8000fff8>;
71 device_type = "memory";
72 reg = <0 0x80000000 0 0x20000000>;
87 hwspinlock0 = &hwspinlock0;
88 hwspinlock1 = &hwspinlock1;
91 gic: interrupt-controller@12001000 {
92 compatible = "arm,cortex-a15-gic", "arm,cortex-a9-gic";
93 #interrupt-cells = <3>;
96 reg = <0 0x12001000 0 0x1000>,
97 <0 0x12002000 0 0x1000>;
100 intc:interrupt-controller@71400000 {
101 compatible = "sprd,intc";
102 #interrupt-cells = <0>;
103 interrupt-controller;
104 reg = <0 0x71400000 0 0x1000>,
105 <0 0x71500000 0 0x1000>,
106 <0 0x71600000 0 0x1000>,
107 <0 0x71700000 0 0x1000>;
111 compatible = "arm,armv8-timer";
112 interrupts = <1 13 0xff01>,
116 clock-frequency = <26000000>;
120 compatible = "sprd,sharkl64-timer";
121 reg = <0 0x40050000 0 0x20>; /*aon GPTIMER0 */
122 interrupts = <0 28 0x0>;
123 clock-frequency = <32768>;
126 sprd_ap_system_timer {
127 reg = <0 0x40230000 0 0x20>;
128 interrupts = <0 31 0x0>;
131 uart0: uart@70000000 {
132 compatible = "sprd,serial";
133 reg = <0 0x70000000 0 0x100>;
134 interrupts = <0 2 0xf04>;
137 uart1: uart@70100000 {
138 compatible = "sprd,serial";
139 reg = <0 0x70100000 0 0x100>;
140 interrupts = <0 3 0xf04>;
143 compatible = "sprd,sprd_backlight";
149 compatible = "sprd,sprd_pwm_bl";
150 reg =<0 0x40260000 0 0xf>;
152 hwspinlock0: hwspinlock0@20c00000{
153 compatible = "sprd,sprd-hwspinlock";
154 reg = <0 0x20c00000 0 0x1000>;
156 hwspinlock1: hwspinlock1@40060000{
157 compatible = "sprd,sprd-hwspinlock";
158 reg = <0 0x40060000 0 0x1000>;
162 compatible = "sprd,watchdog";
163 reg = <0 0X40290000 0 0x1000>;
166 d_eic_gpio: gpio@40210000 {
167 compatible = "sprd,d-eic-gpio";
168 reg = <0 0x40210000 0 0x1000>;
170 interrupt-controller;
171 #interrupt-cells = <2>;
175 interrupts = <0 37 0x0>;
178 d_gpio_gpio: gpio@40280000 {
179 compatible = "sprd,d-gpio-gpio";
180 reg = <0 0x40280000 0 0x1000>;
182 interrupt-controller;
183 #interrupt-cells = <2>;
187 interrupts = <0 35 0x0>;
190 sdhci3: sdhci@20600000 {
191 compatible = "sprd,sdhci-shark";
192 interrupts = <0 60 0x0>;
193 reg = <0 0x20600000 0 0x1000>;
196 max-frequency = <384000000>;
197 keep-power-in-suspend = <1>;
201 quirks = <0x21009001>; //SDHCI_QUIRK_NO_HISPD_BIT | SDHCI_QUIRK_BROKEN_TIMEOUT_VAL | SDHCI_QUIRK_DATA_TIMEOUT_USES_SDCLK | SDHCI_QUIRK_BROKEN_CARD_DETECTION | SDHCI_QUIRK_CLOCK_BEFORE_RESET
202 quirks2 = <0x8>; //SDHCI_QUIRK2_PRESET_VALUE_BROKEN
203 host-caps-mask = <0x03000000>;
204 // vdd-vmmc = "vddemmccore";
205 // vdd-vqmmc = "vddemmcio";
206 vdd-vmmc = "vddemmccore";
207 vdd-vqmmc = "vddgen1";
208 clock-names = "clk_emmc";
209 clocks = <&clk_emmc>, <&clk_384m>;
212 write-delay = <0x04>;
213 read-pos-delay = <0x04>;
214 read-neg-delay = <0x04>;
219 sdhci0: sdhci@20300000 {
220 compatible = "sprd,sdhci-shark";
221 interrupts = <0 57 0x0>;
222 reg = <0 0x20300000 0 0x1000>;
225 max-frequency = <384000000>;
226 keep-power-in-suspend = <1>;
229 quirks = <0x21009001>; //SDHCI_QUIRK_NO_HISPD_BIT | SDHCI_QUIRK_BROKEN_TIMEOUT_VAL | SDHCI_QUIRK_DATA_TIMEOUT_USES_SDCLK | SDHCI_QUIRK_BROKEN_CARD_DETECTION | SDHCI_QUIRK_CLOCK_BEFORE_RESET
230 quirks2 = <0x8>; //SDHCI_QUIRK2_PRESET_VALUE_BROKEN
231 host-caps-mask = <0x05000000>;
232 vdd-vmmc = "vddsdcore";
233 vdd-vqmmc = "vddsdio";
234 vqmmc-voltage-level = <3000000>;
236 clock-names = "clk_sdio0";
237 clocks = <&clk_sdio0>, <&clk_384m>;
243 sdhci1: sdhci@20400000 {
244 compatible = "sprd,sdhci-shark";
245 interrupts = <0 58 0x0>;
246 reg = <0 0x20400000 0 0x1000>;
249 max-frequency = <96000000>;
250 keep-power-in-suspend = <1>;
251 cap-power-off-card = <1>;
253 quirks = <0x21009001>; //SDHCI_QUIRK_NO_HISPD_BIT | SDHCI_QUIRK_BROKEN_TIMEOUT_VAL | SDHCI_QUIRK_DATA_TIMEOUT_USES_SDCLK | SDHCI_QUIRK_BROKEN_CARD_DETECTION | SDHCI_QUIRK_CLOCK_BEFORE_RESET
254 quirks2 = <0x8>; //SDHCI_QUIRK2_PRESET_VALUE_BROKEN
255 clock-names = "clk_sdio1";
256 clocks = <&clk_sdio1>, <&clk_96m>;
265 compatible = "sprd,adi-bus";
266 interrupts = <0 38 0x0>;
267 reg = <0 0x40038000 0 0x1000>;
268 interrupt-controller;
270 #interrupt-cells = <2>;
271 #address-cells = <1>;
273 ranges = <0x100 0 0x40038100 0x80>;
276 compatible = "sprd,keyboard-backlight";
278 a_eic_gpio: gpio@100{
279 compatible = "sprd,a-eic-gpio";
280 reg = <0x100 0x80>; /* adi reg */
282 interrupt-controller;
283 #interrupt-cells = <2>;
287 interrupt-parent = <&adi>;
288 interrupts = <5 0x0>; /* ext irq 5 */
291 compatible = "sprd,sprd-eic-keys";
295 gpios = <&a_eic_gpio 2 0>;
296 debounce-interval = <2>;
302 compatible = "gpio-keys";
303 input-name = "sprd-gpio-keys";
305 label = "Volumedown Key";
307 gpios = <&d_gpio_gpio 124 1>;
308 debounce-interval = <2>;
312 label = "Volumeup Key";
314 gpios = <&d_gpio_gpio 125 1>;
315 debounce-interval = <2>;
321 compatible = "sprd,usb";
322 interrupts = <0 55 0x0>;
324 gpios = <&a_eic_gpio 0 0>;
325 reg = <0 0x20200000 0 0x1000>;
326 tune_value = <0x44073e33>;
327 usb-supply = <&vddusb>;
328 #address-cells = <1>;
331 sprd_thermal: sprd_thermal@402F0000{
332 compatible = "sprd,sprd-thermal";
334 interrupts = <0 26 0x0>;
335 reg = <0 0x402F0000 0 0x1000>;
336 trip_points_active = <105>;
337 trip_points_critical = <114>;
341 compatible = "sprd,i2c";
342 interrupts = <0 11 0x0>;
343 reg = <0 0x70500000 0 0x1000>;
344 #clock-names = "clk_i2c0";
345 #address-cells = <1>;
348 compatible = "sprd,sensor_main";
352 compatible = "sprd,sensor_sub";
357 #address-cells = <2>;
359 ranges = <0 0 0 0 1 0>;
361 compatible = "sprd,ahb";
362 reg = <0 0x20e00000 0 0x40000>;
365 compatible = "sprd,apbckg";
366 reg = <0 0x21500000 0 0x1000>;
369 compatible = "sprd,hwlock0";
370 reg = <0 0x20d00000 0 0x1000>;
373 compatible = "sprd,pub_apb";
374 reg = <0 0x30020000 0 0x10000>;
377 compatible = "sprd,aon_apb";
378 reg = <0 0x402e0000 0 0x40000>;
381 compatible = "sprd,pmu_apb";
382 reg = <0 0x402b0000 0 0x40000>;
385 compatible = "sprd,mm_ahb";
386 reg = <0 0x60d00000 0 0x10000>;
389 compatible = "sprd,mm_clk";
390 reg = <0 0x60e00000 0 0x1000>;
393 compatible = "sprd,ap_ckg";
394 reg = <0 0x71200000 0 0x40000>;
397 compatible = "sprd,ap_apb";
398 reg = <0 0x71300000 0 0x40000>;
401 compatible = "sprd,gpu_apb";
402 reg = <0 0x60100000 0 0x1000>;
405 compatible = "sprd,adi";
406 reg = <0 0x40030000 0 0x10000>;
409 compatible = "sprd,adi_slave";
410 reg = <0 0x40038000 0 0x1000>;
413 compatible = "sprd,adc";
414 reg = <0 0x40038300 0 0x1000>;
417 compatible = "sprd,dma";
418 reg = <0 0x20100000 0 0x4000>;
419 interrupts = <0 50 0x0>;
422 compatible = "sprd,mailbox";
423 reg = <0 0x400a0000 0 0x10000>;
426 compatible = "sprd,rtc";
427 reg = <0 0x40038080 0 0x80>;
428 interrupts = <0 2 0x0>;
431 compatible = "sprd,axibm0";
432 reg = <0 0x30040000 0 0x20000>;
433 interrupts = <0 86 0x0>;
436 compatible = "sprd,i2c";
437 interrupts = <0 11 0x0>;
438 reg = <0 0x70500000 0 0x1000>;
439 //address-cells = <1>;
441 //clock-names = "clk_i2c0";
443 compatible = "sprd,sensor_main";
447 compatible = "sprd,sensor_sub";
452 compatible = "sprd,i2c";
453 interrupts = <0 12 0x0>;
454 reg = <0 0x70600000 0 0x1000>;
455 //clock-names = "clk_i2c1";
458 compatible = "sprd,i2c";
459 interrupts = <0 13 0x0>;
460 reg = <0 0x70700000 0 0x1000>;
461 //clock-names = "clk_i2c2";
464 compatible = "sprd,i2c";
465 interrupts = <0 14 0x0>;
466 reg = <0 0x70800000 0 0x1000>;
467 //clock-names = "clk_i2c3";
470 compatible = "sprd,i2c";
471 interrupts = <0 15 0x0>;
472 reg = <0 0x70900000 0 0x1000>;
473 //clock-names = "clk_i2c4";
477 compatible = "sprd,sprd-spi";
478 interrupts = <0 7 0x0>;
479 reg = <0 0x70a00000 0 0x1000>;
480 //clock-names = "clk_spi0";
483 compatible = "sprd,sprd-spi";
484 interrupts = <0 8 0x0>;
485 reg = <0 0x70b00000 0 0x1000>;
486 //clock-names = "clk_spi1";
489 compatible = "sprd,sprd-spi";
490 interrupts = <0 9 0x0>;
491 reg = <0 0x70c00000 0 0x1000>;
492 //clock-names = "clk_spi2";
495 compatible = "sprd,d-eic-gpio";
496 reg = <0 0x40210000 0 0x1000>;
499 compatible = "sprd,d-gpio-gpio";
500 reg = <0 0x40280000 0 0x1000>;
503 compatible = "sprd,aon_dma";
504 reg = <0 0x40100000 0 0x1000>;
505 interrupts = <0 50 0x0>;
508 compatible = "sprd,pwm";
509 reg = <0 0x40260000 0 0x1000>;
514 compatible = "sprd,sprd_dcam";
515 reg = <0 0x60800000 0 0x100000>;
516 interrupts = <0 45 0>;
519 compatible = "sprd,sprd_scale";
522 compatible = "sprd,sprd_rotation";
525 compatible = "sprd,sprd_sensor";
526 reg = <0 0x60c00000 0 0x100000>;
527 gpios = <&d_gpio_gpio 45 0 /*main reset*/
528 &d_gpio_gpio 47 0 /*main powerdown*/
529 &d_gpio_gpio 44 0 /*sub reset*/
530 &d_gpio_gpio 46 0>; /*sub powerdown*/
533 compatible = "sprd,sprd_isp";
534 reg = <0 0x60a00000 0 0x100000>;
537 compatible = "sprd,sprd_dma_copy";
541 compatible = "sprd,sprdfb";
542 reg = <0 0x20800000 0 0x1000>,
543 <0 0x21800000 0 0x1000>;
544 interrupts = <0 46 0x0>,
548 clock-names = "dispc_clk_parent", "dispc_dbi_clk_parent", "dispc_dpi_clk_parent", "dispc_emc_clk_parent", "dispc_clk", "dispc_dbi_clk", "dispc_dpi_clk", "dispc_emc_clk", "fb_spi_clock", "fb_spi_clock_parent";
549 //clocks = <&clk_256m>, <&clk_256m>, <&clk_384m>, <&clk_aon_apb>, <&clk_dispc0>, <&clk_dispc0_dbi>, <&clk_dispc0_dpi>, <&clk_disp_emc>, <&clk_spi2>, <&ext_26m>;
550 clock-src = <256000000 256000000 384000000>;
553 sprd,fb_use_reservemem;
554 sprd,fb_mem = <0x8a800000 0x600000>;
559 compatible = "sprd,gsp";
560 reg = <0 0x20a00000 0 0x1000>;
561 interrupts = <0 51 0x0>;
563 clock-names = "clk_gsp", "clk_gsp_emc", "clk_gsp_parent", "clk_aon_apb";
564 clocks = <&clk_gsp>, <&clk_gsp_emc>, <&clk_256m>, <&clk_aon_apb>;
566 gsp_mmu_ctrl_base = <0x20b08000>;
571 compatible = "sprd,mali-utgard";
572 mali_pp_core_number = <4>;
573 interrupt-names = "mali_gp_irq",
579 reg-names = "mali_l2",
587 interrupts = <0 39 0x0>, // MALI_GP_IRQ,
588 <0 39 0x0>, // MALI_GP_MMU_IRQ,
589 <0 39 0x0>, // MALI_PP0_IRQ,
590 <0 39 0x0>, // MALI_PP0_MMU_IRQ,
591 <0 39 0x0>, // MALI_PP1_IRQ,
592 <0 39 0x0>; // MALI_PP1_MMU_IRQ,
593 reg = <0 0x60001000 0 0x200>,// MALI_L2,MALI_GPU_RESOURCE_L2(base_addr + 0x1000)
594 <0 0x60000000 0 0x100>,// MALI_GP,
595 <0 0x60003000 0 0x100>,// MALI_GP_MMU,
596 <0 0x60008000 0 0x1100>,// MALI_PP0,
597 <0 0x60004000 0 0x100>,// MALI_PP0_MMU,
598 <0 0x6000A000 0 0x1100>,// MALI_PP1,
599 <0 0x60005000 0 0x100>;// MALI_PP1_MMU,
600 /* <0x60002000 0x100>; //MALI_PMU,
601 clock-names = "clk_gpu_axi","clk_gpu","clk_153m6","clk_208m","clk_256m","clk_312m","clk_384m","clk_460m8";
602 clocks = <&clk_gpu_axi>,<&clk_gpu>,<&clk_153m6>,<&clk_208m>,<&clk_256m>,<&clk_312m>,<&clk_384m>,<&clk_460m8>;
607 compatible = "sprd,ion-sprd";
608 #address-cells = <1>;
612 reg = <1>; /* SYSTEM */
613 reg-names = "ion_heap_system";
614 sprd,ion-heap-type = <0>; /* SYSTEM */
615 sprd,ion-heap-mem = <0x0 0x0>;
620 reg-names = "ion_heap_carveout_mm";
621 sprd,ion-heap-type = <2>; /* carveout mm */
622 sprd,ion-heap-mem = <0x98800000 0x7100000>;
626 reg = <3>; /* OVERLAY */
627 reg-names = "ion_heap_carveout_overlay";
628 sprd,ion-heap-type = <2>; /* CARVEOUT */
629 sprd,ion-heap-mem = <0x9f900000 0x700000>; /* 7M */
633 sprd_iommu0: sprd_iommu@20b00000 {
634 compatible = "sprd,sprd_iommu";//gsp
635 func-name = "sprd_iommu_gsp";
636 reg = <0 0x10000000 0 0x2000000>, //iova
637 <0 0x20b00000 0 0x8000>, //pgt
638 <0 0x20b08000 0 0x8000>; //ctrl_reg
639 reg_name = "iova","pgt","ctrl_reg";
640 clock-names = "clk_gsp_emc","clk_153m6","clk_gsp";
641 //clocks = <&clk_gsp_emc>, <&clk_153m6>,<&clk_gsp>;
645 sprd_iommu1: sprd_iommu@60f00000 {
646 compatible = "sprd,sprd_iommu";//mm
647 func-name = "sprd_iommu_mm";
648 reg = <0 0x20000000 0 0x8000000>, //iova
649 <0 0x60f00000 0 0x20000>, //pgt
650 <0 0x60f20000 0 0x2000>; //ctrl_reg
651 reg_name = "iova","pgt","ctrl_reg";
652 clock-names = "clk_mmu","clk_mm_i";
653 //clocks = <&clk_mmu>,<&clk_mm>;
658 sprd_vsp: sprd_vsp@60900000{
659 compatible = "sprd,sprd_vsp";
660 reg = <0 0x60900000 0 0xc000>;
661 interrupts = <0 43 0x0>;
662 clock-names = "clk_mm_i", "clk_vsp", "clk_parent_0", "clk_parent_1", "clk_parent_2", "clk_parent_3";
663 //clocks = <&clk_mm>, <&clk_vsp>, <&clk_307m2>, <&clk_256m>, <&clk_128m>, <&clk_96m>;
664 clock-parent-info = <2 4>;
668 compatible = "sprd,sprd_jpg";
669 reg = <0 0x60B00000 0 0x8000>;
670 interrupts = <0 42 0x0>;
671 //clock-names = "clk_mm_i","clk_jpg";
672 //clocks = <&clk_mm>, <&clk_jpg>;