dts: rename th1520
authorHan Gao <gaohan@iscas.ac.cn>
Tue, 2 Jan 2024 09:07:10 +0000 (17:07 +0800)
committerJaehoon Chung <jh80.chung@samsung.com>
Wed, 13 Mar 2024 06:59:01 +0000 (15:59 +0900)
Signed-off-by: Han Gao <gaohan@iscas.ac.cn>
(cherry picked from commit a695d43115310894d2b3b2142a802c1546e107e1)
Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
27 files changed:
arch/riscv/boot/dts/thead/Makefile
arch/riscv/boot/dts/thead/light-beagle-bone-buses.dtsi [deleted file]
arch/riscv/boot/dts/thead/light-lpi4a-16gb.dts [deleted file]
arch/riscv/boot/dts/thead/light-lpi4a-cluster-16gb.dts [deleted file]
arch/riscv/boot/dts/thead/light-lpi4a-cluster.dts [deleted file]
arch/riscv/boot/dts/thead/light-lpi4a-console-16g.dts [deleted file]
arch/riscv/boot/dts/thead/light-lpi4a-console.dts [deleted file]
arch/riscv/boot/dts/thead/light-lpi4a-dsi0-hdmi.dts [deleted file]
arch/riscv/boot/dts/thead/light-lpi4a-laptop.dts [deleted file]
arch/riscv/boot/dts/thead/light-lpi4a-z14inch-m0-16g.dts [deleted file]
arch/riscv/boot/dts/thead/light-lpi4a-z14inch-m0.dts [deleted file]
arch/riscv/boot/dts/thead/light-milkv-meles-4g.dts [deleted file]
arch/riscv/boot/dts/thead/light-milkv-meles.dts [deleted file]
arch/riscv/boot/dts/thead/th1520-beagle-bone-buses.dtsi [new file with mode: 0644]
arch/riscv/boot/dts/thead/th1520-beagle.dts [new file with mode: 0644]
arch/riscv/boot/dts/thead/th1520-beagle.dtsi [new file with mode: 0644]
arch/riscv/boot/dts/thead/th1520-lpi4a-16gb.dts [new file with mode: 0644]
arch/riscv/boot/dts/thead/th1520-lpi4a-cluster-16gb.dts [new file with mode: 0644]
arch/riscv/boot/dts/thead/th1520-lpi4a-cluster.dts [new file with mode: 0644]
arch/riscv/boot/dts/thead/th1520-lpi4a-console-16g.dts [new file with mode: 0644]
arch/riscv/boot/dts/thead/th1520-lpi4a-console.dts [new file with mode: 0644]
arch/riscv/boot/dts/thead/th1520-lpi4a-dsi0-hdmi.dts [new file with mode: 0644]
arch/riscv/boot/dts/thead/th1520-lpi4a-laptop.dts [new file with mode: 0644]
arch/riscv/boot/dts/thead/th1520-lpi4a-z14inch-m0-16g.dts [new file with mode: 0644]
arch/riscv/boot/dts/thead/th1520-lpi4a-z14inch-m0.dts [new file with mode: 0644]
arch/riscv/boot/dts/thead/th1520-milkv-meles-4g.dts [new file with mode: 0644]
arch/riscv/boot/dts/thead/th1520-milkv-meles.dts [new file with mode: 0644]

index 6b1efc03cbd592d8e008e34a9b0b3790f5c735f6..3d66659ba934fed447a55730b027487b45efe553 100644 (file)
@@ -55,10 +55,13 @@ dtb-$(CONFIG_SOC_THEAD_FIRE) += fire-emu.dtb fire-emu-crash.dtb
 dtb-$(CONFIG_SOC_THEAD_FIRE) += fire-emu-soc-base.dtb fire-emu-soc-c910x4.dtb fire-emu-gpu-dpu-dsi0.dtb fire-emu-vi-dsp-vo.dtb fire-emu-vi-vp-vo.dtb
 dtb-$(CONFIG_SOC_THEAD_FIRE) += fire-emu-soc-base-sec.dtb
 
-dtb-$(CONFIG_SOC_THEAD) += light-lpi4a-laptop.dtb
-dtb-$(CONFIG_SOC_THEAD) += light-lpi4a-console.dtb light-lpi4a-console-16g.dtb
-dtb-$(CONFIG_SOC_THEAD) += light-lpi4a-z14inch-m0.dtb light-lpi4a-z14inch-m0-16g.dtb
-dtb-$(CONFIG_SOC_THEAD) += light-milkv-meles.dtb light-milkv-meles-4g.dtb
+dtb-$(CONFIG_SOC_THEAD) += th1520-beagle.dtb
+dtb-$(CONFIG_SOC_THEAD) += th1520-lpi4a-16gb.dtb
+dtb-$(CONFIG_SOC_THEAD) += th1520-lpi4a-laptop.dtb
+dtb-$(CONFIG_SOC_THEAD) += th1520-lpi4a-console.dtb th1520-lpi4a-console-16g.dtb
+dtb-$(CONFIG_SOC_THEAD) += th1520-lpi4a-cluster.dtb th1520-lpi4a-cluster-16gb.dtb
+dtb-$(CONFIG_SOC_THEAD) += th1520-lpi4a-z14inch-m0.dtb th1520-lpi4a-z14inch-m0-16g.dtb
+dtb-$(CONFIG_SOC_THEAD) += th1520-milkv-meles.dtb th1520-milkv-meles-4g.dtb
 
 targets += dtbs dtbs_install
 targets += $(dtb-y)
diff --git a/arch/riscv/boot/dts/thead/light-beagle-bone-buses.dtsi b/arch/riscv/boot/dts/thead/light-beagle-bone-buses.dtsi
deleted file mode 100644 (file)
index 2eeb5f6..0000000
+++ /dev/null
@@ -1,1490 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/*
- * Copyright (C) 2022 BeagleBoard.org - https://beagleboard.org/
- */
-
-#include <dt-bindings/gpio/gpio.h>
-#include <dt-bindings/board/light-fm-bone-pins.h>
-
-/********/
-/* LEDs */
-/********/
-&{/} {
-       gpio-leds {
-               compatible = "gpio-leds";
-               pinctrl-names = "default";
-
-               /* macro: BONE_LED(<headerpin>) */
-               #define BONE_LED(YY)\
-                       bone_led_##YY##: led_##YY {\
-                               status = "disabled";\
-                               linux,default-trigger = "default-off";\
-                               gpios = <gpio_##YY GPIO_ACTIVE_HIGH>;\
-                               pinctrl-0 = < &##YY##_gpio_pin >;\
-                       };
-
-               /*P8 header Bone LEDs*/
-               BONE_LED(P8_03)
-               BONE_LED(P8_04)
-               BONE_LED(P8_05)
-               BONE_LED(P8_06)
-               BONE_LED(P8_07)
-               BONE_LED(P8_08)
-               BONE_LED(P8_09)
-               BONE_LED(P8_10)
-               BONE_LED(P8_11)
-               BONE_LED(P8_12)
-               BONE_LED(P8_13)
-               BONE_LED(P8_14)
-               BONE_LED(P8_15)
-               BONE_LED(P8_16)
-               BONE_LED(P8_17)
-               BONE_LED(P8_18)
-               BONE_LED(P8_19)
-               BONE_LED(P8_20)
-               BONE_LED(P8_21)
-               BONE_LED(P8_22)
-               BONE_LED(P8_23)
-               BONE_LED(P8_24)
-               BONE_LED(P8_25)
-               BONE_LED(P8_26)
-               BONE_LED(P8_27)
-               BONE_LED(P8_28)
-               BONE_LED(P8_29)
-               BONE_LED(P8_30)
-               BONE_LED(P8_31)
-               BONE_LED(P8_32)
-               BONE_LED(P8_33)
-               BONE_LED(P8_34)
-               BONE_LED(P8_35)
-               BONE_LED(P8_36)
-               BONE_LED(P8_37)
-               BONE_LED(P8_38)
-               BONE_LED(P8_39)
-               BONE_LED(P8_40)
-               BONE_LED(P8_41)
-               BONE_LED(P8_42)
-               BONE_LED(P8_43)
-               BONE_LED(P8_44)
-               BONE_LED(P8_45)
-               BONE_LED(P8_46)
-
-               /*P9 header Bone LEDs*/
-               BONE_LED(P9_11)
-               BONE_LED(P9_12)
-               BONE_LED(P9_13)
-               BONE_LED(P9_14)
-               BONE_LED(P9_15)
-               BONE_LED(P9_16)
-               BONE_LED(P9_17)
-               BONE_LED(P9_18)
-               BONE_LED(P9_19)
-               BONE_LED(P9_20)
-               BONE_LED(P9_21)
-               BONE_LED(P9_22)
-               BONE_LED(P9_23)
-               BONE_LED(P9_24)
-               BONE_LED(P9_25)
-               BONE_LED(P9_26)
-               BONE_LED(P9_27)
-               BONE_LED(P9_28)
-               BONE_LED(P9_29)
-               BONE_LED(P9_30)
-               BONE_LED(P9_31)
-               BONE_LED(P9_41)
-               BONE_LED(P9_42)
-
-               /*mikroBus*/
-               BONE_LED(mb_pwm)
-               BONE_LED(mb_rst)
-               BONE_LED(mb_int)
-               BONE_LED(mb_rxd)
-               BONE_LED(mb_txd)
-               BONE_LED(mb_cs)
-               BONE_LED(mb_sck)
-               BONE_LED(mb_mosi)
-               BONE_LED(mb_miso)
-               BONE_LED(mb_scl)
-               BONE_LED(mb_sda)
-
-               /*AP6203BM*/
-               BONE_LED(bt_shutdown)
-               BONE_LED(bt_device_wakeup)
-               BONE_LED(bt_host_wakeup)
-       };
-
-       /* Dummy driver to request setup for cape header pins */
-       cape_header: pinmux_dummy {
-               compatible = "gpio-leds";
-               pinctrl-names = "default";
-               status = "okay";
-               pinctrl-0 = <
-                       &P8_03_gpio_pin
-                       &P8_04_gpio_pin
-                       &P8_05_gpio_pin
-                       &P8_06_gpio_pin
-                       &P8_07_gpio_pin
-                       &P8_08_gpio_pin
-                       &P8_09_gpio_pin
-                       &P8_10_gpio_pin
-                       &P8_11_gpio_pin
-                       &P8_12_gpio_pin
-                       &P8_13_gpio_pin
-                       &P8_14_gpio_pin
-                       &P8_15_gpio_pin
-                       &P8_16_gpio_pin
-                       &P8_17_gpio_pin
-                       &P8_18_gpio_pin
-                       &P8_19_gpio_pin
-                       &P8_20_gpio_pin
-                       &P8_21_gpio_pin
-                       &P8_22_gpio_pin
-                       &P8_23_gpio_pin
-                       &P8_24_gpio_pin
-                       &P8_25_gpio_pin
-                       &P8_26_gpio_pin
-                       &P8_27_gpio_pin
-                       &P8_28_gpio_pin
-                       &P8_29_gpio_pin
-                       &P8_30_gpio_pin
-                       &P8_31_gpio_pin
-                       &P8_32_gpio_pin
-                       &P8_33_gpio_pin
-                       &P8_34_gpio_pin
-                       &P8_35_gpio_pin
-                       &P8_36_gpio_pin
-                       &P8_37_gpio_pin
-                       &P8_38_gpio_pin
-                       &P8_39_gpio_pin
-                       &P8_40_gpio_pin
-                       &P8_41_gpio_pin
-                       &P8_42_gpio_pin
-                       &P8_43_gpio_pin
-                       &P8_44_gpio_pin
-                       &P8_45_gpio_pin
-                       &P8_46_gpio_pin
-
-                       &P9_11_gpio_pin
-                       &P9_12_gpio_pin
-                       &P9_13_gpio_pin
-                       &P9_14_gpio_pin
-                       &P9_15_gpio_pin
-                       &P9_16_gpio_pin
-                       &P9_17_gpio_pin
-                       &P9_18_gpio_pin
-                       &P9_19_gpio_pin
-                       &P9_20_gpio_pin
-                       &P9_21_gpio_pin
-                       &P9_22_gpio_pin
-                       &P9_23_gpio_pin
-                       &P9_24_gpio_pin
-                       &P9_25_gpio_pin
-                       &P9_26_gpio_pin
-                       &P9_27_gpio_pin
-                       &P9_28_gpio_pin
-                       &P9_29_gpio_pin
-                       &P9_30_gpio_pin
-                       &P9_31_gpio_pin
-                       &P9_41_gpio_pin
-                       &P9_42_gpio_pin
-
-                       &mb_pwm_gpio_pin
-                       &mb_rst_gpio_pin
-                       &mb_int_gpio_pin
-                       &mb_rxd_gpio_pin
-                       &mb_txd_gpio_pin
-                       &mb_cs_gpio_pin
-                       //&mb_sck_gpio_pin
-                       //&mb_mosi_gpio_pin
-                       //&mb_miso_gpio_pin
-                       &mb_scl_gpio_pin
-                       &mb_sda_gpio_pin
-
-                       &bt_shutdown_gpio_pin
-                       &bt_device_wakeup_gpio_pin
-                       &bt_host_wakeup_gpio_pin
-               >;
-       };
-};
-
-/* macro: BONE_PIN( <pin>, <mode_name>, <register_value_macro(s)> ) */
-#define BONE_PIN(XX,ZZ,QQ) \
-       padctrl_##XX { \
-               XX##_##ZZ##_pin: pinmux_##XX##_##ZZ##_pin \
-               { thead,pins = < QQ >; }; \
-       };
-
-/* Full P8/P9 header mode definitions */
-
-/* P8_01 - GND */
-/* P8_02 - GND */
-
-/* P8_03 (Ball:J34) GPIO1_21_MUX*/
-BONE_PIN(P8_03, default, P8_03(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_03, gpio, P8_03(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_03, gpio_pu, P8_03(MUX_MODE3, (PIN_INPUT_PULLUP | STRENGTH_MID)))
-BONE_PIN(P8_03, gpio_pd, P8_03(MUX_MODE3, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
-
-/* P8_04 (Ball:J35) GPIO1_22_MUX*/
-BONE_PIN(P8_04, default, P8_04(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_04, gpio, P8_04(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_04, gpio_pu, P8_04(MUX_MODE3, (PIN_INPUT_PULLUP | STRENGTH_MID)))
-BONE_PIN(P8_04, gpio_pd, P8_04(MUX_MODE3, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
-
-/* P8_05 (Ball:K32) GPIO1_23_MUX*/
-BONE_PIN(P8_05, default, P8_05(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_05, gpio, P8_05(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_05, gpio_pu, P8_05(MUX_MODE3, (PIN_INPUT_PULLUP | STRENGTH_MID)))
-BONE_PIN(P8_05, gpio_pd, P8_05(MUX_MODE3, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
-
-/* P8_06 (Ball:K33) GPIO1_24_MUX*/
-BONE_PIN(P8_06, default, P8_06(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_06, gpio, P8_06(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_06, gpio_pu, P8_06(MUX_MODE3, (PIN_INPUT_PULLUP | STRENGTH_MID)))
-BONE_PIN(P8_06, gpio_pd, P8_06(MUX_MODE3, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
-
-/* P8_07 (Ball:K34) GPIO1_25_MUX*/
-BONE_PIN(P8_07, default, P8_07(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_07, gpio, P8_07(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_07, gpio_pu, P8_07(MUX_MODE3, (PIN_INPUT_PULLUP | STRENGTH_MID)))
-BONE_PIN(P8_07, gpio_pd, P8_07(MUX_MODE3, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
-
-/* P8_08 (Ball:K35) GPIO1_26_MUX*/
-BONE_PIN(P8_08, default, P8_08(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_08, gpio, P8_08(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_08, gpio_pu, P8_08(MUX_MODE0, (PIN_INPUT_PULLUP | STRENGTH_MID)))
-BONE_PIN(P8_08, gpio_pd, P8_08(MUX_MODE0, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
-
-/* P8_09 (Ball:K36) GPIO1_27_MUX*/
-BONE_PIN(P8_09, default, P8_09(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_09, gpio, P8_09(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_09, gpio_pu, P8_09(MUX_MODE0, (PIN_INPUT_PULLUP | STRENGTH_MID)))
-BONE_PIN(P8_09, gpio_pd, P8_09(MUX_MODE0, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
-
-/* P8_10 (Ball:K37) GPIO1_28_MUX*/
-BONE_PIN(P8_10, default, P8_10(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_10, gpio, P8_10(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_10, gpio_pu, P8_10(MUX_MODE0, (PIN_INPUT_PULLUP | STRENGTH_MID)))
-BONE_PIN(P8_10, gpio_pd, P8_10(MUX_MODE0, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
-
-/* P8_11 (Ball:L32) GPIO1_29_MUX*/
-BONE_PIN(P8_11, default, P8_11(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_11, gpio, P8_11(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_11, gpio_pu, P8_11(MUX_MODE0, (PIN_INPUT_PULLUP | STRENGTH_MID)))
-BONE_PIN(P8_11, gpio_pd, P8_11(MUX_MODE0, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
-
-/* P8_12 (Ball:L33) GPIO1_30_MUX*/
-BONE_PIN(P8_12, default, P8_12(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_12, gpio, P8_12(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_12, gpio_pu, P8_12(MUX_MODE0, (PIN_INPUT_PULLUP | STRENGTH_MID)))
-BONE_PIN(P8_12, gpio_pd, P8_12(MUX_MODE0, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
-
-/* P8_13 (Ball:C6) GPIO3_2_MUX*/
-BONE_PIN(P8_13, default, P8_13(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_13, gpio, P8_13(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_13, gpio_pu, P8_13(MUX_MODE0, (PIN_INPUT_PULLUP | STRENGTH_MID)))
-BONE_PIN(P8_13, gpio_pd, P8_13(MUX_MODE0, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
-BONE_PIN(P8_13, pwm, P8_13(MUX_MODE1, (PIN_OUTPUT | STRENGTH_MID)))
-
-/* P8_14 (Ball:E29) CLK_OUT_3_MUX*/
-BONE_PIN(P8_14, default, P8_14(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_14, gpio, P8_14(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_14, gpio_pu, P8_14(MUX_MODE3, (PIN_INPUT_PULLUP | STRENGTH_MID)))
-BONE_PIN(P8_14, gpio_pd, P8_14(MUX_MODE3, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
-
-/* P8_15 (Ball:A6) GPIO3_0_MUX*/
-BONE_PIN(P8_15, default, P8_15(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_15, gpio, P8_15(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_15, gpio_pu, P8_15(MUX_MODE0, (PIN_INPUT_PULLUP | STRENGTH_MID)))
-BONE_PIN(P8_15, gpio_pd, P8_15(MUX_MODE0, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
-
-/* P8_16 (Ball:F34) GPIO0_20_MUX*/
-BONE_PIN(P8_16, default, P8_16(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_16, gpio, P8_16(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_16, gpio_pu, P8_16(MUX_MODE0, (PIN_INPUT_PULLUP | STRENGTH_MID)))
-BONE_PIN(P8_16, gpio_pd, P8_16(MUX_MODE0, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
-BONE_PIN(P8_16, uart, P8_16(MUX_MODE1, (PIN_OUTPUT | STRENGTH_MID)))
-
-/* P8_17 (Ball:B6) GPIO3_1_MUX*/
-BONE_PIN(P8_17, default, P8_17(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_17, gpio, P8_17(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_17, gpio_pu, P8_17(MUX_MODE0, (PIN_INPUT_PULLUP | STRENGTH_MID)))
-BONE_PIN(P8_17, gpio_pd, P8_17(MUX_MODE0, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
-
-/* P8_18 (Ball:B34) GPIO1_5_MUX*/
-BONE_PIN(P8_18, default, P8_18(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_18, gpio, P8_18(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_18, gpio_pu, P8_18(MUX_MODE0, (PIN_INPUT_PULLUP | STRENGTH_MID)))
-BONE_PIN(P8_18, gpio_pd, P8_18(MUX_MODE0, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
-
-/* P8_19 (Ball:D6) GPIO3_3_MUX*/
-BONE_PIN(P8_19, default, P8_19(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_19, gpio, P8_19(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_19, gpio_pu, P8_19(MUX_MODE0, (PIN_INPUT_PULLUP | STRENGTH_MID)))
-BONE_PIN(P8_19, gpio_pd, P8_19(MUX_MODE0, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
-BONE_PIN(P8_19, pwm, P8_19(MUX_MODE1, (PIN_OUTPUT | STRENGTH_MID)))
-
-/* P8_20 (Ball:C34) GPIO1_6_MUX*/
-BONE_PIN(P8_20, default, P8_20(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_20, gpio, P8_20(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_20, gpio_pu, P8_20(MUX_MODE0, (PIN_INPUT_PULLUP | STRENGTH_MID)))
-BONE_PIN(P8_20, gpio_pd, P8_20(MUX_MODE0, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
-
-/* P8_21 (Ball:D34) GPIO1_7_MUX*/
-BONE_PIN(P8_21, default, P8_21(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_21, gpio, P8_21(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_21, gpio_pu, P8_21(MUX_MODE0, (PIN_INPUT_PULLUP | STRENGTH_MID)))
-BONE_PIN(P8_21, gpio_pd, P8_21(MUX_MODE0, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
-BONE_PIN(P8_21, spi, P8_21(MUX_MODE1, (PIN_OUTPUT | STRENGTH_MID)))
-
-/* P8_22 (Ball:B35) GPIO1_8_MUX*/
-BONE_PIN(P8_22, default, P8_22(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_22, gpio, P8_22(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_22, gpio_pu, P8_22(MUX_MODE0, (PIN_INPUT_PULLUP | STRENGTH_MID)))
-BONE_PIN(P8_22, gpio_pd, P8_22(MUX_MODE0, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
-BONE_PIN(P8_22, spi, P8_22(MUX_MODE1, (PIN_OUTPUT | STRENGTH_MID)))
-
-/* P8_23 (Ball:A36) GPIO1_9_MUX*/
-BONE_PIN(P8_23, default, P8_23(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_23, gpio, P8_23(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_23, gpio_pu, P8_23(MUX_MODE0, (PIN_INPUT_PULLUP | STRENGTH_MID)))
-BONE_PIN(P8_23, gpio_pd, P8_23(MUX_MODE0, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
-BONE_PIN(P8_23, spi, P8_23(MUX_MODE1, (PIN_OUTPUT | STRENGTH_MID)))
-
-/* P8_24 (Ball:B36) GPIO1_10_MUX*/
-BONE_PIN(P8_24, default, P8_24(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_24, gpio, P8_24(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_24, gpio_pu, P8_24(MUX_MODE0, (PIN_INPUT_PULLUP | STRENGTH_MID)))
-BONE_PIN(P8_24, gpio_pd, P8_24(MUX_MODE0, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
-BONE_PIN(P8_24, spi, P8_24(MUX_MODE1, (PIN_INPUT | STRENGTH_MID)))
-
-/* P8_25 (Ball:B37) GPIO1_11_MUX*/
-BONE_PIN(P8_25, default, P8_25(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_25, gpio, P8_25(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_25, gpio_pu, P8_25(MUX_MODE0, (PIN_INPUT_PULLUP | STRENGTH_MID)))
-BONE_PIN(P8_25, gpio_pd, P8_25(MUX_MODE0, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
-
-/* P8_26 (Ball:C36) GPIO1_12_MUX*/
-BONE_PIN(P8_26, default, P8_26(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_26, gpio, P8_26(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_26, gpio_pu, P8_26(MUX_MODE0, (PIN_INPUT_PULLUP | STRENGTH_MID)))
-BONE_PIN(P8_26, gpio_pd, P8_26(MUX_MODE0, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
-
-/* P8_27 (Ball:D37) GPIO1_15_MUX*/
-BONE_PIN(P8_27, default, P8_27(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_27, gpio, P8_27(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_27, gpio_pu, P8_27(MUX_MODE0, (PIN_INPUT_PULLUP | STRENGTH_MID)))
-BONE_PIN(P8_27, gpio_pd, P8_27(MUX_MODE0, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
-
-/* P8_28 (Ball:E34) GPIO1_16_MUX*/
-BONE_PIN(P8_28, default, P8_28(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_28, gpio, P8_28(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_28, gpio_pu, P8_28(MUX_MODE0, (PIN_INPUT_PULLUP | STRENGTH_MID)))
-BONE_PIN(P8_28, gpio_pd, P8_28(MUX_MODE0, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
-
-/* P8_29 (Ball:D36) GPIO1_14_MUX*/
-BONE_PIN(P8_29, default, P8_29(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_29, gpio, P8_29(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_29, gpio_pu, P8_29(MUX_MODE0, (PIN_INPUT_PULLUP | STRENGTH_MID)))
-BONE_PIN(P8_29, gpio_pd, P8_29(MUX_MODE0, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
-BONE_PIN(P8_29, uart, P8_29(MUX_MODE1, (PIN_INPUT | STRENGTH_MID)))
-
-/* P8_30 (Ball:D35) GPIO1_13_MUX*/
-BONE_PIN(P8_30, default, P8_30(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_30, gpio, P8_30(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_30, gpio_pu, P8_30(MUX_MODE0, (PIN_INPUT_PULLUP | STRENGTH_MID)))
-BONE_PIN(P8_30, gpio_pd, P8_30(MUX_MODE0, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
-BONE_PIN(P8_30, uart, P8_30(MUX_MODE1, (PIN_OUTPUT | STRENGTH_MID)))
-
-/* P8_31 (Ball:D33) GPIO1_3_MUX*/
-BONE_PIN(P8_31, default, P8_31(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_31, gpio, P8_31(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_31, gpio_pu, P8_31(MUX_MODE0, (PIN_INPUT_PULLUP | STRENGTH_MID)))
-BONE_PIN(P8_31, gpio_pd, P8_31(MUX_MODE0, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
-
-/* P8_32 (Ball:A34) GPIO1_4_MUX*/
-BONE_PIN(P8_32, default, P8_32(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_32, gpio, P8_32(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_32, gpio_pu, P8_32(MUX_MODE0, (PIN_INPUT_PULLUP | STRENGTH_MID)))
-BONE_PIN(P8_32, gpio_pd, P8_32(MUX_MODE0, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
-
-/* P8_33 (Ball:C33) GPIO1_2_MUX*/
-BONE_PIN(P8_33, default, P8_33(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_33, gpio, P8_33(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_33, gpio_pu, P8_33(MUX_MODE0, (PIN_INPUT_PULLUP | STRENGTH_MID)))
-BONE_PIN(P8_33, gpio_pd, P8_33(MUX_MODE0, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
-
-/* P8_34 (Ball:E32) GPIO1_0_MUX*/
-BONE_PIN(P8_34, default, P8_34(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_34, gpio, P8_34(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_34, gpio_pu, P8_34(MUX_MODE0, (PIN_INPUT_PULLUP | STRENGTH_MID)))
-BONE_PIN(P8_34, gpio_pd, P8_34(MUX_MODE0, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
-
-/* P8_35 (Ball:A32) GPIO1_1_MUX*/
-BONE_PIN(P8_35, default, P8_35(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_35, gpio, P8_35(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_35, gpio_pu, P8_35(MUX_MODE0, (PIN_INPUT_PULLUP | STRENGTH_MID)))
-BONE_PIN(P8_35, gpio_pd, P8_35(MUX_MODE0, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
-
-/* P8_36 (Ball:D32) GPIO0_31_MUX*/
-BONE_PIN(P8_36, default, P8_36(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_36, gpio, P8_36(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_36, gpio_pu, P8_36(MUX_MODE0, (PIN_INPUT_PULLUP | STRENGTH_MID)))
-BONE_PIN(P8_36, gpio_pd, P8_36(MUX_MODE0, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
-
-/* P8_37 (Ball:B32) GPIO0_29_MUX*/
-BONE_PIN(P8_37, default, P8_37(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_37, gpio, P8_37(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_37, gpio_pu, P8_37(MUX_MODE0, (PIN_INPUT_PULLUP | STRENGTH_MID)))
-BONE_PIN(P8_37, gpio_pd, P8_37(MUX_MODE0, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
-
-/* P8_38 (Ball:C32) GPIO0_30_MUX*/
-BONE_PIN(P8_38, default, P8_38(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_38, gpio, P8_38(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_38, gpio_pu, P8_38(MUX_MODE0, (PIN_INPUT_PULLUP | STRENGTH_MID)))
-BONE_PIN(P8_38, gpio_pd, P8_38(MUX_MODE0, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
-
-/* P8_39 (Ball:D31) GPIO0_27_MUX*/
-BONE_PIN(P8_39, default, P8_39(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_39, gpio, P8_39(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_39, gpio_pu, P8_39(MUX_MODE0, (PIN_INPUT_PULLUP | STRENGTH_MID)))
-BONE_PIN(P8_39, gpio_pd, P8_39(MUX_MODE0, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
-BONE_PIN(P8_39, i2c, P8_39(MUX_MODE2, (PIN_OUTPUT | STRENGTH_MID)))
-
-/* P8_40 (Ball:E31) GPIO0_28_MUX*/
-BONE_PIN(P8_40, default, P8_40(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_40, gpio, P8_40(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_40, gpio_pu, P8_40(MUX_MODE0, (PIN_INPUT_PULLUP | STRENGTH_MID)))
-BONE_PIN(P8_40, gpio_pd, P8_40(MUX_MODE0, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
-BONE_PIN(P8_40, i2c, P8_40(MUX_MODE2, (PIN_INPUT | STRENGTH_MID)))
-
-/* P8_41 (Ball:F30) GPIO0_25_MUX*/
-BONE_PIN(P8_41, default, P8_41(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_41, gpio, P8_41(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))    
-BONE_PIN(P8_41, gpio_pu, P8_41(MUX_MODE0, (PIN_INPUT_PULLUP | STRENGTH_MID)))
-BONE_PIN(P8_41, gpio_pd, P8_41(MUX_MODE0, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
-
-/* P8_42 (Ball:C31) GPIO0_26_MUX*/
-BONE_PIN(P8_42, default, P8_42(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_42, gpio, P8_42(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_42, gpio_pu, P8_42(MUX_MODE0, (PIN_INPUT_PULLUP | STRENGTH_MID)))
-BONE_PIN(P8_42, gpio_pd, P8_42(MUX_MODE0, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
-
-/* P8_43 (Ball:C30) GPIO0_23_MUX*/
-BONE_PIN(P8_43, default, P8_43(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_43, gpio, P8_43(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_43, gpio_pu, P8_43(MUX_MODE0, (PIN_INPUT_PULLUP | STRENGTH_MID)))
-BONE_PIN(P8_43, gpio_pd, P8_43(MUX_MODE0, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
-BONE_PIN(P8_43, i2c, P8_43(MUX_MODE2, (PIN_OUTPUT | STRENGTH_MID)))
-
-/* P8_44 (Ball:D30) GPIO0_24_MUX*/
-BONE_PIN(P8_44, default, P8_44(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_44, gpio, P8_44(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_44, gpio_pu, P8_44(MUX_MODE0, (PIN_INPUT_PULLUP | STRENGTH_MID)))
-BONE_PIN(P8_44, gpio_pd, P8_44(MUX_MODE0, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
-
-/* P8_45 (Ball:F36) GPIO0_21_MUX*/
-BONE_PIN(P8_45, default, P8_45(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_45, gpio, P8_45(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_45, gpio_pu, P8_45(MUX_MODE0, (PIN_INPUT_PULLUP | STRENGTH_MID)))
-BONE_PIN(P8_45, gpio_pd, P8_45(MUX_MODE0, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
-BONE_PIN(P8_45, uart, P8_45(MUX_MODE1, (PIN_INPUT | STRENGTH_MID)))
-
-/* P8_46 (Ball:D29) GPIO0_22_MUX*/
-BONE_PIN(P8_46, default, P8_46(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_46, gpio, P8_46(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P8_46, gpio_pu, P8_46(MUX_MODE0, (PIN_INPUT_PULLUP | STRENGTH_MID)))
-BONE_PIN(P8_46, gpio_pd, P8_46(MUX_MODE0, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
-BONE_PIN(P8_46, i2c, P8_46(MUX_MODE2, (PIN_OUTPUT | STRENGTH_MID)))
-
-/* Full P9 header mode definitions */
-/* P9_01 - GND */
-/* P9_02 - GND */
-/* P9_03 - VOUT_3V3 */
-/* P9_04 - VOUT_3V3 */
-/* P9_05 - VIN */
-/* P9_06 - VIN */
-/* P9_07 - VOUT_SYS */
-/* P9_08 - VOUT_SYS */
-/* P9_09 - ONKEY# */
-/* P9_10 - RESET# */
-
-/* P9_11 (Ball:M32) UART1_TXD_MUX*/
-BONE_PIN(P9_11, default, P9_11(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P9_11, gpio, P9_11(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P9_11, gpio_pu, P9_11(MUX_MODE3, (PIN_INPUT_PULLUP | STRENGTH_MID)))
-BONE_PIN(P9_11, gpio_pd, P9_11(MUX_MODE3, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
-BONE_PIN(P9_11, uart, P9_11(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-
-/* P9_12 (Ball:H1) QSPI0_CSN0_MUX*/
-BONE_PIN(P9_12, default, P9_12(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P9_12, gpio, P9_12(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P9_12, gpio_pu, P9_12(MUX_MODE3, (PIN_INPUT_PULLUP | STRENGTH_MID)))
-BONE_PIN(P9_12, gpio_pd, P9_12(MUX_MODE3, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
-BONE_PIN(P9_12, pwm, P9_12(MUX_MODE1, (PIN_OUTPUT| STRENGTH_MID)))
-BONE_PIN(P9_12, i2c, P9_12(MUX_MODE2, (PIN_INPUT | STRENGTH_MID)))
-
-/* P9_13 (Ball:M33) UART1_RXD_MUX*/
-BONE_PIN(P9_13, default, P9_13(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P9_13, gpio, P9_13(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P9_13, gpio_pu, P9_13(MUX_MODE3, (PIN_INPUT_PULLUP | STRENGTH_MID)))
-BONE_PIN(P9_13, gpio_pd, P9_13(MUX_MODE3, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
-BONE_PIN(P9_13, uart, P9_13(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-
-/* P9_14 (Ball:K3) QSPI0_D1_MISO_MUX*/
-BONE_PIN(P9_14, default, P9_14(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P9_14, gpio, P9_14(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P9_14, gpio_pu, P9_14(MUX_MODE3, (PIN_INPUT_PULLUP | STRENGTH_MID)))
-BONE_PIN(P9_14, gpio_pd, P9_14(MUX_MODE3, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
-BONE_PIN(P9_14, pwm, P9_14(MUX_MODE1, (PIN_OUTPUT | STRENGTH_MID)))
-
-/* P9_15 (Ball:K2) QSPI0_D2_WP_MUX*/
-BONE_PIN(P9_15, default, P9_15(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P9_15, gpio, P9_15(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P9_15, gpio_pu, P9_15(MUX_MODE3, (PIN_INPUT_PULLUP | STRENGTH_MID)))
-BONE_PIN(P9_15, gpio_pd, P9_15(MUX_MODE3, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
-BONE_PIN(P9_15, pwm, P9_15(MUX_MODE1, (PIN_OUTPUT | STRENGTH_MID)))
-
-/* P9_16 (Ball:J3) QSPI0_D0_MOSI_MUX*/
-BONE_PIN(P9_16, default, P9_16(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P9_16, gpio, P9_16(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P9_16, gpio_pu, P9_16(MUX_MODE3, (PIN_INPUT_PULLUP | STRENGTH_MID)))
-BONE_PIN(P9_16, gpio_pd, P9_16(MUX_MODE3, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
-BONE_PIN(P9_16, pwm, P9_16(MUX_MODE1, (PIN_OUTPUT | STRENGTH_MID)))
-
-/* P9_17 (Ball:H32) QSPI1_CSN0_MUX*/
-BONE_PIN(P9_17, default, P9_17(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P9_17, gpio, P9_17(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P9_17, gpio_pu, P9_17(MUX_MODE3, (PIN_INPUT_PULLUP | STRENGTH_MID)))
-BONE_PIN(P9_17, gpio_pd, P9_17(MUX_MODE3, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
-
-/* P9_18 (Ball:G35) QSPI1_D0_MOSI_MUX*/
-BONE_PIN(P9_18, default, P9_18(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P9_18, gpio, P9_18(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P9_18, gpio_pu, P9_18(MUX_MODE3, (PIN_INPUT_PULLUP | STRENGTH_MID)))
-BONE_PIN(P9_18, gpio_pd, P9_18(MUX_MODE3, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
-BONE_PIN(P9_18, i2c, P9_18(MUX_MODE2, (PIN_INPUT | STRENGTH_MID)))
-
-/* P9_19 (Ball:G4) I2C2_SCL_MUX*/
-BONE_PIN(P9_19, default, P9_19(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P9_19, gpio, P9_19(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P9_19, gpio_pu, P9_19(MUX_MODE3, (PIN_INPUT_PULLUP | STRENGTH_MID)))
-BONE_PIN(P9_19, gpio_pd, P9_19(MUX_MODE3, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
-BONE_PIN(P9_19, i2c, P9_19(MUX_MODE0, (PIN_OUTPUT | STRENGTH_MID)))
-BONE_PIN(P9_19, uart, P9_19(MUX_MODE1, (PIN_OUTPUT | STRENGTH_MID)))
-
-/* P9_20 (Ball:G3) I2C2_SDA_MUX*/
-BONE_PIN(P9_20, default, P9_20(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P9_20, gpio, P9_20(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P9_20, gpio_pu, P9_20(MUX_MODE3, (PIN_INPUT_PULLUP | STRENGTH_MID)))
-BONE_PIN(P9_20, gpio_pd, P9_20(MUX_MODE3, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
-BONE_PIN(P9_20, i2c, P9_20(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P9_20, uart, P9_20(MUX_MODE1, (PIN_INPUT | STRENGTH_MID)))
-
-/* P9_21 (Ball:G34) QSPI1_D1_MISO_MUX*/
-BONE_PIN(P9_21, default, P9_21(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P9_21, gpio, P9_21(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P9_21, gpio_pu, P9_21(MUX_MODE3, (PIN_INPUT_PULLUP | STRENGTH_MID)))
-BONE_PIN(P9_21, gpio_pd, P9_21(MUX_MODE3, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
-
-/* P9_22 (Ball:H34) QSPI1_SCLK_MUX*/
-BONE_PIN(P9_22, default, P9_22(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P9_22, gpio, P9_22(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P9_22, gpio_pu, P9_22(MUX_MODE3, (PIN_INPUT_PULLUP | STRENGTH_MID)))
-BONE_PIN(P9_22, gpio_pd, P9_22(MUX_MODE3, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
-
-/* P9_23 (Ball:K1) QSPI0_D3_HOLD_MUX*/
-BONE_PIN(P9_23, default, P9_23(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P9_23, gpio, P9_23(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P9_23, gpio_pu, P9_23(MUX_MODE3, (PIN_INPUT_PULLUP | STRENGTH_MID)))
-BONE_PIN(P9_23, gpio_pd, P9_23(MUX_MODE3, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
-
-/* P9_24 (Ball:G33) QSPI1_D2_WP_MUX*/
-BONE_PIN(P9_24, default, P9_24(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P9_24, gpio, P9_24(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P9_24, gpio_pu, P9_24(MUX_MODE3, (PIN_INPUT_PULLUP | STRENGTH_MID)))
-BONE_PIN(P9_24, gpio_pd, P9_24(MUX_MODE3, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
-BONE_PIN(P9_24, uart, P9_24(MUX_MODE2, (PIN_OUTPUT | STRENGTH_MID)))
-
-/* P9_25 (Ball:F5) GPIO2_18_MUX*/
-BONE_PIN(P9_25, default, P9_25(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P9_25, gpio, P9_25(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P9_25, gpio_pu, P9_25(MUX_MODE0, (PIN_INPUT_PULLUP | STRENGTH_MID)))
-BONE_PIN(P9_25, gpio_pd, P9_25(MUX_MODE0, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
-
-/* P9_26 (Ball:F37) QSPI1_D3_HOLD_MUX*/
-BONE_PIN(P9_26, default, P9_26(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P9_26, gpio, P9_26(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P9_26, gpio_pu, P9_26(MUX_MODE3, (PIN_INPUT_PULLUP | STRENGTH_MID)))
-BONE_PIN(P9_26, gpio_pd, P9_26(MUX_MODE3, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
-BONE_PIN(P9_26, uart, P9_26(MUX_MODE2, (PIN_INPUT | STRENGTH_MID)))
-
-/* P9_27 (Ball:E4) GPIO2_19_MUX*/
-BONE_PIN(P9_27, default, P9_27(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P9_27, gpio, P9_27(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P9_27, gpio_pu, P9_27(MUX_MODE0, (PIN_INPUT_PULLUP | STRENGTH_MID)))
-BONE_PIN(P9_27, gpio_pd, P9_27(MUX_MODE0, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
-
-/* P9_28 (Ball:E3) SPI_CSN_MUX*/
-BONE_PIN(P9_28, default, P9_28(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P9_28, gpio, P9_28(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P9_28, gpio_pu, P9_28(MUX_MODE3, (PIN_INPUT_PULLUP | STRENGTH_MID)))
-BONE_PIN(P9_28, gpio_pd, P9_28(MUX_MODE3, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
-BONE_PIN(P9_28, uart, P9_28(MUX_MODE1, (PIN_INPUT | STRENGTH_MID)))
-
-/* P9_29 (Ball:F1) SPI_MISO_MUX*/
-BONE_PIN(P9_29, default, P9_29(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P9_29, gpio, P9_29(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P9_29, gpio_pu, P9_29(MUX_MODE3, (PIN_INPUT_PULLUP | STRENGTH_MID)))
-BONE_PIN(P9_29, gpio_pd, P9_29(MUX_MODE3, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
-BONE_PIN(P9_29, spi, P9_29(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-
-/* P9_30 (Ball:F2) SPI_MOSI_MUX*/
-BONE_PIN(P9_30, default, P9_30(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P9_30, gpio, P9_30(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P9_30, gpio_pu, P9_30(MUX_MODE3, (PIN_INPUT_PULLUP | STRENGTH_MID)))
-BONE_PIN(P9_30, gpio_pd, P9_30(MUX_MODE3, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
-BONE_PIN(P9_30, spi, P9_30(MUX_MODE0, (PIN_OUTPUT | STRENGTH_MID)))
-
-/* P9_31 (Ball:D3) SPI_SCLK_MUX*/
-BONE_PIN(P9_31, default, P9_31(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P9_31, gpio, P9_31(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P9_31, gpio_pu, P9_31(MUX_MODE3, (PIN_INPUT_PULLUP | STRENGTH_MID)))
-BONE_PIN(P9_31, gpio_pd, P9_31(MUX_MODE3, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
-BONE_PIN(P9_31, spi, P9_31(MUX_MODE0, (PIN_OUTPUT_PULLDOWN | STRENGTH_MID)))
-BONE_PIN(P9_31, uart, P9_31(MUX_MODE1, (PIN_OUTPUT_PULLDOWN | STRENGTH_MID)))
-
-/* P9_32 - GND */
-/* P9_33 - ADC_VIN_CH4 */
-/* P9_34 - GND */
-/* P9_35 - ADC_VIN_CH6 */
-/* P9_36 - ADC_VIN_CH5 */
-/* P9_37 - ADC_VIN_CH2 */
-/* P9_38 - ADC_VIN_CH3 */
-/* P9_39 - ADC_VIN_CH0 */
-/* P9_39 - ADC_VIN_CH1 */
-
-/* P9_41 (Ball:D2) GPIO2_13_MUX*/
-BONE_PIN(P9_41, default, P9_41(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P9_41, gpio, P9_41(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P9_41, gpio_pu, P9_41(MUX_MODE0, (PIN_INPUT_PULLUP | STRENGTH_MID)))
-BONE_PIN(P9_41, gpio_pd, P9_41(MUX_MODE0, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
-
-/* P9_42 (Ball:H3) QSPI0_SCLK_MUX*/
-BONE_PIN(P9_42, default, P9_42(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P9_42, gpio, P9_42(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(P9_42, gpio_pu, P9_42(MUX_MODE3, (PIN_INPUT_PULLUP | STRENGTH_MID)))
-BONE_PIN(P9_42, gpio_pd, P9_42(MUX_MODE3, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
-BONE_PIN(P9_42, pwm, P9_42(MUX_MODE1, (PIN_OUTPUT_PULLDOWN | STRENGTH_MID)))
-
-/* P9_43 - GND */
-/* P9_44 - GND */
-/* P9_45 - GND */
-/* P9_46 - GND */
-
-/* mikroBus port*/
-
-/*PWM*/
-BONE_PIN(mb_pwm, gpio, mb_pwm(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(mb_pwm, pwm, mb_pwm(MUX_MODE1, (PIN_OUTPUT | STRENGTH_MID)))
-
-/*GPIO*/
-BONE_PIN(mb_rst, gpio, mb_rst(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(mb_int, gpio, mb_int(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-
-/*UART*/
-BONE_PIN(mb_rxd, gpio, mb_rxd(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(mb_txd, gpio, mb_txd(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
-
-BONE_PIN(mb_rxd, uart, mb_rxd(MUX_MODE1, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(mb_txd, uart, mb_txd(MUX_MODE1, (PIN_INPUT | STRENGTH_MID)))
-
-/*SPI*/
-BONE_PIN(mb_cs, gpio, mb_cs(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(mb_sck, gpio, mb_sck(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(mb_mosi, gpio, mb_mosi(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(mb_miso, gpio, mb_miso(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
-
-BONE_PIN(mb_cs, spi, mb_cs(MUX_MODE0, (PIN_OUTPUT | STRENGTH_MID)))
-BONE_PIN(mb_sck, spi, mb_sck(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(mb_mosi, spi, mb_mosi(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(mb_miso, spi, mb_miso(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-
-/*I2C*/
-BONE_PIN(mb_scl, gpio, mb_scl(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(mb_sda, gpio, mb_sda(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-
-BONE_PIN(mb_scl, i2c, mb_scl(MUX_MODE1, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(mb_sda, i2c, mb_sda(MUX_MODE1, (PIN_INPUT | STRENGTH_MID)))
-
-&{/} {
-       aliases {
-               mikrobus0 = &bone_mikrobus0;
-       };
-
-       bone_mikrobus0: linux-mikrobus {
-               compatible = "linux,mikrobus";
-               status = "disabled";
-               pinctrl-names = "default", "pwm_default", "pwm_gpio",
-                               "uart_default", "uart_gpio", "i2c_default",
-                               "i2c_gpio", "spi_default", "spi_gpio";
-               pinctrl-0 = <
-                       &mb_rst_gpio_pin
-                       &mb_int_gpio_pin
-               >;
-               pinctrl-1 = <&mb_pwm_pwm_pin>;
-               pinctrl-2 = <&mb_pwm_gpio_pin>;
-               pinctrl-3 = <
-                       &mb_txd_uart_pin
-                       &mb_rxd_uart_pin
-               >;
-               pinctrl-4 = <
-                       &mb_txd_gpio_pin
-                       &mb_rxd_gpio_pin
-               >;
-               pinctrl-5 = <
-                       &mb_scl_i2c_pin
-                       &mb_sda_i2c_pin
-               >;
-               pinctrl-6 = <
-                       &mb_scl_gpio_pin
-                       &mb_sda_gpio_pin
-               >;
-               pinctrl-7 = <
-                       &mb_cs_spi_pin
-                       &mb_sck_spi_pin
-                       &mb_mosi_spi_pin
-                       &mb_miso_spi_pin
-               >;
-               pinctrl-8 = <
-                       &mb_cs_gpio_pin
-                       &mb_sck_gpio_pin
-                       &mb_mosi_gpio_pin
-                       &mb_miso_gpio_pin
-               >;
-
-               i2c-adaptor = <&i2c4>;
-               spi-master = <0>;
-               spi-cs = <0 1>;
-               uart = <&uart3>;
-               pwms = <&pwm 2 5000000>;
-               mikrobus-gpios = <gpio_mb_pwm   GPIO_ACTIVE_HIGH>,  /*mb_pwm*/
-                                                <gpio_mb_rst   GPIO_ACTIVE_HIGH>,  /*mb_rst*/
-                                                <gpio_mb_int   GPIO_ACTIVE_HIGH>,  /*mb_int*/
-                                                <gpio_mb_rxd   GPIO_ACTIVE_HIGH>,  /*mb_rxd*/
-                                                <gpio_mb_txd   GPIO_ACTIVE_HIGH>,  /*mb_txd*/
-                                                <gpio_mb_cs    GPIO_ACTIVE_HIGH>,  /*mb_cs*/ 
-                                                <gpio_mb_sck   GPIO_ACTIVE_HIGH>,  /*mb_sck*/
-                                                <gpio_mb_mosi  GPIO_ACTIVE_HIGH>,  /*mb_mosi*/
-                                                <gpio_mb_miso  GPIO_ACTIVE_HIGH>,  /*mb_miso*/
-                                                <gpio_mb_scl   GPIO_ACTIVE_HIGH>,  /*mb_scl*/
-                                                <gpio_mb_sda   GPIO_ACTIVE_HIGH>;  /*mb_sda*/
-       };
-};
-
-
-/*AP6203BM*/
-
-BONE_PIN(bt_shutdown, gpio, bt_shutdown(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(bt_device_wakeup, gpio, bt_device_wakeup(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
-BONE_PIN(bt_host_wakeup, gpio, bt_host_wakeup(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
-
-/* pinmux helper */
-
-&soc {
-       /* P8_01 - GND */
-       /* P8_02 - GND */
-       /* P8_03 (Ball:J34) GPIO1_21_MUX*/
-       P8_03_pinmux {
-               status = "okay";
-               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
-               pinctrl-0 = <&P8_03_default_pin>;
-               pinctrl-1 = <&P8_03_gpio_pin>;
-               pinctrl-2 = <&P8_03_gpio_pu_pin>;
-               pinctrl-3 = <&P8_03_gpio_pd_pin>;
-       };
-
-       /* P8_04 (Ball:J35) GPIO1_22_MUX*/
-       P8_04_pinmux {
-               status = "okay";
-               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
-               pinctrl-0 = <&P8_04_default_pin>;
-               pinctrl-1 = <&P8_04_gpio_pin>;
-               pinctrl-2 = <&P8_04_gpio_pu_pin>;
-               pinctrl-3 = <&P8_04_gpio_pd_pin>;
-       };
-
-       /* P8_05 (Ball:K32) GPIO1_23_MUX*/
-       P8_05_pinmux {
-               status = "okay";
-               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
-               pinctrl-0 = <&P8_05_default_pin>;
-               pinctrl-1 = <&P8_05_gpio_pin>;
-               pinctrl-2 = <&P8_05_gpio_pu_pin>;
-               pinctrl-3 = <&P8_05_gpio_pd_pin>;
-       };
-
-       /* P8_06 (Ball:K33) GPIO1_24_MUX*/
-       P8_06_pinmux {
-               status = "okay";
-               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
-               pinctrl-0 = <&P8_06_default_pin>;
-               pinctrl-1 = <&P8_06_gpio_pin>;
-               pinctrl-2 = <&P8_06_gpio_pu_pin>;
-               pinctrl-3 = <&P8_06_gpio_pd_pin>;
-       };
-
-       /* P8_07 (Ball:K34) GPIO1_25_MUX*/
-       P8_07_pinmux {
-               status = "okay";
-               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
-               pinctrl-0 = <&P8_07_default_pin>;
-               pinctrl-1 = <&P8_07_gpio_pin>;
-               pinctrl-2 = <&P8_07_gpio_pu_pin>;
-               pinctrl-3 = <&P8_07_gpio_pd_pin>;
-       };
-
-       /* P8_08 (Ball:K35) GPIO1_26_MUX*/
-       P8_08_pinmux {
-               status = "okay";
-               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
-               pinctrl-0 = <&P8_08_default_pin>;
-               pinctrl-1 = <&P8_08_gpio_pin>;
-               pinctrl-2 = <&P8_08_gpio_pu_pin>;
-               pinctrl-3 = <&P8_08_gpio_pd_pin>;
-       };
-
-       /* P8_09 (Ball:K36) GPIO1_27_MUX*/
-       P8_09_pinmux {
-               status = "okay";
-               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
-               pinctrl-0 = <&P8_09_default_pin>;
-               pinctrl-1 = <&P8_09_gpio_pin>;
-               pinctrl-2 = <&P8_09_gpio_pu_pin>;
-               pinctrl-3 = <&P8_09_gpio_pd_pin>;
-       };
-
-       /* P8_10 (Ball:K37) GPIO1_28_MUX*/
-       P8_10_pinmux {
-               status = "okay";
-               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
-               pinctrl-0 = <&P8_10_default_pin>;
-               pinctrl-1 = <&P8_10_gpio_pin>;
-               pinctrl-2 = <&P8_10_gpio_pu_pin>;
-               pinctrl-3 = <&P8_10_gpio_pd_pin>;
-       };
-
-       /* P8_11 (Ball:L32) GPIO1_29_MUX*/
-       P8_11_pinmux {
-               status = "okay";
-               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
-               pinctrl-0 = <&P8_11_default_pin>;
-               pinctrl-1 = <&P8_11_gpio_pin>;
-               pinctrl-2 = <&P8_11_gpio_pu_pin>;
-               pinctrl-3 = <&P8_11_gpio_pd_pin>;
-       };
-
-       /* P8_12 (Ball:L33) GPIO1_30_MUX*/
-       P8_12_pinmux {
-               status = "okay";
-               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
-               pinctrl-0 = <&P8_12_default_pin>;
-               pinctrl-1 = <&P8_12_gpio_pin>;
-               pinctrl-2 = <&P8_12_gpio_pu_pin>;
-               pinctrl-3 = <&P8_12_gpio_pd_pin>;
-       };
-
-       /* P8_13 (Ball:C6) GPIO3_2_MUX*/
-       P8_13_pinmux {
-               status = "okay";
-               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
-               pinctrl-0 = <&P8_13_default_pin>;
-               pinctrl-1 = <&P8_13_gpio_pin>;
-               pinctrl-2 = <&P8_13_gpio_pu_pin>;
-               pinctrl-3 = <&P8_13_gpio_pd_pin>;
-       };
-
-       /* P8_14 (Ball:E29) CLK_OUT_3_MUX*/
-       P8_14_pinmux {
-               status = "okay";
-               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
-               pinctrl-0 = <&P8_14_default_pin>;
-               pinctrl-1 = <&P8_14_gpio_pin>;
-               pinctrl-2 = <&P8_14_gpio_pu_pin>;
-               pinctrl-3 = <&P8_14_gpio_pd_pin>;
-       };
-
-       /* P8_15 (Ball:A6) GPIO3_0_MUX*/
-       P8_15_pinmux {
-               status = "okay";
-               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
-               pinctrl-0 = <&P8_15_default_pin>;
-               pinctrl-1 = <&P8_15_gpio_pin>;
-               pinctrl-2 = <&P8_15_gpio_pu_pin>;
-               pinctrl-3 = <&P8_15_gpio_pd_pin>;
-       };
-
-       /* P8_16 (Ball:F34) GPIO0_20_MUX*/
-       P8_16_pinmux {
-               status = "okay";
-               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
-               pinctrl-0 = <&P8_16_default_pin>;
-               pinctrl-1 = <&P8_16_gpio_pin>;
-               pinctrl-2 = <&P8_16_gpio_pu_pin>;
-               pinctrl-3 = <&P8_16_gpio_pd_pin>;
-       };
-
-       /* P8_17 (Ball:B6) GPIO3_1_MUX*/
-       P8_17_pinmux {
-               status = "okay";
-               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
-               pinctrl-0 = <&P8_17_default_pin>;
-               pinctrl-1 = <&P8_17_gpio_pin>;
-               pinctrl-2 = <&P8_17_gpio_pu_pin>;
-               pinctrl-3 = <&P8_17_gpio_pd_pin>;
-       };
-
-       /* P8_18 (Ball:B34) GPIO1_5_MUX*/
-       P8_18_pinmux {
-               status = "okay";
-               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
-               pinctrl-0 = <&P8_18_default_pin>;
-               pinctrl-1 = <&P8_18_gpio_pin>;
-               pinctrl-2 = <&P8_18_gpio_pu_pin>;
-               pinctrl-3 = <&P8_18_gpio_pd_pin>;
-       };
-
-       /* P8_19 (Ball:D6) GPIO3_3_MUX*/
-       P8_19_pinmux {
-               status = "okay";
-               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
-               pinctrl-0 = <&P8_19_default_pin>;
-               pinctrl-1 = <&P8_19_gpio_pin>;
-               pinctrl-2 = <&P8_19_gpio_pu_pin>;
-               pinctrl-3 = <&P8_19_gpio_pd_pin>;
-       };
-
-       /* P8_20 (Ball:C34) GPIO1_6_MUX*/
-       P8_20_pinmux {
-               status = "okay";
-               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
-               pinctrl-0 = <&P8_20_default_pin>;
-               pinctrl-1 = <&P8_20_gpio_pin>;
-               pinctrl-2 = <&P8_20_gpio_pu_pin>;
-               pinctrl-3 = <&P8_20_gpio_pd_pin>;
-       };
-
-       /* P8_21 (Ball:D34) GPIO1_7_MUX*/
-       P8_21_pinmux {
-               status = "okay";
-               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
-               pinctrl-0 = <&P8_21_default_pin>;
-               pinctrl-1 = <&P8_21_gpio_pin>;
-               pinctrl-2 = <&P8_21_gpio_pu_pin>;
-               pinctrl-3 = <&P8_21_gpio_pd_pin>;
-       };
-
-       /* P8_22 (Ball:B35) GPIO1_8_MUX*/
-       P8_22_pinmux {
-               status = "okay";
-               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
-               pinctrl-0 = <&P8_22_default_pin>;
-               pinctrl-1 = <&P8_22_gpio_pin>;
-               pinctrl-2 = <&P8_22_gpio_pu_pin>;
-               pinctrl-3 = <&P8_22_gpio_pd_pin>;
-       };
-
-       /* P8_23 (Ball:A36) GPIO1_9_MUX*/
-       P8_23_pinmux {
-               status = "okay";
-               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
-               pinctrl-0 = <&P8_23_default_pin>;
-               pinctrl-1 = <&P8_23_gpio_pin>;
-               pinctrl-2 = <&P8_23_gpio_pu_pin>;
-               pinctrl-3 = <&P8_23_gpio_pd_pin>;
-       };
-
-       /* P8_24 (Ball:B36) GPIO1_10_MUX*/
-       P8_24_pinmux {
-               status = "okay";
-               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
-               pinctrl-0 = <&P8_24_default_pin>;
-               pinctrl-1 = <&P8_24_gpio_pin>;
-               pinctrl-2 = <&P8_24_gpio_pu_pin>;
-               pinctrl-3 = <&P8_24_gpio_pd_pin>;
-       };
-
-       /* P8_25 (Ball:B37) GPIO1_11_MUX*/
-       P8_25_pinmux {
-               status = "okay";
-               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
-               pinctrl-0 = <&P8_25_default_pin>;
-               pinctrl-1 = <&P8_25_gpio_pin>;
-               pinctrl-2 = <&P8_25_gpio_pu_pin>;
-               pinctrl-3 = <&P8_25_gpio_pd_pin>;
-       };
-
-       /* P8_26 (Ball:C36) GPIO1_12_MUX*/
-       P8_26_pinmux {
-               status = "okay";
-               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
-               pinctrl-0 = <&P8_26_default_pin>;
-               pinctrl-1 = <&P8_26_gpio_pin>;
-               pinctrl-2 = <&P8_26_gpio_pu_pin>;
-               pinctrl-3 = <&P8_26_gpio_pd_pin>;
-       };
-
-       /* P8_27 (Ball:D37) GPIO1_15_MUX*/
-       P8_27_pinmux {
-               status = "okay";
-               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
-               pinctrl-0 = <&P8_27_default_pin>;
-               pinctrl-1 = <&P8_27_gpio_pin>;
-               pinctrl-2 = <&P8_27_gpio_pu_pin>;
-               pinctrl-3 = <&P8_27_gpio_pd_pin>;
-       };
-
-       /* P8_28 (Ball:E34) GPIO1_16_MUX*/
-       P8_28_pinmux {
-               status = "okay";
-               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
-               pinctrl-0 = <&P8_28_default_pin>;
-               pinctrl-1 = <&P8_28_gpio_pin>;
-               pinctrl-2 = <&P8_28_gpio_pu_pin>;
-               pinctrl-3 = <&P8_28_gpio_pd_pin>;
-       };
-
-       /* P8_29 (Ball:D36) GPIO1_14_MUX*/
-       P8_29_pinmux {
-               status = "okay";
-               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
-               pinctrl-0 = <&P8_29_default_pin>;
-               pinctrl-1 = <&P8_29_gpio_pin>;
-               pinctrl-2 = <&P8_29_gpio_pu_pin>;
-               pinctrl-3 = <&P8_29_gpio_pd_pin>;
-       };
-
-       /* P8_30 (Ball:D35) GPIO1_13_MUX*/
-       P8_30_pinmux {
-               status = "okay";
-               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
-               pinctrl-0 = <&P8_30_default_pin>;
-               pinctrl-1 = <&P8_30_gpio_pin>;
-               pinctrl-2 = <&P8_30_gpio_pu_pin>;
-               pinctrl-3 = <&P8_30_gpio_pd_pin>;
-       };
-
-       /* P8_31 (Ball:D33) GPIO1_3_MUX*/
-       P8_31_pinmux {
-               status = "okay";
-               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
-               pinctrl-0 = <&P8_31_default_pin>;
-               pinctrl-1 = <&P8_31_gpio_pin>;
-               pinctrl-2 = <&P8_31_gpio_pu_pin>;
-               pinctrl-3 = <&P8_31_gpio_pd_pin>;
-       };
-
-       /* P8_32 (Ball:A34) GPIO1_4_MUX*/
-       P8_32_pinmux {
-               status = "okay";
-               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
-               pinctrl-0 = <&P8_32_default_pin>;
-               pinctrl-1 = <&P8_32_gpio_pin>;
-               pinctrl-2 = <&P8_32_gpio_pu_pin>;
-               pinctrl-3 = <&P8_32_gpio_pd_pin>;
-       };
-
-       /* P8_33 (Ball:C33) GPIO1_2_MUX*/
-       P8_33_pinmux {
-               status = "okay";
-               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
-               pinctrl-0 = <&P8_33_default_pin>;
-               pinctrl-1 = <&P8_33_gpio_pin>;
-               pinctrl-2 = <&P8_33_gpio_pu_pin>;
-               pinctrl-3 = <&P8_33_gpio_pd_pin>;
-       };
-
-       /* P8_34 (Ball:E32) GPIO1_0_MUX*/
-       P8_34_pinmux {
-               status = "okay";
-               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
-               pinctrl-0 = <&P8_34_default_pin>;
-               pinctrl-1 = <&P8_34_gpio_pin>;
-               pinctrl-2 = <&P8_34_gpio_pu_pin>;
-               pinctrl-3 = <&P8_34_gpio_pd_pin>;
-       };
-
-       /* P8_35 (Ball:A32) GPIO1_1_MUX*/
-       P8_35_pinmux {
-               status = "okay";
-               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
-               pinctrl-0 = <&P8_35_default_pin>;
-               pinctrl-1 = <&P8_35_gpio_pin>;
-               pinctrl-2 = <&P8_35_gpio_pu_pin>;
-               pinctrl-3 = <&P8_35_gpio_pd_pin>;
-       };
-
-       /* P8_36 (Ball:D32) GPIO0_31_MUX*/
-       P8_36_pinmux {
-               status = "okay";
-               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
-               pinctrl-0 = <&P8_36_default_pin>;
-               pinctrl-1 = <&P8_36_gpio_pin>;
-               pinctrl-2 = <&P8_36_gpio_pu_pin>;
-               pinctrl-3 = <&P8_36_gpio_pd_pin>;
-       };
-
-       /* P8_37 (Ball:B32) GPIO0_29_MUX*/
-       P8_37_pinmux {
-               status = "okay";
-               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
-               pinctrl-0 = <&P8_37_default_pin>;
-               pinctrl-1 = <&P8_37_gpio_pin>;
-               pinctrl-2 = <&P8_37_gpio_pu_pin>;
-               pinctrl-3 = <&P8_37_gpio_pd_pin>;
-       };
-
-       /* P8_38 (Ball:C32) GPIO0_30_MUX*/
-       P8_38_pinmux {
-               status = "okay";
-               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
-               pinctrl-0 = <&P8_38_default_pin>;
-               pinctrl-1 = <&P8_38_gpio_pin>;
-               pinctrl-2 = <&P8_38_gpio_pu_pin>;
-               pinctrl-3 = <&P8_38_gpio_pd_pin>;
-       };
-
-       /* P8_39 (Ball:D31) GPIO0_27_MUX*/
-       P8_39_pinmux {
-               status = "okay";
-               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
-               pinctrl-0 = <&P8_39_default_pin>;
-               pinctrl-1 = <&P8_39_gpio_pin>;
-               pinctrl-2 = <&P8_39_gpio_pu_pin>;
-               pinctrl-3 = <&P8_39_gpio_pd_pin>;
-       };
-
-       /* P8_40 (Ball:E31) GPIO0_28_MUX*/
-       P8_40_pinmux {
-               status = "okay";
-               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
-               pinctrl-0 = <&P8_40_default_pin>;
-               pinctrl-1 = <&P8_40_gpio_pin>;
-               pinctrl-2 = <&P8_40_gpio_pu_pin>;
-               pinctrl-3 = <&P8_40_gpio_pd_pin>;
-       };
-
-       /* P8_41 (Ball:F30) GPIO0_25_MUX*/
-       P8_41_pinmux {
-               status = "okay";
-               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
-               pinctrl-0 = <&P8_41_default_pin>;
-               pinctrl-1 = <&P8_41_gpio_pin>;
-               pinctrl-2 = <&P8_41_gpio_pu_pin>;
-               pinctrl-3 = <&P8_41_gpio_pd_pin>;
-       };
-
-       /* P8_42 (Ball:C31) GPIO0_26_MUX*/
-       P8_42_pinmux {
-               status = "okay";
-               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
-               pinctrl-0 = <&P8_42_default_pin>;
-               pinctrl-1 = <&P8_42_gpio_pin>;
-               pinctrl-2 = <&P8_42_gpio_pu_pin>;
-               pinctrl-3 = <&P8_42_gpio_pd_pin>;
-       };
-
-       /* P8_43 (Ball:C30) GPIO0_23_MUX*/
-       P8_43_pinmux {
-               status = "okay";
-               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
-               pinctrl-0 = <&P8_43_default_pin>;
-               pinctrl-1 = <&P8_43_gpio_pin>;
-               pinctrl-2 = <&P8_43_gpio_pu_pin>;
-               pinctrl-3 = <&P8_43_gpio_pd_pin>;
-       };
-
-       /* P8_44 (Ball:D30) GPIO0_24_MUX*/
-       P8_44_pinmux {
-               status = "okay";
-               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
-               pinctrl-0 = <&P8_44_default_pin>;
-               pinctrl-1 = <&P8_44_gpio_pin>;
-               pinctrl-2 = <&P8_44_gpio_pu_pin>;
-               pinctrl-3 = <&P8_44_gpio_pd_pin>;
-       };
-
-       /* P8_45 (Ball:F36) GPIO0_21_MUX*/
-       P8_45_pinmux {
-               status = "okay";
-               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
-               pinctrl-0 = <&P8_45_default_pin>;
-               pinctrl-1 = <&P8_45_gpio_pin>;
-               pinctrl-2 = <&P8_45_gpio_pu_pin>;
-               pinctrl-3 = <&P8_45_gpio_pd_pin>;
-       };
-
-       /* P8_46 (Ball:D29) GPIO0_22_MUX*/
-       P8_46_pinmux {
-               status = "okay";
-               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
-               pinctrl-0 = <&P8_46_default_pin>;
-               pinctrl-1 = <&P8_46_gpio_pin>;
-               pinctrl-2 = <&P8_46_gpio_pu_pin>;
-               pinctrl-3 = <&P8_46_gpio_pd_pin>;
-       };
-
-       /* P9_01 - GND */
-       /* P9_02 - GND */
-       /* P9_03 - VOUT_3V3 */
-       /* P9_04 - VOUT_3V3 */
-       /* P9_05 - VIN */
-       /* P9_06 - VIN */
-       /* P9_07 - VOUT_SYS */
-       /* P9_08 - VOUT_SYS */
-       /* P9_09 - ONKEY# */
-       /* P9_10 - RESET# */
-       /* P9_11 (Ball:M32) UART1_TXD_MUX*/
-       P9_11_pinmux {
-               status = "okay";
-               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
-               pinctrl-0 = <&P9_11_default_pin>;
-               pinctrl-1 = <&P9_11_gpio_pin>;
-               pinctrl-2 = <&P9_11_gpio_pu_pin>;
-               pinctrl-3 = <&P9_11_gpio_pd_pin>;
-       };
-
-       /* P9_12 (Ball:H1) QSPI0_CSN0_MUX*/
-       P9_12_pinmux {
-               status = "okay";
-               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
-               pinctrl-0 = <&P9_12_default_pin>;
-               pinctrl-1 = <&P9_12_gpio_pin>;
-               pinctrl-2 = <&P9_12_gpio_pu_pin>;
-               pinctrl-3 = <&P9_12_gpio_pd_pin>;
-       };
-
-       /* P9_13 (Ball:M33) UART1_RXD_MUX*/
-       P9_13_pinmux {
-               status = "okay";
-               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
-               pinctrl-0 = <&P9_13_default_pin>;
-               pinctrl-1 = <&P9_13_gpio_pin>;
-               pinctrl-2 = <&P9_13_gpio_pu_pin>;
-               pinctrl-3 = <&P9_13_gpio_pd_pin>;
-       };
-
-       /* P9_14 (Ball:K3) QSPI0_D1_MISO_MUX*/
-       P9_14_pinmux {
-               status = "okay";
-               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
-               pinctrl-0 = <&P9_14_default_pin>;
-               pinctrl-1 = <&P9_14_gpio_pin>;
-               pinctrl-2 = <&P9_14_gpio_pu_pin>;
-               pinctrl-3 = <&P9_14_gpio_pd_pin>;
-       };
-
-       /* P9_15 (Ball:K2) QSPI0_D2_WP_MUX*/
-       P9_15_pinmux {
-               status = "okay";
-               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
-               pinctrl-0 = <&P9_15_default_pin>;
-               pinctrl-1 = <&P9_15_gpio_pin>;
-               pinctrl-2 = <&P9_15_gpio_pu_pin>;
-               pinctrl-3 = <&P9_15_gpio_pd_pin>;
-       };
-
-       /* P9_16 (Ball:J3) QSPI0_D0_MOSI_MUX*/
-       P9_16_pinmux {
-               status = "okay";
-               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
-               pinctrl-0 = <&P9_16_default_pin>;
-               pinctrl-1 = <&P9_16_gpio_pin>;
-               pinctrl-2 = <&P9_16_gpio_pu_pin>;
-               pinctrl-3 = <&P9_16_gpio_pd_pin>;
-       };
-
-       /* P9_17 (Ball:H32) QSPI1_CSN0_MUX*/
-       P9_17_pinmux {
-               status = "okay";
-               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
-               pinctrl-0 = <&P9_17_default_pin>;
-               pinctrl-1 = <&P9_17_gpio_pin>;
-               pinctrl-2 = <&P9_17_gpio_pu_pin>;
-               pinctrl-3 = <&P9_17_gpio_pd_pin>;
-       };
-
-       /* P9_18 (Ball:G35) QSPI1_D0_MOSI_MUX*/
-       P9_18_pinmux {
-               status = "okay";
-               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
-               pinctrl-0 = <&P9_18_default_pin>;
-               pinctrl-1 = <&P9_18_gpio_pin>;
-               pinctrl-2 = <&P9_18_gpio_pu_pin>;
-               pinctrl-3 = <&P9_18_gpio_pd_pin>;
-       };
-
-       /* P9_19 (Ball:G4) I2C2_SCL_MUX*/
-       P9_19_pinmux {
-               status = "okay";
-               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
-               pinctrl-0 = <&P9_19_default_pin>;
-               pinctrl-1 = <&P9_19_gpio_pin>;
-               pinctrl-2 = <&P9_19_gpio_pu_pin>;
-               pinctrl-3 = <&P9_19_gpio_pd_pin>;
-       };
-
-       /* P9_20 (Ball:G3) I2C2_SDA_MUX*/
-       P9_20_pinmux {
-               status = "okay";
-               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
-               pinctrl-0 = <&P9_20_default_pin>;
-               pinctrl-1 = <&P9_20_gpio_pin>;
-               pinctrl-2 = <&P9_20_gpio_pu_pin>;
-               pinctrl-3 = <&P9_20_gpio_pd_pin>;
-       };
-
-       /* P9_21 (Ball:G34) QSPI1_D1_MISO_MUX*/
-       P9_21_pinmux {
-               status = "okay";
-               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
-               pinctrl-0 = <&P9_21_default_pin>;
-               pinctrl-1 = <&P9_21_gpio_pin>;
-               pinctrl-2 = <&P9_21_gpio_pu_pin>;
-               pinctrl-3 = <&P9_21_gpio_pd_pin>;
-       };
-
-       /* P9_22 (Ball:H34) QSPI1_SCLK_MUX*/
-       P9_22_pinmux {
-               status = "okay";
-               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
-               pinctrl-0 = <&P9_22_default_pin>;
-               pinctrl-1 = <&P9_22_gpio_pin>;
-               pinctrl-2 = <&P9_22_gpio_pu_pin>;
-               pinctrl-3 = <&P9_22_gpio_pd_pin>;
-       };
-
-       /* P9_23 (Ball:K1) QSPI0_D3_HOLD_MUX*/
-       P9_23_pinmux {
-               status = "okay";
-               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
-               pinctrl-0 = <&P9_23_default_pin>;
-               pinctrl-1 = <&P9_23_gpio_pin>;
-               pinctrl-2 = <&P9_23_gpio_pu_pin>;
-               pinctrl-3 = <&P9_23_gpio_pd_pin>;
-       };
-
-       /* P9_24 (Ball:G33) QSPI1_D2_WP_MUX*/
-       P9_24_pinmux {
-               status = "okay";
-               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
-               pinctrl-0 = <&P9_24_default_pin>;
-               pinctrl-1 = <&P9_24_gpio_pin>;
-               pinctrl-2 = <&P9_24_gpio_pu_pin>;
-               pinctrl-3 = <&P9_24_gpio_pd_pin>;
-       };
-
-       /* P9_25 (Ball:F5) GPIO2_18_MUX*/
-       P9_25_pinmux {
-               status = "okay";
-               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
-               pinctrl-0 = <&P9_25_default_pin>;
-               pinctrl-1 = <&P9_25_gpio_pin>;
-               pinctrl-2 = <&P9_25_gpio_pu_pin>;
-               pinctrl-3 = <&P9_25_gpio_pd_pin>;
-       };
-
-       /* P9_26 (Ball:F37) QSPI1_D3_HOLD_MUX*/
-       P9_26_pinmux {
-               status = "okay";
-               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
-               pinctrl-0 = <&P9_26_default_pin>;
-               pinctrl-1 = <&P9_26_gpio_pin>;
-               pinctrl-2 = <&P9_26_gpio_pu_pin>;
-               pinctrl-3 = <&P9_26_gpio_pd_pin>;
-       };
-
-       /* P9_27 (Ball:E4) GPIO2_19_MUX*/
-       P9_27_pinmux {
-               status = "okay";
-               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
-               pinctrl-0 = <&P9_27_default_pin>;
-               pinctrl-1 = <&P9_27_gpio_pin>;
-               pinctrl-2 = <&P9_27_gpio_pu_pin>;
-               pinctrl-3 = <&P9_27_gpio_pd_pin>;
-       };
-
-       /* P9_28 (Ball:E3) SPI_CSN_MUX*/
-       P9_28_pinmux {
-               status = "okay";
-               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
-               pinctrl-0 = <&P9_28_default_pin>;
-               pinctrl-1 = <&P9_28_gpio_pin>;
-               pinctrl-2 = <&P9_28_gpio_pu_pin>;
-               pinctrl-3 = <&P9_28_gpio_pd_pin>;
-       };
-
-       /* P9_29 (Ball:F1) SPI_MISO_MUX*/
-       P9_29_pinmux {
-               status = "okay";
-               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
-               pinctrl-0 = <&P9_29_default_pin>;
-               pinctrl-1 = <&P9_29_gpio_pin>;
-               pinctrl-2 = <&P9_29_gpio_pu_pin>;
-               pinctrl-3 = <&P9_29_gpio_pd_pin>;
-       };
-
-       /* P9_30 (Ball:F2) SPI_MOSI_MUX*/
-       P9_30_pinmux {
-               status = "okay";
-               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
-               pinctrl-0 = <&P9_30_default_pin>;
-               pinctrl-1 = <&P9_30_gpio_pin>;
-               pinctrl-2 = <&P9_30_gpio_pu_pin>;
-               pinctrl-3 = <&P9_30_gpio_pd_pin>;
-       };
-
-       /* P9_31 (Ball:D3) SPI_SCLK_MUX*/
-       P9_31_pinmux {
-               status = "okay";
-               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
-               pinctrl-0 = <&P9_31_default_pin>;
-               pinctrl-1 = <&P9_31_gpio_pin>;
-               pinctrl-2 = <&P9_31_gpio_pu_pin>;
-               pinctrl-3 = <&P9_31_gpio_pd_pin>;
-       };
-
-       /* P9_32 - GND */
-       /* P9_33 - ADC_VIN_CH4 */
-       /* P9_34 - GND */
-       /* P9_35 - ADC_VIN_CH6 */
-       /* P9_36 - ADC_VIN_CH5 */
-       /* P9_37 - ADC_VIN_CH2 */
-       /* P9_38 - ADC_VIN_CH3 */
-       /* P9_39 - ADC_VIN_CH0 */
-       /* P9_39 - ADC_VIN_CH1 */
-       /* P9_41 (Ball:D2) GPIO2_13_MUX*/
-       P9_41_pinmux {
-               status = "okay";
-               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
-               pinctrl-0 = <&P9_41_default_pin>;
-               pinctrl-1 = <&P9_41_gpio_pin>;
-               pinctrl-2 = <&P9_41_gpio_pu_pin>;
-               pinctrl-3 = <&P9_41_gpio_pd_pin>;
-       };
-
-       /* P9_42 (Ball:H3) QSPI0_SCLK_MUX*/
-       P9_42_pinmux {
-               status = "okay";
-               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
-               pinctrl-0 = <&P9_42_default_pin>;
-               pinctrl-1 = <&P9_42_gpio_pin>;
-               pinctrl-2 = <&P9_42_gpio_pu_pin>;
-               pinctrl-3 = <&P9_42_gpio_pd_pin>;
-       };
-
-       /* P9_43 - GND */
-       /* P9_44 - GND */
-       /* P9_45 - GND */
-       /* P9_46 - GND */
-};
\ No newline at end of file
diff --git a/arch/riscv/boot/dts/thead/light-lpi4a-16gb.dts b/arch/riscv/boot/dts/thead/light-lpi4a-16gb.dts
deleted file mode 100644 (file)
index 39d82c0..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/*
- * Copyright (C) 2022 Alibaba Group Holding Limited.
- */
-
-#include "light-lpi4a-ref.dts"
-
-/ {
-       model = "T-HEAD Light Lichee Pi 4A configuration for 16GB DDR board";
-       compatible = "thead,light-val", "thead,light-lpi4a", "thead,light";
-
-       memory@0 {
-               device_type = "memory";
-               reg = <0x0 0x200000 0x3 0xffe00000>;
-       };
-};
-
-&cmamem {
-       alloc-ranges = <0x3 0xe4000000 0 0x14000000>; // [0x3E400_0000 ~ 0x3F800_0000]
-};
diff --git a/arch/riscv/boot/dts/thead/light-lpi4a-cluster-16gb.dts b/arch/riscv/boot/dts/thead/light-lpi4a-cluster-16gb.dts
deleted file mode 100644 (file)
index 578ecfe..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/*
- * Copyright (C) 2023 Sipeed.
- */
-
-#include "light-lpi4a-16gb.dts"
-
-/ {
-       model = "T-HEAD Light Lichee Pi 4A configuration for 16GB DDR board on Cluster";
-};
-
-&audio_i2c0 {
-       status = "disabled";
-};
-
-&audio_i2c1 {
-       status = "disabled";
-};
-
-&lightsound {
-       status = "disabled";
-};
-
-&reg_usb_hub_vdd1v2 {
-       /delete-property/ gpio;
-};
-
-&reg_usb_hub_vcc5v {
-       /delete-property/ gpio;
-};
diff --git a/arch/riscv/boot/dts/thead/light-lpi4a-cluster.dts b/arch/riscv/boot/dts/thead/light-lpi4a-cluster.dts
deleted file mode 100644 (file)
index 9677174..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/*
- * Copyright (C) 2023 Sipeed.
- */
-
-#include "light-lpi4a.dts"
-
-/ {
-       model = "T-HEAD Light Lichee Pi 4A configuration for 8GB DDR board on Cluster";
-};
-
-&audio_i2c0 {
-       status = "disabled";
-};
-
-&audio_i2c1 {
-       status = "disabled";
-};
-
-&lightsound {
-       status = "disabled";
-};
-
-&reg_usb_hub_vdd1v2 {
-       /delete-property/ gpio;
-};
-
-&reg_usb_hub_vcc5v {
-       /delete-property/ gpio;
-};
diff --git a/arch/riscv/boot/dts/thead/light-lpi4a-console-16g.dts b/arch/riscv/boot/dts/thead/light-lpi4a-console-16g.dts
deleted file mode 100644 (file)
index a9819c2..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/*
- * Copyright (C) 2022 Alibaba Group Holding Limited.
- */
-
-#include "light-lpi4a-console.dts"
-
-/ {
-       memory@0 {
-               device_type = "memory";
-               reg = <0x0 0x200000 0x3 0xffe00000>;
-       };
-};
-
-&cmamem {
-       alloc-ranges = <0x3 0xe4000000 0 0x14000000>; // [0x3E400_0000 ~ 0x3F800_0000]
-};
diff --git a/arch/riscv/boot/dts/thead/light-lpi4a-console.dts b/arch/riscv/boot/dts/thead/light-lpi4a-console.dts
deleted file mode 100644 (file)
index 3dcaa9e..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/*
- * Copyright (C) 2023 Sipeed.
- */
-
-#include <dt-bindings/interrupt-controller/irq.h>
-#include "light-lpi4a-laptop.dts"
-
-/ {
-        model = "T-HEAD Light Lichee Pi 4A configuration for LicheeConsole4A";
-};
-
-&dsi0_panel0 {
-       compatible = "mingjun,mj070bi30ia2";
-};
-
-&i2c2 {
-       /* thank ice */
-       trackpoint: trackpad@15 {
-               compatible = "hid-over-i2c";
-               reg = <0x15>;
-               hid-descr-addr = <0x0020>;
-               interrupt-parent = <&gpio1_porta>;
-               interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
-       };
-};
-
-&cw2015 {
-       cellwise,battery-profile = /bits/ 8 <
-               0x17 0x67 0x72 0x68 0x66 0x63 0x62 0x5A
-               0x64 0x61 0x4D 0x57 0x5A 0x51 0x43 0x38
-               0x31 0x2A 0x24 0x22 0x29 0x31 0x3E 0x4C
-               0x29 0x4D 0x0B 0x85 0x1C 0x38 0x47 0x57
-               0x5D 0x5E 0x5F 0x60 0x3F 0x1A 0x6F 0x41
-               0x0A 0x43 0x12 0x38 0x7B 0x95 0x9A 0x18
-               0x4B 0x6F 0x9E 0xD5 0x80 0x57 0x87 0xCB
-               0x2F 0x00 0x64 0xA5 0xB5 0x13 0x54 0xB9
-       >;
-};
-
-&lcd0_backlight {
-        default-brightness-level = <50>;
-};
-
-&sdhci0 {
-        max-frequency = <35000000>;
-        status = "okay";
-};
-
-&fan {
-        cooling-levels = <255 255 255 255>;
-};
diff --git a/arch/riscv/boot/dts/thead/light-lpi4a-dsi0-hdmi.dts b/arch/riscv/boot/dts/thead/light-lpi4a-dsi0-hdmi.dts
deleted file mode 100644 (file)
index b629c0a..0000000
+++ /dev/null
@@ -1,131 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/*
- * Copyright (C) 2022 Alibaba Group Holding Limited.
- */
-
-#include "light-lpi4a-ref.dts"
-
-/ {
-       model = "T-HEAD Light Lichee Pi 4A configuration for 8GB DDR board";
-       compatible = "thead,light-val", "thead,light-lpi4a", "thead,light";
-
-       memory@0 {
-               device_type = "memory";
-               reg = <0x0 0x00000000 0x2 0x00000000>;
-       };
-};
-
-&cmamem {
-       alloc-ranges = <0x1 0xe4000000 0 0x14000000>; // [0x1E400_0000 ~ 0x1F800_0000]
-};
-
-&pwm {
-       status = "okay";
-};
-
-&qspi0 {
-       status = "okay";
-};
-
-&qspi1 {
-       status = "okay";
-};
-
-&i2c3 {
-       touch@14 {
-               #gpio-cells = <2>;
-               compatible = "goodix,gt9271";
-               reg = <0x14>;
-               interrupt-parent = <&ao_gpio_porta>;
-               interrupts = <3 0>; 
-               irq-gpios = <&ao_gpio_porta 3 0>; 
-               reset-gpios = <&pcal6408ahk_d 0 0>; 
-               AVDD28-supply = <&reg_tp_pwr_en>;
-               touchscreen-size-x = <800>;
-               touchscreen-size-y = <1280>;
-               tp-size = <9271>;
-               status = "okay";
-       };
-};
-
-&dpu_enc0 {
-       status = "okay";
-
-       ports {
-               /* output */
-               port@1 {
-                       reg = <1>;
-
-                       enc0_out: endpoint {
-                               remote-endpoint = <&dsi0_in>;
-                       };
-               };
-       };
-};
-
-&dpu_enc1 {
-        ports {
-                /delete-node/ port@0;
-        };
-};
-
-&dpu {
-        status = "okay";
-};
-
-&dsi0 {
-        status = "okay";
-};
-
-&dhost_0 {
-       ports {
-               #address-cells = <1>;
-               #size-cells = <0>;
-
-               port@0 {
-                       reg = <0>;
-
-                       dsi0_in: endpoint {
-                               remote-endpoint = <&enc0_out>;
-                       };
-               };
-
-               port@1 {
-                       reg = <1>;
-
-                       dsi0_out: endpoint {
-                               remote-endpoint = <&panel0_in>;
-                       };
-               };
-       };
-
-       dsi0_panel0: panel0@0 {
-               compatible = "chongzhou,cz101b4001", "jadard,jd9365da-h3";
-               reg = <0>;
-               backlight = <&lcd0_backlight>;
-               reset-gpio = <&pcal6408ahk_d 7 0>; /* active low */
-               hsvcc-supply = <&soc_vdd18_lcd0_en_reg>;  
-               vspn3v3-supply = <&soc_vdd33_lcd0_en_reg>;
-
-               port {
-                       panel0_in: endpoint {
-                               remote-endpoint = <&dsi0_out>;
-                       };
-               };
-       };
-};
-
-&disp1_out {
-       remote-endpoint = <&hdmi_tx_in>;
-};
-
-&hdmi_tx {
-       status = "okay";
-
-       port@0 {
-               /* input */
-               hdmi_tx_in: endpoint {
-                       remote-endpoint = <&disp1_out>;
-               };
-       };
-};
diff --git a/arch/riscv/boot/dts/thead/light-lpi4a-laptop.dts b/arch/riscv/boot/dts/thead/light-lpi4a-laptop.dts
deleted file mode 100644 (file)
index 667bf69..0000000
+++ /dev/null
@@ -1,292 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/*
- * Copyright (C) 2023 Sipeed.
- */
-
-#include "light-lpi4a-dsi0-hdmi.dts"
-
-/ {
-       model = "T-HEAD Light Lichee Pi 4A configuration for 8GB DDR board use on laptop";
-
-       reg_sys_vcc_5v: regulator-sys-vcc-5v-en {
-               status = "okay";
-               compatible = "regulator-fixed";
-               regulator-name = "regulator-sys-vcc-5v-en";
-               regulator-min-microvolt = <5000000>;
-               regulator-max-microvolt = <5000000>;
-               gpio = <&pcal6408ahk_c 0 1>;
-               enable-active-high;
-               regulator-boot-on;
-               regulator-always-on;
-
-               regulator-state-mem {
-                       regulator-off-in-suspend;
-               };
-               regulator-state-standby {
-                       regulator-off-in-suspend;
-               };
-       };
-
-       reg_sys_vcc_3v3: regulator-sys-vcc-3v3-en {
-               status = "okay";
-               compatible = "regulator-fixed";
-               regulator-name = "regulator-sys-vcc-3v3-en";
-               vin-supply = <&reg_sys_vcc_5v>;
-               regulator-min-microvolt = <3300000>;
-               regulator-max-microvolt = <3300000>;
-               enable-active-high;
-               regulator-boot-on;
-               regulator-always-on;
-       };
-
-       reg_sys_vcc_1v8: regulator-sys-vcc-1v8-en {
-               status = "okay";
-               compatible = "regulator-fixed";
-               regulator-name = "regulator-sys-vcc-1v8-en";
-               vin-supply = <&reg_sys_vcc_5v>;
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <1800000>;
-               enable-active-high;
-               regulator-boot-on;
-               regulator-always-on;
-       };
-
-       reg_usb_vcc_5v: regulator-usb-vcc-5v-en {
-               status = "okay";
-               compatible = "regulator-fixed";
-               regulator-name = "regulator-usb-vcc-5v-en";
-               regulator-min-microvolt = <5000000>;
-               regulator-max-microvolt = <5000000>;
-               vin-supply = <&reg_sys_vcc_5v>;
-               gpio = <&pcal6408ahk_d 3 1>;
-               enable-active-high;
-               regulator-always-on;
-        };
-
-       reg_sata_vcc_5v: regulator-sata-vcc-5v-en {
-               status = "okay";
-               compatible = "regulator-fixed";
-               regulator-name = "regulator-sata-vcc-5v-en";
-               regulator-min-microvolt = <5000000>;
-               regulator-max-microvolt = <5000000>;
-               vin-supply = <&reg_sys_vcc_5v>;
-               gpio = <&pcal6408ahk_c 1 1>;
-               enable-active-high;
-               regulator-always-on;
-       };
-
-       audio_amp: regulator-audio-amp-en {
-                status = "okay";
-                compatible = "regulator-fixed";
-                regulator-name = "regulator-audio-amp-en";
-                vin-supply = <&reg_sys_vcc_5v>;
-               gpio = <&pcal6408ahk_c 3 1>;
-               enable-active-high;
-               regulator-always-on;
-       };
-
-       charger: dc-charger {
-               compatible = "gpio-charger";
-               charger-type = "mains";
-               gpios = <&ao_gpio_porta 2 GPIO_ACTIVE_HIGH>;
-       };
-};
-
-&es8156_audio_codec {
-       AVDD-supply = <&reg_sys_vcc_3v3>;
-       DVDD-supply = <&reg_sys_vcc_1v8>;
-       PVDD-supply = <&reg_sys_vcc_1v8>;
-};
-
-&es7210_audio_codec {
-       MVDD-supply = <&reg_sys_vcc_3v3>;
-       AVDD-supply = <&reg_sys_vcc_3v3>;
-       DVDD-supply = <&reg_sys_vcc_1v8>;
-       PVDD-supply = <&reg_sys_vcc_1v8>;
-};
-
-&wcn_wifi {
-       WIFI,poweren_gpio = <&pcal6408ahk_c 4 0>;
-};
-
-
-&wcn_bt {
-       BT,power_gpio = <&pcal6408ahk_c 5 0>;
-};
-
-&usb_1 {
-        /delete-property/ vbus-supply;
-        /delete-property/ hub1v2-supply;
-        hub5v-supply = <&reg_usb_vcc_5v>;
-};
-
-&reg_usb_hub_vcc5v {
-       /delete-property/ gpio;
-};
-
-&soc_cam2_dvdd12_ir_reg {
-       /delete-property/ gpio;
-};
-
-&vvcam_sensor0 {
-       /delete-property/ sensor_rst;
-};
-
-&vvcam_sensor1 {
-       /delete-property/ sensor_rst;
-};
-
-&vvcam_sensor2 {
-       /delete-property/ sensor_rst;
-};
-
-&vvcam_sensor3 {
-       /delete-property/ sensor_rst;
-};
-
-&reg_tp_pwr_en {
-       /delete-property/ gpio;
-};
-
-&i2c0 {
-       /delete-node/ pcal6408ahk_b;
-
-       cw2015: cw2015@62 {
-               compatible = "cellwise,cw2015";
-               reg = <0x62>;
-               cellwise,monitor-interval-ms = <5000>;
-               power-supplies = <&charger>;
-       };
-};
-
-&i2c3 {
-       touch@14 {
-               #gpio-cells = <2>;
-               compatible = "goodix,gt9271";
-               reg = <0x14>;
-               interrupt-parent = <&ao_gpio_porta>;
-               interrupts = <3 0>;
-               irq-gpios = <&ao_gpio_porta 3 0>;
-               reset-gpios = <&pcal6408ahk_d 0 0>;
-               touchscreen-size-x = <1024>;
-               touchscreen-size-y = <600>;
-               tp-size = <9271>;
-               status = "okay";
-       };
-
-       lt8911: lt8911@29 {
-               compatible = "lontium,lt8911exb";
-               reg = <0x29>;
-               lontium,pclk = <136000000>;
-               lontium,hact = <2160>;
-               lontium,vact = <1440>;
-               lontium,hbp = <80>;
-               lontium,hfp = <48>;
-               lontium,vbp = <14>;
-               lontium,vfp = <3>;
-               lontium,hs = <32>;
-               lontium,vs = <10>;
-               lontium,mipi_lane = <2>;
-               lontium,lane_cnt = <2>;
-               lontium,color = <1>; //Color Depth 0:6bit 1:8bit
-               lontium,test = <0>;
-       };
-};
-
-&uart3 {
-       clock-frequency = <100000000>;
-       status = "okay";
-};
-
-&spi0 {
-       status = "disabled";
-};
-
-&qspi0 {
-       status = "disabled";
-};
-
-&qspi1 {
-       status = "disabled";
-};
-
-&dsi0_panel0 {
-       backlight = <&lcd0_backlight>;
-       reset-gpio = <&pcal6408ahk_d 7 0>; /* active low */
-       hsvcc-supply = <&reg_sys_vcc_1v8>;
-       vspn3v3-supply = <&reg_sys_vcc_3v3>;
-};
-
-&lcd0_backlight {
-       pwms = <&pwm 0 50000>;
-       brightness-levels = <0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
-        36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
-        76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100>;
-       default-brightness-level = <100>;
-};
-
-&fan {
-       pwms = <&pwm 1 10000000 0>;
-       cooling-levels = <0 64 192 255>;
-};
-
-&cpus {
-        c910_0: cpu@0 {
-                operating-points = <
-                        /* kHz    uV */
-                        300000  500000
-                        800000  700000
-                        1500000 800000
-                >;
-                light,dvddm-operating-points = <
-                        /* kHz   uV */
-                        300000  800000
-                        800000  800000
-                        1500000 800000
-                >;
-        };
-        c910_1: cpu@1 {
-                operating-points = <
-                        /* kHz    uV */
-                        300000  500000
-                        800000  700000
-                        1500000 800000
-                >;
-                light,dvddm-operating-points = <
-                        /* kHz   uV */
-                        300000  800000
-                        800000  800000
-                        1500000 800000
-                >;
-        };
-        c910_2: cpu@2 {
-
-                operating-points = <
-                        /* kHz    uV */
-                        300000  500000
-                        800000  700000
-                        1500000 800000
-                >;
-                light,dvddm-operating-points = <
-                        /* kHz   uV */
-                        300000  800000
-                        800000  800000
-                        1500000 800000
-                >;
-        };
-        c910_3: cpu@3 {
-
-                operating-points = <
-                        /* kHz    uV */
-                        300000  500000
-                        800000  700000
-                        1500000 800000
-                >;
-                light,dvddm-operating-points = <
-                        /* kHz   uV */
-                        300000  800000
-                        800000  800000
-                        1500000 800000
-                >;
-        };
-};
diff --git a/arch/riscv/boot/dts/thead/light-lpi4a-z14inch-m0-16g.dts b/arch/riscv/boot/dts/thead/light-lpi4a-z14inch-m0-16g.dts
deleted file mode 100644 (file)
index 4f8f86a..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/*
- * Copyright (C) 2022 Alibaba Group Holding Limited.
- */
-
-#include "light-lpi4a-z14inch-m0.dts"
-
-/ {
-       memory@0 {
-               device_type = "memory";
-               reg = <0x0 0x200000 0x3 0xffe00000>;
-       };
-};
-
-&cmamem {
-       alloc-ranges = <0x3 0xe4000000 0 0x14000000>; // [0x3E400_0000 ~ 0x3F800_0000]
-};
diff --git a/arch/riscv/boot/dts/thead/light-lpi4a-z14inch-m0.dts b/arch/riscv/boot/dts/thead/light-lpi4a-z14inch-m0.dts
deleted file mode 100644 (file)
index 49d10b3..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/*
- * Copyright (C) 2023 Sipeed.
- */
-
-#include "light-lpi4a-laptop.dts"
-
-/ {
-        model = "T-HEAD Light Lichee Pi 4A configuration for Z14INCH-M0";
-};
-
-&dsi0_panel0 {
-       compatible = "custom,z14inch_2160x1440_40Hz";
-       /* display-timings in devicetree is it not working, but I haven't time to fix it, so move it into simple-panel.c */
-       /*
-       display-timings {
-               clock-frequency = <136000000>;
-               hactive = <2160>;
-               vactive = <1440>;
-               hfront-porch = <48>;
-               hback-porch = <80>;
-               hsync-len = <32>;
-               vback-porch = <14>;
-               vfront-porch = <3>;
-               vsync-len = <10>;
-       };
-       */
-};
-
-&cw2015 {
-       cellwise,battery-profile = /bits/ 8 <
-               0x17 0x67 0x72 0x68 0x66 0x63 0x62 0x5A
-               0x64 0x61 0x4D 0x57 0x5A 0x51 0x43 0x38
-               0x31 0x2A 0x24 0x22 0x29 0x31 0x3E 0x4C
-               0x29 0x4D 0x0B 0x85 0x1C 0x38 0x47 0x57
-               0x5D 0x5E 0x5F 0x60 0x3F 0x1A 0x6F 0x41
-               0x0A 0x43 0x12 0x38 0x7B 0x95 0x9A 0x18
-               0x4B 0x6F 0x9E 0xD5 0x80 0x57 0x87 0xCB
-               0x2F 0x00 0x64 0xA5 0xB5 0x13 0x54 0xB9
-       >;
-};
-
-&lt8911 {
-       lontium,pclk = <136000000>;
-       lontium,hact = <2160>;
-       lontium,vact = <1440>;
-       lontium,hbp = <80>;
-       lontium,hfp = <48>;
-       lontium,vbp = <14>;
-       lontium,vfp = <3>;
-       lontium,hs = <32>;
-       lontium,vs = <10>;
-       lontium,mipi_lane = <2>;
-       lontium,lane_cnt = <2>;
-       lontium,color = <1>; //Color Depth 0:6bit 1:8bit
-       lontium,test = <0>;
-};
-
-&fan {
-        pwms = <&pwm 1 10000000 0>;
-        cooling-levels = <0 192 220 255>;
-};
-
-&lcd0_backlight {
-        default-brightness-level = <40>;
-};
diff --git a/arch/riscv/boot/dts/thead/light-milkv-meles-4g.dts b/arch/riscv/boot/dts/thead/light-milkv-meles-4g.dts
deleted file mode 100644 (file)
index 5c9702d..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/*
- * Copyright (C) 2022 Alibaba Group Holding Limited.
- */
-
-#include "light-milkv-meles.dts"
-
-/ {
-       model = "Milk-V Meles 4G";
-       compatible = "milkv,meles", "thead,light";
-
-       memory@0 {
-               device_type = "memory";
-               reg = <0x0 0x200000 0x0 0xffe00000>;
-       };
-};
diff --git a/arch/riscv/boot/dts/thead/light-milkv-meles.dts b/arch/riscv/boot/dts/thead/light-milkv-meles.dts
deleted file mode 100644 (file)
index ba29b8c..0000000
+++ /dev/null
@@ -1,885 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/*
- * Copyright (C) 2021-2022 Alibaba Group Holding Limited.
- */
-
-/dts-v1/;
-
-#include "light.dtsi"
-#include <dt-bindings/input/linux-event-codes.h>
-#include <dt-bindings/gpio/gpio.h>
-#include <dt-bindings/interrupt-controller/irq.h>
-
-/ {
-       model = "Milk-V Meles";
-       compatible = "milkv,meles", "thead,light";
-
-       aliases {
-               mmc0 = &emmc;
-               mmc1 = &sdhci0;
-               mmc2 = &sdhci1;
-       };
-
-       chosen {
-               bootargs = "console=ttyS0,115200 crashkernel=256M-:128M earlycon clk_ignore_unused sram=0xffe0000000,0x180000";
-               stdout-path = "serial0:115200n8";
-       };
-
-       memory@0 {
-               device_type = "memory";
-               reg = <0x0 0x200000 0x1 0xffe00000>;
-       };
-
-       display_subsystem: display-subsystem {
-               status = "okay";
-       };
-
-       leds {
-               compatible = "gpio-leds";
-
-               led0 {
-                       label = "SYS_STATUS";
-                       gpios = <&gpio1_porta 15 0>;    /* GPIO_ACTIVE_HIGH: 0 */
-                       default-state = "off";
-               };
-
-               led1 {
-                       label = "USER_LED";
-                       gpios = <&gpio1_porta 16 0>;    /* GPIO_ACTIVE_HIGH: 0 */
-                       linux,default-trigger = "heartbeat";
-                       default-state = "on";
-               };
-       };
-
-       light_iopmp: iopmp {
-               compatible = "thead,light-iopmp";
-
-               /* config#1: multiple valid regions */
-               iopmp_emmc: IOPMP_EMMC {
-                       regions = <0x000000 0x100000>,
-                                 <0x100000 0x200000>;
-                       attr = <0xFFFFFFFF>;
-                       dummy_slave= <0x800000>;
-               };
-
-               /* config#2: iopmp bypass */
-               iopmp_sdio0: IOPMP_SDIO0 {
-                       bypass_en;
-               };
-
-               /* config#3: iopmp default region set */
-               iopmp_sdio1: IOPMP_SDIO1 {
-                       attr = <0xFFFFFFFF>;
-                       is_default_region;
-               };
-
-               iopmp_usb0: IOPMP_USB0 {
-                       attr = <0xFFFFFFFF>;
-                       is_default_region;
-               };
-
-               iopmp_ao: IOPMP_AO {
-                       is_default_region;
-               };
-
-               iopmp_aud: IOPMP_AUD {
-                       is_default_region;
-               };
-
-               iopmp_chip_dbg: IOPMP_CHIP_DBG {
-                       is_default_region;
-               };
-
-               iopmp_eip120i: IOPMP_EIP120I {
-                       is_default_region;
-               };
-
-               iopmp_eip120ii: IOPMP_EIP120II {
-                       is_default_region;
-               };
-
-               iopmp_eip120iii: IOPMP_EIP120III {
-                       is_default_region;
-               };
-
-               iopmp_isp0: IOPMP_ISP0 {
-                       is_default_region;
-               };
-
-               iopmp_isp1: IOPMP_ISP1 {
-                       is_default_region;
-               };
-
-               iopmp_dw200: IOPMP_DW200 {
-                       is_default_region;
-               };
-
-               iopmp_vipre: IOPMP_VIPRE {
-                       is_default_region;
-               };
-
-               iopmp_venc: IOPMP_VENC {
-                       is_default_region;
-               };
-
-               iopmp_vdec: IOPMP_VDEC {
-                       is_default_region;
-               };
-
-               iopmp_g2d: IOPMP_G2D {
-                       is_default_region;
-               };
-
-               iopmp_fce: IOPMP_FCE {
-                       is_default_region;
-               };
-
-               iopmp_npu: IOPMP_NPU {
-                       is_default_region;
-               };
-
-               iopmp0_dpu: IOPMP0_DPU {
-                       bypass_en;
-               };
-
-               iopmp1_dpu: IOPMP1_DPU {
-                       bypass_en;
-               };
-
-               iopmp_gpu: IOPMP_GPU {
-                       is_default_region;
-               };
-
-               iopmp_gmac1: IOPMP_GMAC1 {
-                       is_default_region;
-               };
-
-               iopmp_gmac2: IOPMP_GMAC2 {
-                       is_default_region;
-               };
-
-               iopmp_dmac: IOPMP_DMAC {
-                       is_default_region;
-               };
-
-               iopmp_tee_dmac: IOPMP_TEE_DMAC {
-                       is_default_region;
-               };
-
-               iopmp_dsp0: IOPMP_DSP0 {
-                       is_default_region;
-               };
-
-               iopmp_dsp1: IOPMP_DSP1 {
-                       is_default_region;
-               };
-       };
-
-       mbox_910t_client1: mbox_910t_client1 {
-               compatible = "thead,light-mbox-client";
-               mbox-names = "902";
-               mboxes = <&mbox_910t 1 0>;
-               status = "disabled";
-       };
-
-       mbox_910t_client2: mbox_910t_client2 {
-               compatible = "thead,light-mbox-client";
-               mbox-names = "906";
-               mboxes = <&mbox_910t 2 0>;
-               status = "disabled";
-       };
-
-       lightsound: lightsound@1 {
-               status = "okay";
-               compatible = "simple-audio-card";
-               simple-audio-card,name = "Light-Sound-Card";
-               #address-cells = <1>;
-               #size-cells = <0>;
-
-               /* I2S - AUDIO SYS CODEC 8156*/
-               simple-audio-card,dai-link@0 {
-                       reg = <0>;
-                       format = "i2s";
-                       cpu {
-                               sound-dai = <&i2s1 0>;
-                       };
-                       codec {
-                               sound-dai = <&es8156_audio_codec>;
-                       };
-               };
-
-               /* I2S - HDMI */
-               simple-audio-card,dai-link@1 {
-                       reg = <1>;
-                       format = "i2s";
-                       cpu {
-                               sound-dai = <&light_i2s 1>;
-                       };
-                       codec {
-                               sound-dai = <&dummy_codec>;
-                       };
-               };
-       };
-
-       wifi_pwrseq: wifi-pwrseq {
-               status = "okay";
-               compatible = "mmc-pwrseq-simple";
-               reset-gpios = <&gpio0_porta 20 1>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&pinctrl_wireless_power>;
-       };
-
-       dummy_codec: dummy_codec {
-               #sound-dai-cells = <0>;
-               compatible = "thead,light-dummy-pcm";
-               status = "okay";
-               sound-name-prefix = "DUMMY";
-       };
-
-       vdd_5v: regulator-vdd-5v {
-               compatible = "regulator-fixed";
-               regulator-name = "vdd_5v";
-               regulator-min-microvolt = <5000000>;
-               regulator-max-microvolt = <5000000>;
-               regulator-boot-on;
-               regulator-always-on;
-               status = "okay";
-       };
-
-       vdd_1v8: regulator-vdd-1v8 {
-               compatible = "regulator-fixed";
-               regulator-name = "vdd_1v8";
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <1800000>;
-               regulator-boot-on;
-               regulator-always-on;
-               vin-supply = <&vdd_5v>;
-               status = "okay";
-       };
-
-       reg_vref_1v8: regulator-adc-verf {
-               compatible = "regulator-fixed";
-               regulator-name = "vref-1v8";
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <1800000>;
-               status = "okay";
-       };
-
-       vcc_usb_en: regulator-usb-en {
-               compatible = "regulator-fixed";
-               regulator-name = "vcc_usb_en";
-               gpio = <&gpio2_porta 30 1>;     /* GPIO_ACTIVE_LOW: 1 */
-               regulator-boot-on;
-               regulator-always-on;
-               status = "okay";
-       };
-
-       aon {
-               compatible = "thead,light-aon";
-               mbox-names = "aon";
-               mboxes = <&mbox_910t 1 0>;
-               status = "okay";
-
-               pd: light-aon-pd {
-                       compatible = "thead,light-aon-pd";
-                       #power-domain-cells = <1>;
-               };
-
-               aon_reg_dialog: light-dialog-reg {
-                       compatible = "thead,light-dialog-pmic-ant";
-                       status = "okay";
-
-                       dvdd_cpu_reg: appcpu_dvdd {
-                               regulator-name = "appcpu_dvdd";
-                               regulator-min-microvolt = <300000>;
-                               regulator-max-microvolt = <1570000>;
-                               regulator-boot-on;
-                               regulator-always-on;
-                       };
-
-                       dvddm_cpu_reg: appcpu_dvddm {
-                               regulator-name = "appcpu_dvddm";
-                               regulator-min-microvolt = <300000>;
-                               regulator-max-microvolt = <1570000>;
-                               regulator-boot-on;
-                               regulator-always-on;
-                       };
-
-                       soc_dvdd18_aon_reg: soc_dvdd18_aon {
-                               regulator-name = "soc_dvdd18_aon";
-                               regulator-boot-on;
-                               regulator-always-on;
-                       };
-
-                       soc_avdd33_usb3_reg: soc_avdd33_usb3 {
-                               regulator-name = "soc_avdd33_usb3";
-                               regulator-boot-on;
-                               regulator-always-on;
-                       };
-
-                       soc_dvdd08_aon_reg: soc_dvdd08_aon {
-                               regulator-name = "soc_dvdd08_aon";
-                               regulator-boot-on;
-                               regulator-always-on;
-                       };
-
-                       soc_dvdd08_ddr_reg: soc_dvdd08_ddr {
-                               regulator-name = "soc_dvdd08_ddr";
-                               regulator-boot-on;
-                               regulator-always-on;
-                       };
-
-                       soc_vdd_ddr_1v8_reg: soc_vdd_ddr_1v8 {
-                               regulator-name = "soc_vdd_ddr_1v8";
-                               regulator-boot-on;
-                               regulator-always-on;
-                       };
-
-                       soc_vdd_ddr_1v1_reg: soc_vdd_ddr_1v1 {
-                               regulator-name = "soc_vdd_ddr_1v1";
-                               regulator-boot-on;
-                               regulator-always-on;
-                       };
-
-                       soc_vdd_ddr_0v6_reg: soc_vdd_ddr_0v6 {
-                               regulator-name = "soc_vdd_ddr_0v6";
-                               regulator-boot-on;
-                               regulator-always-on;
-                       };
-
-                       soc_dvdd18_ap_reg: soc_dvdd18_ap {
-                               regulator-name = "soc_dvdd18_ap";
-                               regulator-boot-on;
-                               regulator-always-on;
-                       };
-
-                       soc_avdd08_mipi_hdmi_reg: soc_avdd08_mipi_hdmi {
-                               regulator-name = "soc_avdd08_mipi_hdmi";
-                               regulator-boot-on;
-                               regulator-always-on;
-                       };
-
-                       soc_avdd18_mipi_hdmi_reg: soc_avdd18_mipi_hdmi {
-                               regulator-name = "soc_avdd18_mipi_hdmi";
-                               regulator-boot-on;
-                               regulator-always-on;
-                       };
-
-                       soc_vdd33_emmc_reg: soc_vdd33_emmc {
-                               regulator-name = "soc_vdd33_emmc";
-                               regulator-boot-on;
-                               regulator-always-on;
-                       };
-
-                       soc_vdd18_emmc_reg: soc_vdd18_emmc {
-                               regulator-name = "soc_vdd18_emmc";
-                               regulator-boot-on;
-                               regulator-always-on;
-                       };
-
-                       soc_dovdd18_scan_reg: soc_dovdd18_scan {
-                               regulator-name = "soc_dovdd18_scan";
-                               regulator-min-microvolt = <1800000>;
-                               regulator-max-microvolt = <1800000>;
-                               regulator-boot-on;
-                               regulator-always-on;
-                       };
-
-                       soc_dvdd12_scan_reg: soc_dvdd12_scan {
-                               regulator-name = "soc_dvdd12_scan";
-                               regulator-min-microvolt = <900000>;
-                               regulator-max-microvolt = <3600000>;
-                       };
-
-                       soc_avdd28_scan_en_reg: soc_avdd28_scan_en {
-                               regulator-name = "soc_avdd28_scan_en";
-                               regulator-min-microvolt = <900000>;
-                               regulator-max-microvolt = <3600000>;
-                       };
-               };
-
-               c910_cpufreq {
-                       compatible = "thead,light-mpw-cpufreq";
-                       status = "okay";
-               };
-
-               test: light-aon-test {
-                       compatible = "thead,light-aon-test";
-               };
-       };
-};
-
-&cmamem {
-       alloc-ranges = <0 0xe4000000 0 0x14000000>; // [0xE400_0000 ~ 0xF800_0000]
-};
-
-&resmem {
-       #address-cells = <2>;
-       #size-cells = <2>;
-       ranges;
-
-       tee_mem: memory@1a000000 {
-               reg = <0x0 0x1a000000 0 0x4000000>;
-               no-map;
-       };
-       dsp0_mem: memory@20000000 {                     /**0x2000_0000~0x2040_0000 4M**/
-               reg = <0x0 0x20000000 0x0 0x00280000    /* DSP FW code&data section 2.5M*/
-                      0x0 0x20280000 0x0 0x00001000    /* DSP communication area 4K*/
-                      0x0 0x20281000 0x0 0x00007000    /* Panic/log page 28K */
-                      0x0 0x20288000 0x0 0x00178000>;  /* DSP shared memory 1.5M-32K*/
-               no-map;
-       };
-       dsp1_mem: memory@20400000 {                     /**0x2040_0000~0x2080_0000 4M**/
-               reg = <0x0 0x20400000 0x0 0x00280000    /* DSP FW code&data section */
-                      0x0 0x20680000 0x0 0x00001000    /* DSP communication area */
-                      0x0 0x20681000 0x0 0x00007000    /* Panic/log page*/
-                      0x0 0x20688000 0x0 0x00178000>;  /* DSP shared memory */
-               no-map;
-       };
-       vi_mem: framebuffer@0f800000 {
-               reg = <0x0 0x0F800000 0x0 0x05400000    /* vi_mem_pool_region[0]  84 MB (default) */
-                      0x0 0x14C00000 0x0 0x01D00000    /* vi_mem_pool_region[1]  29 MB */
-                      0x0 0x16900000 0x0 0x03200000>;  /* vi_mem_pool_region[2]  50 MB */
-               no-map;
-       };
-       facelib_mem: memory@22000000 {
-               reg = <0x0 0x22000000 0x0 0x10000000>;
-               no-map;
-       };
-};
-
-&adc {
-       vref-supply = <&reg_vref_1v8>;
-       status = "okay";
-};
-
-&i2c0 {
-       clock-frequency = <400000>;
-       status = "disabled";
-};
-
-&i2c1 {
-       clock-frequency = <400000>;
-       status = "disabled";
-};
-
-&audio_i2c0 {
-       clock-frequency = <100000>;
-       status = "okay";
-
-       es8156_audio_codec: es8156@9 {
-               #sound-dai-cells = <0>;
-               compatible = "everest,es8156";
-               reg = <0x09>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&pinctrl_audio_i2s1_mclk>;
-       };
-};
-
-&uart0 {
-       clock-frequency = <100000000>;
-};
-
-&gmac0 {
-       phy-mode = "rgmii-id";
-       rx-clk-delay = <0x00>; /* for RGMII */
-       tx-clk-delay = <0x00>; /* for RGMII */
-       phy-handle = <&phy_88E1111_0>;
-       status = "okay";
-
-       mdio0 {
-               #address-cells = <1>;
-               #size-cells = <0>;
-               compatible = "snps,dwmac-mdio";
-
-               phy_88E1111_0: ethernet-phy@0 {
-                       reg = <0x1>;
-               };
-       };
-};
-
-&gmac1 {
-       status = "disabled";
-};
-
-&emmc {
-       max-frequency = <198000000>;
-       non-removable;
-       mmc-hs400-1_8v;
-       io_fixed_1v8;
-       is_emmc;
-       no-sdio;
-       no-sd;
-       pull_up;
-       bus-width = <8>;
-       status = "okay";
-};
-
-&sdhci0 {
-       max-frequency = <198000000>;
-       bus-width = <4>;
-       pull_up;
-       wprtn_ignore;
-       status = "okay";
-};
-
-&sdhci1 {
-       status = "okay";
-       max-frequency = <198000000>;
-       bus-width = <4>;
-       pull_up;
-       no-sd;
-       no-mmc;
-       non-removable;
-       io_fixed_1v8;
-       post-power-on-delay-ms = <50>;
-       wprtn_ignore;
-       cap-sd-highspeed;
-       keep-power-in-suspend;
-       mmc-pwrseq = <&wifi_pwrseq>;
-       #address-cells = <1>;
-       #size-cells = <0>;
-
-       brcmf: wifi@1 {
-               compatible = "brcm,bcm4329-fmac";
-               reg = <1>;
-       };
-};
-
-&padctrl0_apsys { /* right-pinctrl */
-       light-evb-padctrl0 {
-               /*
-                * Pin Configuration Node:
-                * Format: <pin_id mux_node config>
-                */
-               pinctrl_uart0: uart0grp {
-                       thead,pins = <
-                               FM_UART0_TXD    0x0     0x72
-                               FM_UART0_RXD    0x0     0x72
-                       >;
-               };
-
-               pinctrl_spi0: spi0grp {
-                       thead,pins = <
-                               FM_SPI_CSN      0x3     0x20a
-                               FM_SPI_SCLK     0x0     0x20a
-                               FM_SPI_MISO     0x0     0x23a
-                               FM_SPI_MOSI     0x0     0x23a
-                       >;
-               };
-
-               pinctrl_qspi0: qspi0grp {
-                       thead,pins = <
-                               FM_QSPI0_SCLK   0x0     0x20f
-                               FM_QSPI0_CSN0   0x3     0x20f
-                               FM_QSPI0_D0_MOSI        0x0     0x23f
-                               FM_QSPI0_D1_MISO        0x0     0x23f
-                       >;
-               };
-
-               pinctrl_pwm: pwmgrp {
-                       thead,pins = <
-                               FM_QSPI0_D2_WP  0x1     0x208   /* pwm5 */
-                               FM_QSPI0_CSN1   0x1     0x208   /* pwm2 */
-                       >;
-               };
-       };
-};
-
-&padctrl1_apsys { /* left-pinctrl */
-       light-evb-padctrl1 {
-               /*
-                * Pin Configuration Node:
-                * Format: <pin_id mux_node config>
-                */
-               pinctrl_uart3: uart3grp {
-                       thead,pins = <
-                               FM_UART3_TXD    0x0     0x72
-                               FM_UART3_RXD    0x0     0x72
-                       >;
-               };
-
-               pinctrl_uart4: uart4grp {
-                       thead,pins = <
-                               FM_UART4_TXD    0x0     0x72
-                               FM_UART4_RXD    0x0     0x72
-                               FM_UART4_CTSN   0x0     0x72
-                               FM_UART4_RTSN   0x0     0x72
-                       >;
-               };
-
-               pinctrl_qspi1: qspi1grp {
-                       thead,pins = <
-                               FM_QSPI1_SCLK   0x0     0x20a
-                               FM_QSPI1_CSN0   0x3     0x20a
-                               FM_QSPI1_D0_MOSI        0x0     0x23a
-                               FM_QSPI1_D1_MISO        0x0     0x23a
-                               FM_QSPI1_D2_WP  0x0     0x23a
-                               FM_QSPI1_D3_HOLD        0x0     0x23a
-                       >;
-               };
-
-               pinctrl_iso7816: iso7816grp {
-                       thead,pins = <
-                               FM_QSPI1_SCLK   0x1     0x208
-                               FM_QSPI1_D0_MOSI        0x1     0x238
-                               FM_QSPI1_D1_MISO        0x1     0x238
-                               FM_QSPI1_D2_WP  0x1     0x238
-                               FM_QSPI1_D3_HOLD        0x1     0x238
-                       >;
-               };
-
-               pinctrl_wireless_power: wireless-power-group {
-                       thead,pins = <
-                               FM_GPIO0_20     0x0     0x23a
-                       >;
-               };
-
-               pinctrl_wireless_host_wake: wireless-host-wake-group {
-                       thead,pins = <
-                               FM_GPIO0_21     0x0     0x21a
-                       >;
-               };
-       };
-};
-
-&padctrl_aosys {
-       light-aon-padctrl {
-               /*
-                * Pin Configuration Node:
-                * Format: <pin_id mux_node config>
-                */
-
-               pinctrl_audiopa1: audiopa1_grp {
-                       thead,pins = <
-                               FM_AUDIO_PA1    0x3     0x72
-                       >;
-               };
-
-               pinctrl_audiopa2: audiopa2_grp {
-                       thead,pins = <
-                               FM_AUDIO_PA2    0x0     0x72
-                       >;
-               };
-
-               pinctrl_volume: volume_grp {
-                       thead,pins = <
-                               FM_CPU_JTG_TDI  0x3     0x208
-                               FM_CPU_JTG_TDO  0x3     0x208
-                       >;
-               };
-       };
-};
-
-&padctrl_audiosys {
-       status = "okay";
-
-       light-audio-padctrl {
-               /*
-                * Pin Configuration Node:
-                * Format: <pin_id mux_node config>
-                */
-
-               pinctrl_audio_i2s1_mclk: audio_i2s1_mclk_grp {
-                       thead,pins = <
-                               FM_AUDIO_IO_PA13        0x0     0x20a
-                       >;
-               };
-       };
-};
-
-&xtensa_dsp {
-       status = "okay";
-};
-
-&xtensa_dsp0 {
-       status = "okay";
-       memory-region = <&dsp0_mem>;
-};
-
-&xtensa_dsp1{
-       status = "okay";
-       memory-region = <&dsp1_mem>;
-};
-
-&trng {
-       status = "disabled";
-};
-
-&eip_28 {
-       status = "okay";
-};
-
-&vdec {
-       status = "okay";
-};
-
-&venc {
-       status = "okay";
-};
-
-&isp_venc_shake {
-       status = "okay";
-};
-
-&vidmem {
-       status = "okay";
-       memory-region = <&vi_mem>;
-};
-
-&gpu {
-       status = "okay";
-};
-
-&npu {
-       vha_clk_rate = <1000000000>;
-       status = "okay";
-};
-
-&fce {
-       memory-region = <&facelib_mem>;
-       status = "okay";
-};
-
-&cpus {
-       c910_0: cpu@0 {
-               operating-points = <
-                       /* kHz    uV */
-                       300000  650000
-                       800000  700000
-                       1500000 800000
-                       1848000 1000000
-               >;
-               light,dvddm-operating-points = <
-                       /* kHz   uV */
-                       300000  800000
-                       800000  800000
-                       1500000 800000
-                       1848000 1000000
-               >;
-       };
-
-       c910_1: cpu@1 {
-               operating-points = <
-                       /* kHz    uV */
-                       300000  650000
-                       800000  700000
-                       1500000 800000
-                       1848000 1000000
-               >;
-               light,dvddm-operating-points = <
-                       /* kHz   uV */
-                       300000  800000
-                       800000  800000
-                       1500000 800000
-                       1848000 1000000
-               >;
-       };
-
-       c910_2: cpu@2 {
-               operating-points = <
-                       /* kHz    uV */
-                       300000  650000
-                       800000  700000
-                       1500000 800000
-                       1848000 1000000
-               >;
-               light,dvddm-operating-points = <
-                       /* kHz   uV */
-                       300000  800000
-                       800000  800000
-                       1500000 800000
-                       1848000 1000000
-               >;
-       };
-
-       c910_3: cpu@3 {
-               operating-points = <
-                       /* kHz    uV */
-                       300000  650000
-                       800000  700000
-                       1500000 800000
-                       1848000 1000000
-               >;
-               light,dvddm-operating-points = <
-                       /* kHz   uV */
-                       300000  800000
-                       800000  800000
-                       1500000 800000
-                       1848000 1000000
-               >;
-       };
-};
-
-&dpu {
-       status = "okay";
-};
-
-/* DP1 --- HDMI0 */
-&dpu_enc1 {
-       status = "disabled";
-       ports {
-               /delete-node/ port@0;
-       };
-};
-
-&disp1_out {
-       remote-endpoint = <&hdmi_tx_in>;
-};
-
-&hdmi_tx {
-       status = "okay";
-
-       port@0 {
-               /* input */
-               hdmi_tx_in: endpoint {
-                       remote-endpoint = <&disp1_out>;
-               };
-       };
-};
-
-&light_i2s {
-       status = "okay";
-       /delete-property/ pinctrl-names;
-       /delete-property/ pinctrl-0;
-};
-
-&i2s0 {
-       status = "okay";
-};
-
-&i2s1 {
-       status = "okay";
-};
-
-&qspi0 {
-       status = "okay";
-       num-cs = <1>;
-       cs-gpios = <&gpio2_porta 3 0>; // GPIO_ACTIVE_HIGH: 0
-
-       spi_flash: spi-flash@0 {
-               #address-cells = <1>;
-               #size-cells = <0>;
-               compatible = "jedec,spi-nor";
-               reg = <0x0>;
-               spi-max-frequency = <50000000>;
-               spi-tx-bus-width = <1>;
-               spi-rx-bus-width = <1>;
-               status = "okay";
-
-               partitions {
-                       compatible = "fixed-partitions";
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-
-                       loader@0 {
-                               label = "loader";
-                               reg = <0x0 0x800000>;
-                       };
-               };
-       };
-};
-
-&qspi1 {
-       status = "disabled";
-};
diff --git a/arch/riscv/boot/dts/thead/th1520-beagle-bone-buses.dtsi b/arch/riscv/boot/dts/thead/th1520-beagle-bone-buses.dtsi
new file mode 100644 (file)
index 0000000..2eeb5f6
--- /dev/null
@@ -0,0 +1,1490 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2022 BeagleBoard.org - https://beagleboard.org/
+ */
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/board/light-fm-bone-pins.h>
+
+/********/
+/* LEDs */
+/********/
+&{/} {
+       gpio-leds {
+               compatible = "gpio-leds";
+               pinctrl-names = "default";
+
+               /* macro: BONE_LED(<headerpin>) */
+               #define BONE_LED(YY)\
+                       bone_led_##YY##: led_##YY {\
+                               status = "disabled";\
+                               linux,default-trigger = "default-off";\
+                               gpios = <gpio_##YY GPIO_ACTIVE_HIGH>;\
+                               pinctrl-0 = < &##YY##_gpio_pin >;\
+                       };
+
+               /*P8 header Bone LEDs*/
+               BONE_LED(P8_03)
+               BONE_LED(P8_04)
+               BONE_LED(P8_05)
+               BONE_LED(P8_06)
+               BONE_LED(P8_07)
+               BONE_LED(P8_08)
+               BONE_LED(P8_09)
+               BONE_LED(P8_10)
+               BONE_LED(P8_11)
+               BONE_LED(P8_12)
+               BONE_LED(P8_13)
+               BONE_LED(P8_14)
+               BONE_LED(P8_15)
+               BONE_LED(P8_16)
+               BONE_LED(P8_17)
+               BONE_LED(P8_18)
+               BONE_LED(P8_19)
+               BONE_LED(P8_20)
+               BONE_LED(P8_21)
+               BONE_LED(P8_22)
+               BONE_LED(P8_23)
+               BONE_LED(P8_24)
+               BONE_LED(P8_25)
+               BONE_LED(P8_26)
+               BONE_LED(P8_27)
+               BONE_LED(P8_28)
+               BONE_LED(P8_29)
+               BONE_LED(P8_30)
+               BONE_LED(P8_31)
+               BONE_LED(P8_32)
+               BONE_LED(P8_33)
+               BONE_LED(P8_34)
+               BONE_LED(P8_35)
+               BONE_LED(P8_36)
+               BONE_LED(P8_37)
+               BONE_LED(P8_38)
+               BONE_LED(P8_39)
+               BONE_LED(P8_40)
+               BONE_LED(P8_41)
+               BONE_LED(P8_42)
+               BONE_LED(P8_43)
+               BONE_LED(P8_44)
+               BONE_LED(P8_45)
+               BONE_LED(P8_46)
+
+               /*P9 header Bone LEDs*/
+               BONE_LED(P9_11)
+               BONE_LED(P9_12)
+               BONE_LED(P9_13)
+               BONE_LED(P9_14)
+               BONE_LED(P9_15)
+               BONE_LED(P9_16)
+               BONE_LED(P9_17)
+               BONE_LED(P9_18)
+               BONE_LED(P9_19)
+               BONE_LED(P9_20)
+               BONE_LED(P9_21)
+               BONE_LED(P9_22)
+               BONE_LED(P9_23)
+               BONE_LED(P9_24)
+               BONE_LED(P9_25)
+               BONE_LED(P9_26)
+               BONE_LED(P9_27)
+               BONE_LED(P9_28)
+               BONE_LED(P9_29)
+               BONE_LED(P9_30)
+               BONE_LED(P9_31)
+               BONE_LED(P9_41)
+               BONE_LED(P9_42)
+
+               /*mikroBus*/
+               BONE_LED(mb_pwm)
+               BONE_LED(mb_rst)
+               BONE_LED(mb_int)
+               BONE_LED(mb_rxd)
+               BONE_LED(mb_txd)
+               BONE_LED(mb_cs)
+               BONE_LED(mb_sck)
+               BONE_LED(mb_mosi)
+               BONE_LED(mb_miso)
+               BONE_LED(mb_scl)
+               BONE_LED(mb_sda)
+
+               /*AP6203BM*/
+               BONE_LED(bt_shutdown)
+               BONE_LED(bt_device_wakeup)
+               BONE_LED(bt_host_wakeup)
+       };
+
+       /* Dummy driver to request setup for cape header pins */
+       cape_header: pinmux_dummy {
+               compatible = "gpio-leds";
+               pinctrl-names = "default";
+               status = "okay";
+               pinctrl-0 = <
+                       &P8_03_gpio_pin
+                       &P8_04_gpio_pin
+                       &P8_05_gpio_pin
+                       &P8_06_gpio_pin
+                       &P8_07_gpio_pin
+                       &P8_08_gpio_pin
+                       &P8_09_gpio_pin
+                       &P8_10_gpio_pin
+                       &P8_11_gpio_pin
+                       &P8_12_gpio_pin
+                       &P8_13_gpio_pin
+                       &P8_14_gpio_pin
+                       &P8_15_gpio_pin
+                       &P8_16_gpio_pin
+                       &P8_17_gpio_pin
+                       &P8_18_gpio_pin
+                       &P8_19_gpio_pin
+                       &P8_20_gpio_pin
+                       &P8_21_gpio_pin
+                       &P8_22_gpio_pin
+                       &P8_23_gpio_pin
+                       &P8_24_gpio_pin
+                       &P8_25_gpio_pin
+                       &P8_26_gpio_pin
+                       &P8_27_gpio_pin
+                       &P8_28_gpio_pin
+                       &P8_29_gpio_pin
+                       &P8_30_gpio_pin
+                       &P8_31_gpio_pin
+                       &P8_32_gpio_pin
+                       &P8_33_gpio_pin
+                       &P8_34_gpio_pin
+                       &P8_35_gpio_pin
+                       &P8_36_gpio_pin
+                       &P8_37_gpio_pin
+                       &P8_38_gpio_pin
+                       &P8_39_gpio_pin
+                       &P8_40_gpio_pin
+                       &P8_41_gpio_pin
+                       &P8_42_gpio_pin
+                       &P8_43_gpio_pin
+                       &P8_44_gpio_pin
+                       &P8_45_gpio_pin
+                       &P8_46_gpio_pin
+
+                       &P9_11_gpio_pin
+                       &P9_12_gpio_pin
+                       &P9_13_gpio_pin
+                       &P9_14_gpio_pin
+                       &P9_15_gpio_pin
+                       &P9_16_gpio_pin
+                       &P9_17_gpio_pin
+                       &P9_18_gpio_pin
+                       &P9_19_gpio_pin
+                       &P9_20_gpio_pin
+                       &P9_21_gpio_pin
+                       &P9_22_gpio_pin
+                       &P9_23_gpio_pin
+                       &P9_24_gpio_pin
+                       &P9_25_gpio_pin
+                       &P9_26_gpio_pin
+                       &P9_27_gpio_pin
+                       &P9_28_gpio_pin
+                       &P9_29_gpio_pin
+                       &P9_30_gpio_pin
+                       &P9_31_gpio_pin
+                       &P9_41_gpio_pin
+                       &P9_42_gpio_pin
+
+                       &mb_pwm_gpio_pin
+                       &mb_rst_gpio_pin
+                       &mb_int_gpio_pin
+                       &mb_rxd_gpio_pin
+                       &mb_txd_gpio_pin
+                       &mb_cs_gpio_pin
+                       //&mb_sck_gpio_pin
+                       //&mb_mosi_gpio_pin
+                       //&mb_miso_gpio_pin
+                       &mb_scl_gpio_pin
+                       &mb_sda_gpio_pin
+
+                       &bt_shutdown_gpio_pin
+                       &bt_device_wakeup_gpio_pin
+                       &bt_host_wakeup_gpio_pin
+               >;
+       };
+};
+
+/* macro: BONE_PIN( <pin>, <mode_name>, <register_value_macro(s)> ) */
+#define BONE_PIN(XX,ZZ,QQ) \
+       padctrl_##XX { \
+               XX##_##ZZ##_pin: pinmux_##XX##_##ZZ##_pin \
+               { thead,pins = < QQ >; }; \
+       };
+
+/* Full P8/P9 header mode definitions */
+
+/* P8_01 - GND */
+/* P8_02 - GND */
+
+/* P8_03 (Ball:J34) GPIO1_21_MUX*/
+BONE_PIN(P8_03, default, P8_03(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_03, gpio, P8_03(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_03, gpio_pu, P8_03(MUX_MODE3, (PIN_INPUT_PULLUP | STRENGTH_MID)))
+BONE_PIN(P8_03, gpio_pd, P8_03(MUX_MODE3, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
+
+/* P8_04 (Ball:J35) GPIO1_22_MUX*/
+BONE_PIN(P8_04, default, P8_04(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_04, gpio, P8_04(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_04, gpio_pu, P8_04(MUX_MODE3, (PIN_INPUT_PULLUP | STRENGTH_MID)))
+BONE_PIN(P8_04, gpio_pd, P8_04(MUX_MODE3, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
+
+/* P8_05 (Ball:K32) GPIO1_23_MUX*/
+BONE_PIN(P8_05, default, P8_05(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_05, gpio, P8_05(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_05, gpio_pu, P8_05(MUX_MODE3, (PIN_INPUT_PULLUP | STRENGTH_MID)))
+BONE_PIN(P8_05, gpio_pd, P8_05(MUX_MODE3, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
+
+/* P8_06 (Ball:K33) GPIO1_24_MUX*/
+BONE_PIN(P8_06, default, P8_06(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_06, gpio, P8_06(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_06, gpio_pu, P8_06(MUX_MODE3, (PIN_INPUT_PULLUP | STRENGTH_MID)))
+BONE_PIN(P8_06, gpio_pd, P8_06(MUX_MODE3, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
+
+/* P8_07 (Ball:K34) GPIO1_25_MUX*/
+BONE_PIN(P8_07, default, P8_07(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_07, gpio, P8_07(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_07, gpio_pu, P8_07(MUX_MODE3, (PIN_INPUT_PULLUP | STRENGTH_MID)))
+BONE_PIN(P8_07, gpio_pd, P8_07(MUX_MODE3, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
+
+/* P8_08 (Ball:K35) GPIO1_26_MUX*/
+BONE_PIN(P8_08, default, P8_08(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_08, gpio, P8_08(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_08, gpio_pu, P8_08(MUX_MODE0, (PIN_INPUT_PULLUP | STRENGTH_MID)))
+BONE_PIN(P8_08, gpio_pd, P8_08(MUX_MODE0, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
+
+/* P8_09 (Ball:K36) GPIO1_27_MUX*/
+BONE_PIN(P8_09, default, P8_09(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_09, gpio, P8_09(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_09, gpio_pu, P8_09(MUX_MODE0, (PIN_INPUT_PULLUP | STRENGTH_MID)))
+BONE_PIN(P8_09, gpio_pd, P8_09(MUX_MODE0, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
+
+/* P8_10 (Ball:K37) GPIO1_28_MUX*/
+BONE_PIN(P8_10, default, P8_10(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_10, gpio, P8_10(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_10, gpio_pu, P8_10(MUX_MODE0, (PIN_INPUT_PULLUP | STRENGTH_MID)))
+BONE_PIN(P8_10, gpio_pd, P8_10(MUX_MODE0, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
+
+/* P8_11 (Ball:L32) GPIO1_29_MUX*/
+BONE_PIN(P8_11, default, P8_11(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_11, gpio, P8_11(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_11, gpio_pu, P8_11(MUX_MODE0, (PIN_INPUT_PULLUP | STRENGTH_MID)))
+BONE_PIN(P8_11, gpio_pd, P8_11(MUX_MODE0, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
+
+/* P8_12 (Ball:L33) GPIO1_30_MUX*/
+BONE_PIN(P8_12, default, P8_12(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_12, gpio, P8_12(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_12, gpio_pu, P8_12(MUX_MODE0, (PIN_INPUT_PULLUP | STRENGTH_MID)))
+BONE_PIN(P8_12, gpio_pd, P8_12(MUX_MODE0, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
+
+/* P8_13 (Ball:C6) GPIO3_2_MUX*/
+BONE_PIN(P8_13, default, P8_13(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_13, gpio, P8_13(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_13, gpio_pu, P8_13(MUX_MODE0, (PIN_INPUT_PULLUP | STRENGTH_MID)))
+BONE_PIN(P8_13, gpio_pd, P8_13(MUX_MODE0, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
+BONE_PIN(P8_13, pwm, P8_13(MUX_MODE1, (PIN_OUTPUT | STRENGTH_MID)))
+
+/* P8_14 (Ball:E29) CLK_OUT_3_MUX*/
+BONE_PIN(P8_14, default, P8_14(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_14, gpio, P8_14(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_14, gpio_pu, P8_14(MUX_MODE3, (PIN_INPUT_PULLUP | STRENGTH_MID)))
+BONE_PIN(P8_14, gpio_pd, P8_14(MUX_MODE3, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
+
+/* P8_15 (Ball:A6) GPIO3_0_MUX*/
+BONE_PIN(P8_15, default, P8_15(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_15, gpio, P8_15(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_15, gpio_pu, P8_15(MUX_MODE0, (PIN_INPUT_PULLUP | STRENGTH_MID)))
+BONE_PIN(P8_15, gpio_pd, P8_15(MUX_MODE0, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
+
+/* P8_16 (Ball:F34) GPIO0_20_MUX*/
+BONE_PIN(P8_16, default, P8_16(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_16, gpio, P8_16(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_16, gpio_pu, P8_16(MUX_MODE0, (PIN_INPUT_PULLUP | STRENGTH_MID)))
+BONE_PIN(P8_16, gpio_pd, P8_16(MUX_MODE0, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
+BONE_PIN(P8_16, uart, P8_16(MUX_MODE1, (PIN_OUTPUT | STRENGTH_MID)))
+
+/* P8_17 (Ball:B6) GPIO3_1_MUX*/
+BONE_PIN(P8_17, default, P8_17(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_17, gpio, P8_17(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_17, gpio_pu, P8_17(MUX_MODE0, (PIN_INPUT_PULLUP | STRENGTH_MID)))
+BONE_PIN(P8_17, gpio_pd, P8_17(MUX_MODE0, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
+
+/* P8_18 (Ball:B34) GPIO1_5_MUX*/
+BONE_PIN(P8_18, default, P8_18(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_18, gpio, P8_18(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_18, gpio_pu, P8_18(MUX_MODE0, (PIN_INPUT_PULLUP | STRENGTH_MID)))
+BONE_PIN(P8_18, gpio_pd, P8_18(MUX_MODE0, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
+
+/* P8_19 (Ball:D6) GPIO3_3_MUX*/
+BONE_PIN(P8_19, default, P8_19(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_19, gpio, P8_19(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_19, gpio_pu, P8_19(MUX_MODE0, (PIN_INPUT_PULLUP | STRENGTH_MID)))
+BONE_PIN(P8_19, gpio_pd, P8_19(MUX_MODE0, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
+BONE_PIN(P8_19, pwm, P8_19(MUX_MODE1, (PIN_OUTPUT | STRENGTH_MID)))
+
+/* P8_20 (Ball:C34) GPIO1_6_MUX*/
+BONE_PIN(P8_20, default, P8_20(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_20, gpio, P8_20(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_20, gpio_pu, P8_20(MUX_MODE0, (PIN_INPUT_PULLUP | STRENGTH_MID)))
+BONE_PIN(P8_20, gpio_pd, P8_20(MUX_MODE0, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
+
+/* P8_21 (Ball:D34) GPIO1_7_MUX*/
+BONE_PIN(P8_21, default, P8_21(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_21, gpio, P8_21(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_21, gpio_pu, P8_21(MUX_MODE0, (PIN_INPUT_PULLUP | STRENGTH_MID)))
+BONE_PIN(P8_21, gpio_pd, P8_21(MUX_MODE0, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
+BONE_PIN(P8_21, spi, P8_21(MUX_MODE1, (PIN_OUTPUT | STRENGTH_MID)))
+
+/* P8_22 (Ball:B35) GPIO1_8_MUX*/
+BONE_PIN(P8_22, default, P8_22(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_22, gpio, P8_22(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_22, gpio_pu, P8_22(MUX_MODE0, (PIN_INPUT_PULLUP | STRENGTH_MID)))
+BONE_PIN(P8_22, gpio_pd, P8_22(MUX_MODE0, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
+BONE_PIN(P8_22, spi, P8_22(MUX_MODE1, (PIN_OUTPUT | STRENGTH_MID)))
+
+/* P8_23 (Ball:A36) GPIO1_9_MUX*/
+BONE_PIN(P8_23, default, P8_23(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_23, gpio, P8_23(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_23, gpio_pu, P8_23(MUX_MODE0, (PIN_INPUT_PULLUP | STRENGTH_MID)))
+BONE_PIN(P8_23, gpio_pd, P8_23(MUX_MODE0, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
+BONE_PIN(P8_23, spi, P8_23(MUX_MODE1, (PIN_OUTPUT | STRENGTH_MID)))
+
+/* P8_24 (Ball:B36) GPIO1_10_MUX*/
+BONE_PIN(P8_24, default, P8_24(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_24, gpio, P8_24(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_24, gpio_pu, P8_24(MUX_MODE0, (PIN_INPUT_PULLUP | STRENGTH_MID)))
+BONE_PIN(P8_24, gpio_pd, P8_24(MUX_MODE0, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
+BONE_PIN(P8_24, spi, P8_24(MUX_MODE1, (PIN_INPUT | STRENGTH_MID)))
+
+/* P8_25 (Ball:B37) GPIO1_11_MUX*/
+BONE_PIN(P8_25, default, P8_25(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_25, gpio, P8_25(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_25, gpio_pu, P8_25(MUX_MODE0, (PIN_INPUT_PULLUP | STRENGTH_MID)))
+BONE_PIN(P8_25, gpio_pd, P8_25(MUX_MODE0, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
+
+/* P8_26 (Ball:C36) GPIO1_12_MUX*/
+BONE_PIN(P8_26, default, P8_26(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_26, gpio, P8_26(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_26, gpio_pu, P8_26(MUX_MODE0, (PIN_INPUT_PULLUP | STRENGTH_MID)))
+BONE_PIN(P8_26, gpio_pd, P8_26(MUX_MODE0, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
+
+/* P8_27 (Ball:D37) GPIO1_15_MUX*/
+BONE_PIN(P8_27, default, P8_27(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_27, gpio, P8_27(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_27, gpio_pu, P8_27(MUX_MODE0, (PIN_INPUT_PULLUP | STRENGTH_MID)))
+BONE_PIN(P8_27, gpio_pd, P8_27(MUX_MODE0, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
+
+/* P8_28 (Ball:E34) GPIO1_16_MUX*/
+BONE_PIN(P8_28, default, P8_28(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_28, gpio, P8_28(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_28, gpio_pu, P8_28(MUX_MODE0, (PIN_INPUT_PULLUP | STRENGTH_MID)))
+BONE_PIN(P8_28, gpio_pd, P8_28(MUX_MODE0, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
+
+/* P8_29 (Ball:D36) GPIO1_14_MUX*/
+BONE_PIN(P8_29, default, P8_29(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_29, gpio, P8_29(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_29, gpio_pu, P8_29(MUX_MODE0, (PIN_INPUT_PULLUP | STRENGTH_MID)))
+BONE_PIN(P8_29, gpio_pd, P8_29(MUX_MODE0, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
+BONE_PIN(P8_29, uart, P8_29(MUX_MODE1, (PIN_INPUT | STRENGTH_MID)))
+
+/* P8_30 (Ball:D35) GPIO1_13_MUX*/
+BONE_PIN(P8_30, default, P8_30(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_30, gpio, P8_30(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_30, gpio_pu, P8_30(MUX_MODE0, (PIN_INPUT_PULLUP | STRENGTH_MID)))
+BONE_PIN(P8_30, gpio_pd, P8_30(MUX_MODE0, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
+BONE_PIN(P8_30, uart, P8_30(MUX_MODE1, (PIN_OUTPUT | STRENGTH_MID)))
+
+/* P8_31 (Ball:D33) GPIO1_3_MUX*/
+BONE_PIN(P8_31, default, P8_31(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_31, gpio, P8_31(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_31, gpio_pu, P8_31(MUX_MODE0, (PIN_INPUT_PULLUP | STRENGTH_MID)))
+BONE_PIN(P8_31, gpio_pd, P8_31(MUX_MODE0, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
+
+/* P8_32 (Ball:A34) GPIO1_4_MUX*/
+BONE_PIN(P8_32, default, P8_32(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_32, gpio, P8_32(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_32, gpio_pu, P8_32(MUX_MODE0, (PIN_INPUT_PULLUP | STRENGTH_MID)))
+BONE_PIN(P8_32, gpio_pd, P8_32(MUX_MODE0, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
+
+/* P8_33 (Ball:C33) GPIO1_2_MUX*/
+BONE_PIN(P8_33, default, P8_33(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_33, gpio, P8_33(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_33, gpio_pu, P8_33(MUX_MODE0, (PIN_INPUT_PULLUP | STRENGTH_MID)))
+BONE_PIN(P8_33, gpio_pd, P8_33(MUX_MODE0, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
+
+/* P8_34 (Ball:E32) GPIO1_0_MUX*/
+BONE_PIN(P8_34, default, P8_34(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_34, gpio, P8_34(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_34, gpio_pu, P8_34(MUX_MODE0, (PIN_INPUT_PULLUP | STRENGTH_MID)))
+BONE_PIN(P8_34, gpio_pd, P8_34(MUX_MODE0, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
+
+/* P8_35 (Ball:A32) GPIO1_1_MUX*/
+BONE_PIN(P8_35, default, P8_35(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_35, gpio, P8_35(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_35, gpio_pu, P8_35(MUX_MODE0, (PIN_INPUT_PULLUP | STRENGTH_MID)))
+BONE_PIN(P8_35, gpio_pd, P8_35(MUX_MODE0, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
+
+/* P8_36 (Ball:D32) GPIO0_31_MUX*/
+BONE_PIN(P8_36, default, P8_36(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_36, gpio, P8_36(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_36, gpio_pu, P8_36(MUX_MODE0, (PIN_INPUT_PULLUP | STRENGTH_MID)))
+BONE_PIN(P8_36, gpio_pd, P8_36(MUX_MODE0, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
+
+/* P8_37 (Ball:B32) GPIO0_29_MUX*/
+BONE_PIN(P8_37, default, P8_37(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_37, gpio, P8_37(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_37, gpio_pu, P8_37(MUX_MODE0, (PIN_INPUT_PULLUP | STRENGTH_MID)))
+BONE_PIN(P8_37, gpio_pd, P8_37(MUX_MODE0, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
+
+/* P8_38 (Ball:C32) GPIO0_30_MUX*/
+BONE_PIN(P8_38, default, P8_38(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_38, gpio, P8_38(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_38, gpio_pu, P8_38(MUX_MODE0, (PIN_INPUT_PULLUP | STRENGTH_MID)))
+BONE_PIN(P8_38, gpio_pd, P8_38(MUX_MODE0, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
+
+/* P8_39 (Ball:D31) GPIO0_27_MUX*/
+BONE_PIN(P8_39, default, P8_39(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_39, gpio, P8_39(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_39, gpio_pu, P8_39(MUX_MODE0, (PIN_INPUT_PULLUP | STRENGTH_MID)))
+BONE_PIN(P8_39, gpio_pd, P8_39(MUX_MODE0, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
+BONE_PIN(P8_39, i2c, P8_39(MUX_MODE2, (PIN_OUTPUT | STRENGTH_MID)))
+
+/* P8_40 (Ball:E31) GPIO0_28_MUX*/
+BONE_PIN(P8_40, default, P8_40(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_40, gpio, P8_40(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_40, gpio_pu, P8_40(MUX_MODE0, (PIN_INPUT_PULLUP | STRENGTH_MID)))
+BONE_PIN(P8_40, gpio_pd, P8_40(MUX_MODE0, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
+BONE_PIN(P8_40, i2c, P8_40(MUX_MODE2, (PIN_INPUT | STRENGTH_MID)))
+
+/* P8_41 (Ball:F30) GPIO0_25_MUX*/
+BONE_PIN(P8_41, default, P8_41(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_41, gpio, P8_41(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))    
+BONE_PIN(P8_41, gpio_pu, P8_41(MUX_MODE0, (PIN_INPUT_PULLUP | STRENGTH_MID)))
+BONE_PIN(P8_41, gpio_pd, P8_41(MUX_MODE0, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
+
+/* P8_42 (Ball:C31) GPIO0_26_MUX*/
+BONE_PIN(P8_42, default, P8_42(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_42, gpio, P8_42(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_42, gpio_pu, P8_42(MUX_MODE0, (PIN_INPUT_PULLUP | STRENGTH_MID)))
+BONE_PIN(P8_42, gpio_pd, P8_42(MUX_MODE0, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
+
+/* P8_43 (Ball:C30) GPIO0_23_MUX*/
+BONE_PIN(P8_43, default, P8_43(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_43, gpio, P8_43(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_43, gpio_pu, P8_43(MUX_MODE0, (PIN_INPUT_PULLUP | STRENGTH_MID)))
+BONE_PIN(P8_43, gpio_pd, P8_43(MUX_MODE0, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
+BONE_PIN(P8_43, i2c, P8_43(MUX_MODE2, (PIN_OUTPUT | STRENGTH_MID)))
+
+/* P8_44 (Ball:D30) GPIO0_24_MUX*/
+BONE_PIN(P8_44, default, P8_44(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_44, gpio, P8_44(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_44, gpio_pu, P8_44(MUX_MODE0, (PIN_INPUT_PULLUP | STRENGTH_MID)))
+BONE_PIN(P8_44, gpio_pd, P8_44(MUX_MODE0, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
+
+/* P8_45 (Ball:F36) GPIO0_21_MUX*/
+BONE_PIN(P8_45, default, P8_45(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_45, gpio, P8_45(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_45, gpio_pu, P8_45(MUX_MODE0, (PIN_INPUT_PULLUP | STRENGTH_MID)))
+BONE_PIN(P8_45, gpio_pd, P8_45(MUX_MODE0, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
+BONE_PIN(P8_45, uart, P8_45(MUX_MODE1, (PIN_INPUT | STRENGTH_MID)))
+
+/* P8_46 (Ball:D29) GPIO0_22_MUX*/
+BONE_PIN(P8_46, default, P8_46(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_46, gpio, P8_46(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P8_46, gpio_pu, P8_46(MUX_MODE0, (PIN_INPUT_PULLUP | STRENGTH_MID)))
+BONE_PIN(P8_46, gpio_pd, P8_46(MUX_MODE0, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
+BONE_PIN(P8_46, i2c, P8_46(MUX_MODE2, (PIN_OUTPUT | STRENGTH_MID)))
+
+/* Full P9 header mode definitions */
+/* P9_01 - GND */
+/* P9_02 - GND */
+/* P9_03 - VOUT_3V3 */
+/* P9_04 - VOUT_3V3 */
+/* P9_05 - VIN */
+/* P9_06 - VIN */
+/* P9_07 - VOUT_SYS */
+/* P9_08 - VOUT_SYS */
+/* P9_09 - ONKEY# */
+/* P9_10 - RESET# */
+
+/* P9_11 (Ball:M32) UART1_TXD_MUX*/
+BONE_PIN(P9_11, default, P9_11(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P9_11, gpio, P9_11(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P9_11, gpio_pu, P9_11(MUX_MODE3, (PIN_INPUT_PULLUP | STRENGTH_MID)))
+BONE_PIN(P9_11, gpio_pd, P9_11(MUX_MODE3, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
+BONE_PIN(P9_11, uart, P9_11(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+
+/* P9_12 (Ball:H1) QSPI0_CSN0_MUX*/
+BONE_PIN(P9_12, default, P9_12(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P9_12, gpio, P9_12(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P9_12, gpio_pu, P9_12(MUX_MODE3, (PIN_INPUT_PULLUP | STRENGTH_MID)))
+BONE_PIN(P9_12, gpio_pd, P9_12(MUX_MODE3, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
+BONE_PIN(P9_12, pwm, P9_12(MUX_MODE1, (PIN_OUTPUT| STRENGTH_MID)))
+BONE_PIN(P9_12, i2c, P9_12(MUX_MODE2, (PIN_INPUT | STRENGTH_MID)))
+
+/* P9_13 (Ball:M33) UART1_RXD_MUX*/
+BONE_PIN(P9_13, default, P9_13(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P9_13, gpio, P9_13(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P9_13, gpio_pu, P9_13(MUX_MODE3, (PIN_INPUT_PULLUP | STRENGTH_MID)))
+BONE_PIN(P9_13, gpio_pd, P9_13(MUX_MODE3, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
+BONE_PIN(P9_13, uart, P9_13(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+
+/* P9_14 (Ball:K3) QSPI0_D1_MISO_MUX*/
+BONE_PIN(P9_14, default, P9_14(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P9_14, gpio, P9_14(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P9_14, gpio_pu, P9_14(MUX_MODE3, (PIN_INPUT_PULLUP | STRENGTH_MID)))
+BONE_PIN(P9_14, gpio_pd, P9_14(MUX_MODE3, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
+BONE_PIN(P9_14, pwm, P9_14(MUX_MODE1, (PIN_OUTPUT | STRENGTH_MID)))
+
+/* P9_15 (Ball:K2) QSPI0_D2_WP_MUX*/
+BONE_PIN(P9_15, default, P9_15(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P9_15, gpio, P9_15(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P9_15, gpio_pu, P9_15(MUX_MODE3, (PIN_INPUT_PULLUP | STRENGTH_MID)))
+BONE_PIN(P9_15, gpio_pd, P9_15(MUX_MODE3, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
+BONE_PIN(P9_15, pwm, P9_15(MUX_MODE1, (PIN_OUTPUT | STRENGTH_MID)))
+
+/* P9_16 (Ball:J3) QSPI0_D0_MOSI_MUX*/
+BONE_PIN(P9_16, default, P9_16(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P9_16, gpio, P9_16(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P9_16, gpio_pu, P9_16(MUX_MODE3, (PIN_INPUT_PULLUP | STRENGTH_MID)))
+BONE_PIN(P9_16, gpio_pd, P9_16(MUX_MODE3, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
+BONE_PIN(P9_16, pwm, P9_16(MUX_MODE1, (PIN_OUTPUT | STRENGTH_MID)))
+
+/* P9_17 (Ball:H32) QSPI1_CSN0_MUX*/
+BONE_PIN(P9_17, default, P9_17(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P9_17, gpio, P9_17(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P9_17, gpio_pu, P9_17(MUX_MODE3, (PIN_INPUT_PULLUP | STRENGTH_MID)))
+BONE_PIN(P9_17, gpio_pd, P9_17(MUX_MODE3, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
+
+/* P9_18 (Ball:G35) QSPI1_D0_MOSI_MUX*/
+BONE_PIN(P9_18, default, P9_18(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P9_18, gpio, P9_18(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P9_18, gpio_pu, P9_18(MUX_MODE3, (PIN_INPUT_PULLUP | STRENGTH_MID)))
+BONE_PIN(P9_18, gpio_pd, P9_18(MUX_MODE3, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
+BONE_PIN(P9_18, i2c, P9_18(MUX_MODE2, (PIN_INPUT | STRENGTH_MID)))
+
+/* P9_19 (Ball:G4) I2C2_SCL_MUX*/
+BONE_PIN(P9_19, default, P9_19(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P9_19, gpio, P9_19(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P9_19, gpio_pu, P9_19(MUX_MODE3, (PIN_INPUT_PULLUP | STRENGTH_MID)))
+BONE_PIN(P9_19, gpio_pd, P9_19(MUX_MODE3, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
+BONE_PIN(P9_19, i2c, P9_19(MUX_MODE0, (PIN_OUTPUT | STRENGTH_MID)))
+BONE_PIN(P9_19, uart, P9_19(MUX_MODE1, (PIN_OUTPUT | STRENGTH_MID)))
+
+/* P9_20 (Ball:G3) I2C2_SDA_MUX*/
+BONE_PIN(P9_20, default, P9_20(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P9_20, gpio, P9_20(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P9_20, gpio_pu, P9_20(MUX_MODE3, (PIN_INPUT_PULLUP | STRENGTH_MID)))
+BONE_PIN(P9_20, gpio_pd, P9_20(MUX_MODE3, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
+BONE_PIN(P9_20, i2c, P9_20(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P9_20, uart, P9_20(MUX_MODE1, (PIN_INPUT | STRENGTH_MID)))
+
+/* P9_21 (Ball:G34) QSPI1_D1_MISO_MUX*/
+BONE_PIN(P9_21, default, P9_21(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P9_21, gpio, P9_21(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P9_21, gpio_pu, P9_21(MUX_MODE3, (PIN_INPUT_PULLUP | STRENGTH_MID)))
+BONE_PIN(P9_21, gpio_pd, P9_21(MUX_MODE3, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
+
+/* P9_22 (Ball:H34) QSPI1_SCLK_MUX*/
+BONE_PIN(P9_22, default, P9_22(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P9_22, gpio, P9_22(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P9_22, gpio_pu, P9_22(MUX_MODE3, (PIN_INPUT_PULLUP | STRENGTH_MID)))
+BONE_PIN(P9_22, gpio_pd, P9_22(MUX_MODE3, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
+
+/* P9_23 (Ball:K1) QSPI0_D3_HOLD_MUX*/
+BONE_PIN(P9_23, default, P9_23(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P9_23, gpio, P9_23(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P9_23, gpio_pu, P9_23(MUX_MODE3, (PIN_INPUT_PULLUP | STRENGTH_MID)))
+BONE_PIN(P9_23, gpio_pd, P9_23(MUX_MODE3, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
+
+/* P9_24 (Ball:G33) QSPI1_D2_WP_MUX*/
+BONE_PIN(P9_24, default, P9_24(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P9_24, gpio, P9_24(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P9_24, gpio_pu, P9_24(MUX_MODE3, (PIN_INPUT_PULLUP | STRENGTH_MID)))
+BONE_PIN(P9_24, gpio_pd, P9_24(MUX_MODE3, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
+BONE_PIN(P9_24, uart, P9_24(MUX_MODE2, (PIN_OUTPUT | STRENGTH_MID)))
+
+/* P9_25 (Ball:F5) GPIO2_18_MUX*/
+BONE_PIN(P9_25, default, P9_25(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P9_25, gpio, P9_25(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P9_25, gpio_pu, P9_25(MUX_MODE0, (PIN_INPUT_PULLUP | STRENGTH_MID)))
+BONE_PIN(P9_25, gpio_pd, P9_25(MUX_MODE0, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
+
+/* P9_26 (Ball:F37) QSPI1_D3_HOLD_MUX*/
+BONE_PIN(P9_26, default, P9_26(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P9_26, gpio, P9_26(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P9_26, gpio_pu, P9_26(MUX_MODE3, (PIN_INPUT_PULLUP | STRENGTH_MID)))
+BONE_PIN(P9_26, gpio_pd, P9_26(MUX_MODE3, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
+BONE_PIN(P9_26, uart, P9_26(MUX_MODE2, (PIN_INPUT | STRENGTH_MID)))
+
+/* P9_27 (Ball:E4) GPIO2_19_MUX*/
+BONE_PIN(P9_27, default, P9_27(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P9_27, gpio, P9_27(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P9_27, gpio_pu, P9_27(MUX_MODE0, (PIN_INPUT_PULLUP | STRENGTH_MID)))
+BONE_PIN(P9_27, gpio_pd, P9_27(MUX_MODE0, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
+
+/* P9_28 (Ball:E3) SPI_CSN_MUX*/
+BONE_PIN(P9_28, default, P9_28(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P9_28, gpio, P9_28(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P9_28, gpio_pu, P9_28(MUX_MODE3, (PIN_INPUT_PULLUP | STRENGTH_MID)))
+BONE_PIN(P9_28, gpio_pd, P9_28(MUX_MODE3, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
+BONE_PIN(P9_28, uart, P9_28(MUX_MODE1, (PIN_INPUT | STRENGTH_MID)))
+
+/* P9_29 (Ball:F1) SPI_MISO_MUX*/
+BONE_PIN(P9_29, default, P9_29(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P9_29, gpio, P9_29(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P9_29, gpio_pu, P9_29(MUX_MODE3, (PIN_INPUT_PULLUP | STRENGTH_MID)))
+BONE_PIN(P9_29, gpio_pd, P9_29(MUX_MODE3, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
+BONE_PIN(P9_29, spi, P9_29(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+
+/* P9_30 (Ball:F2) SPI_MOSI_MUX*/
+BONE_PIN(P9_30, default, P9_30(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P9_30, gpio, P9_30(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P9_30, gpio_pu, P9_30(MUX_MODE3, (PIN_INPUT_PULLUP | STRENGTH_MID)))
+BONE_PIN(P9_30, gpio_pd, P9_30(MUX_MODE3, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
+BONE_PIN(P9_30, spi, P9_30(MUX_MODE0, (PIN_OUTPUT | STRENGTH_MID)))
+
+/* P9_31 (Ball:D3) SPI_SCLK_MUX*/
+BONE_PIN(P9_31, default, P9_31(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P9_31, gpio, P9_31(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P9_31, gpio_pu, P9_31(MUX_MODE3, (PIN_INPUT_PULLUP | STRENGTH_MID)))
+BONE_PIN(P9_31, gpio_pd, P9_31(MUX_MODE3, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
+BONE_PIN(P9_31, spi, P9_31(MUX_MODE0, (PIN_OUTPUT_PULLDOWN | STRENGTH_MID)))
+BONE_PIN(P9_31, uart, P9_31(MUX_MODE1, (PIN_OUTPUT_PULLDOWN | STRENGTH_MID)))
+
+/* P9_32 - GND */
+/* P9_33 - ADC_VIN_CH4 */
+/* P9_34 - GND */
+/* P9_35 - ADC_VIN_CH6 */
+/* P9_36 - ADC_VIN_CH5 */
+/* P9_37 - ADC_VIN_CH2 */
+/* P9_38 - ADC_VIN_CH3 */
+/* P9_39 - ADC_VIN_CH0 */
+/* P9_39 - ADC_VIN_CH1 */
+
+/* P9_41 (Ball:D2) GPIO2_13_MUX*/
+BONE_PIN(P9_41, default, P9_41(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P9_41, gpio, P9_41(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P9_41, gpio_pu, P9_41(MUX_MODE0, (PIN_INPUT_PULLUP | STRENGTH_MID)))
+BONE_PIN(P9_41, gpio_pd, P9_41(MUX_MODE0, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
+
+/* P9_42 (Ball:H3) QSPI0_SCLK_MUX*/
+BONE_PIN(P9_42, default, P9_42(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P9_42, gpio, P9_42(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(P9_42, gpio_pu, P9_42(MUX_MODE3, (PIN_INPUT_PULLUP | STRENGTH_MID)))
+BONE_PIN(P9_42, gpio_pd, P9_42(MUX_MODE3, (PIN_INPUT_PULLDOWN | STRENGTH_MID)))
+BONE_PIN(P9_42, pwm, P9_42(MUX_MODE1, (PIN_OUTPUT_PULLDOWN | STRENGTH_MID)))
+
+/* P9_43 - GND */
+/* P9_44 - GND */
+/* P9_45 - GND */
+/* P9_46 - GND */
+
+/* mikroBus port*/
+
+/*PWM*/
+BONE_PIN(mb_pwm, gpio, mb_pwm(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(mb_pwm, pwm, mb_pwm(MUX_MODE1, (PIN_OUTPUT | STRENGTH_MID)))
+
+/*GPIO*/
+BONE_PIN(mb_rst, gpio, mb_rst(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(mb_int, gpio, mb_int(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+
+/*UART*/
+BONE_PIN(mb_rxd, gpio, mb_rxd(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(mb_txd, gpio, mb_txd(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
+
+BONE_PIN(mb_rxd, uart, mb_rxd(MUX_MODE1, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(mb_txd, uart, mb_txd(MUX_MODE1, (PIN_INPUT | STRENGTH_MID)))
+
+/*SPI*/
+BONE_PIN(mb_cs, gpio, mb_cs(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(mb_sck, gpio, mb_sck(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(mb_mosi, gpio, mb_mosi(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(mb_miso, gpio, mb_miso(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
+
+BONE_PIN(mb_cs, spi, mb_cs(MUX_MODE0, (PIN_OUTPUT | STRENGTH_MID)))
+BONE_PIN(mb_sck, spi, mb_sck(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(mb_mosi, spi, mb_mosi(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(mb_miso, spi, mb_miso(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+
+/*I2C*/
+BONE_PIN(mb_scl, gpio, mb_scl(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(mb_sda, gpio, mb_sda(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+
+BONE_PIN(mb_scl, i2c, mb_scl(MUX_MODE1, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(mb_sda, i2c, mb_sda(MUX_MODE1, (PIN_INPUT | STRENGTH_MID)))
+
+&{/} {
+       aliases {
+               mikrobus0 = &bone_mikrobus0;
+       };
+
+       bone_mikrobus0: linux-mikrobus {
+               compatible = "linux,mikrobus";
+               status = "disabled";
+               pinctrl-names = "default", "pwm_default", "pwm_gpio",
+                               "uart_default", "uart_gpio", "i2c_default",
+                               "i2c_gpio", "spi_default", "spi_gpio";
+               pinctrl-0 = <
+                       &mb_rst_gpio_pin
+                       &mb_int_gpio_pin
+               >;
+               pinctrl-1 = <&mb_pwm_pwm_pin>;
+               pinctrl-2 = <&mb_pwm_gpio_pin>;
+               pinctrl-3 = <
+                       &mb_txd_uart_pin
+                       &mb_rxd_uart_pin
+               >;
+               pinctrl-4 = <
+                       &mb_txd_gpio_pin
+                       &mb_rxd_gpio_pin
+               >;
+               pinctrl-5 = <
+                       &mb_scl_i2c_pin
+                       &mb_sda_i2c_pin
+               >;
+               pinctrl-6 = <
+                       &mb_scl_gpio_pin
+                       &mb_sda_gpio_pin
+               >;
+               pinctrl-7 = <
+                       &mb_cs_spi_pin
+                       &mb_sck_spi_pin
+                       &mb_mosi_spi_pin
+                       &mb_miso_spi_pin
+               >;
+               pinctrl-8 = <
+                       &mb_cs_gpio_pin
+                       &mb_sck_gpio_pin
+                       &mb_mosi_gpio_pin
+                       &mb_miso_gpio_pin
+               >;
+
+               i2c-adaptor = <&i2c4>;
+               spi-master = <0>;
+               spi-cs = <0 1>;
+               uart = <&uart3>;
+               pwms = <&pwm 2 5000000>;
+               mikrobus-gpios = <gpio_mb_pwm   GPIO_ACTIVE_HIGH>,  /*mb_pwm*/
+                                                <gpio_mb_rst   GPIO_ACTIVE_HIGH>,  /*mb_rst*/
+                                                <gpio_mb_int   GPIO_ACTIVE_HIGH>,  /*mb_int*/
+                                                <gpio_mb_rxd   GPIO_ACTIVE_HIGH>,  /*mb_rxd*/
+                                                <gpio_mb_txd   GPIO_ACTIVE_HIGH>,  /*mb_txd*/
+                                                <gpio_mb_cs    GPIO_ACTIVE_HIGH>,  /*mb_cs*/ 
+                                                <gpio_mb_sck   GPIO_ACTIVE_HIGH>,  /*mb_sck*/
+                                                <gpio_mb_mosi  GPIO_ACTIVE_HIGH>,  /*mb_mosi*/
+                                                <gpio_mb_miso  GPIO_ACTIVE_HIGH>,  /*mb_miso*/
+                                                <gpio_mb_scl   GPIO_ACTIVE_HIGH>,  /*mb_scl*/
+                                                <gpio_mb_sda   GPIO_ACTIVE_HIGH>;  /*mb_sda*/
+       };
+};
+
+
+/*AP6203BM*/
+
+BONE_PIN(bt_shutdown, gpio, bt_shutdown(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(bt_device_wakeup, gpio, bt_device_wakeup(MUX_MODE3, (PIN_INPUT | STRENGTH_MID)))
+BONE_PIN(bt_host_wakeup, gpio, bt_host_wakeup(MUX_MODE0, (PIN_INPUT | STRENGTH_MID)))
+
+/* pinmux helper */
+
+&soc {
+       /* P8_01 - GND */
+       /* P8_02 - GND */
+       /* P8_03 (Ball:J34) GPIO1_21_MUX*/
+       P8_03_pinmux {
+               status = "okay";
+               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
+               pinctrl-0 = <&P8_03_default_pin>;
+               pinctrl-1 = <&P8_03_gpio_pin>;
+               pinctrl-2 = <&P8_03_gpio_pu_pin>;
+               pinctrl-3 = <&P8_03_gpio_pd_pin>;
+       };
+
+       /* P8_04 (Ball:J35) GPIO1_22_MUX*/
+       P8_04_pinmux {
+               status = "okay";
+               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
+               pinctrl-0 = <&P8_04_default_pin>;
+               pinctrl-1 = <&P8_04_gpio_pin>;
+               pinctrl-2 = <&P8_04_gpio_pu_pin>;
+               pinctrl-3 = <&P8_04_gpio_pd_pin>;
+       };
+
+       /* P8_05 (Ball:K32) GPIO1_23_MUX*/
+       P8_05_pinmux {
+               status = "okay";
+               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
+               pinctrl-0 = <&P8_05_default_pin>;
+               pinctrl-1 = <&P8_05_gpio_pin>;
+               pinctrl-2 = <&P8_05_gpio_pu_pin>;
+               pinctrl-3 = <&P8_05_gpio_pd_pin>;
+       };
+
+       /* P8_06 (Ball:K33) GPIO1_24_MUX*/
+       P8_06_pinmux {
+               status = "okay";
+               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
+               pinctrl-0 = <&P8_06_default_pin>;
+               pinctrl-1 = <&P8_06_gpio_pin>;
+               pinctrl-2 = <&P8_06_gpio_pu_pin>;
+               pinctrl-3 = <&P8_06_gpio_pd_pin>;
+       };
+
+       /* P8_07 (Ball:K34) GPIO1_25_MUX*/
+       P8_07_pinmux {
+               status = "okay";
+               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
+               pinctrl-0 = <&P8_07_default_pin>;
+               pinctrl-1 = <&P8_07_gpio_pin>;
+               pinctrl-2 = <&P8_07_gpio_pu_pin>;
+               pinctrl-3 = <&P8_07_gpio_pd_pin>;
+       };
+
+       /* P8_08 (Ball:K35) GPIO1_26_MUX*/
+       P8_08_pinmux {
+               status = "okay";
+               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
+               pinctrl-0 = <&P8_08_default_pin>;
+               pinctrl-1 = <&P8_08_gpio_pin>;
+               pinctrl-2 = <&P8_08_gpio_pu_pin>;
+               pinctrl-3 = <&P8_08_gpio_pd_pin>;
+       };
+
+       /* P8_09 (Ball:K36) GPIO1_27_MUX*/
+       P8_09_pinmux {
+               status = "okay";
+               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
+               pinctrl-0 = <&P8_09_default_pin>;
+               pinctrl-1 = <&P8_09_gpio_pin>;
+               pinctrl-2 = <&P8_09_gpio_pu_pin>;
+               pinctrl-3 = <&P8_09_gpio_pd_pin>;
+       };
+
+       /* P8_10 (Ball:K37) GPIO1_28_MUX*/
+       P8_10_pinmux {
+               status = "okay";
+               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
+               pinctrl-0 = <&P8_10_default_pin>;
+               pinctrl-1 = <&P8_10_gpio_pin>;
+               pinctrl-2 = <&P8_10_gpio_pu_pin>;
+               pinctrl-3 = <&P8_10_gpio_pd_pin>;
+       };
+
+       /* P8_11 (Ball:L32) GPIO1_29_MUX*/
+       P8_11_pinmux {
+               status = "okay";
+               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
+               pinctrl-0 = <&P8_11_default_pin>;
+               pinctrl-1 = <&P8_11_gpio_pin>;
+               pinctrl-2 = <&P8_11_gpio_pu_pin>;
+               pinctrl-3 = <&P8_11_gpio_pd_pin>;
+       };
+
+       /* P8_12 (Ball:L33) GPIO1_30_MUX*/
+       P8_12_pinmux {
+               status = "okay";
+               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
+               pinctrl-0 = <&P8_12_default_pin>;
+               pinctrl-1 = <&P8_12_gpio_pin>;
+               pinctrl-2 = <&P8_12_gpio_pu_pin>;
+               pinctrl-3 = <&P8_12_gpio_pd_pin>;
+       };
+
+       /* P8_13 (Ball:C6) GPIO3_2_MUX*/
+       P8_13_pinmux {
+               status = "okay";
+               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
+               pinctrl-0 = <&P8_13_default_pin>;
+               pinctrl-1 = <&P8_13_gpio_pin>;
+               pinctrl-2 = <&P8_13_gpio_pu_pin>;
+               pinctrl-3 = <&P8_13_gpio_pd_pin>;
+       };
+
+       /* P8_14 (Ball:E29) CLK_OUT_3_MUX*/
+       P8_14_pinmux {
+               status = "okay";
+               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
+               pinctrl-0 = <&P8_14_default_pin>;
+               pinctrl-1 = <&P8_14_gpio_pin>;
+               pinctrl-2 = <&P8_14_gpio_pu_pin>;
+               pinctrl-3 = <&P8_14_gpio_pd_pin>;
+       };
+
+       /* P8_15 (Ball:A6) GPIO3_0_MUX*/
+       P8_15_pinmux {
+               status = "okay";
+               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
+               pinctrl-0 = <&P8_15_default_pin>;
+               pinctrl-1 = <&P8_15_gpio_pin>;
+               pinctrl-2 = <&P8_15_gpio_pu_pin>;
+               pinctrl-3 = <&P8_15_gpio_pd_pin>;
+       };
+
+       /* P8_16 (Ball:F34) GPIO0_20_MUX*/
+       P8_16_pinmux {
+               status = "okay";
+               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
+               pinctrl-0 = <&P8_16_default_pin>;
+               pinctrl-1 = <&P8_16_gpio_pin>;
+               pinctrl-2 = <&P8_16_gpio_pu_pin>;
+               pinctrl-3 = <&P8_16_gpio_pd_pin>;
+       };
+
+       /* P8_17 (Ball:B6) GPIO3_1_MUX*/
+       P8_17_pinmux {
+               status = "okay";
+               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
+               pinctrl-0 = <&P8_17_default_pin>;
+               pinctrl-1 = <&P8_17_gpio_pin>;
+               pinctrl-2 = <&P8_17_gpio_pu_pin>;
+               pinctrl-3 = <&P8_17_gpio_pd_pin>;
+       };
+
+       /* P8_18 (Ball:B34) GPIO1_5_MUX*/
+       P8_18_pinmux {
+               status = "okay";
+               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
+               pinctrl-0 = <&P8_18_default_pin>;
+               pinctrl-1 = <&P8_18_gpio_pin>;
+               pinctrl-2 = <&P8_18_gpio_pu_pin>;
+               pinctrl-3 = <&P8_18_gpio_pd_pin>;
+       };
+
+       /* P8_19 (Ball:D6) GPIO3_3_MUX*/
+       P8_19_pinmux {
+               status = "okay";
+               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
+               pinctrl-0 = <&P8_19_default_pin>;
+               pinctrl-1 = <&P8_19_gpio_pin>;
+               pinctrl-2 = <&P8_19_gpio_pu_pin>;
+               pinctrl-3 = <&P8_19_gpio_pd_pin>;
+       };
+
+       /* P8_20 (Ball:C34) GPIO1_6_MUX*/
+       P8_20_pinmux {
+               status = "okay";
+               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
+               pinctrl-0 = <&P8_20_default_pin>;
+               pinctrl-1 = <&P8_20_gpio_pin>;
+               pinctrl-2 = <&P8_20_gpio_pu_pin>;
+               pinctrl-3 = <&P8_20_gpio_pd_pin>;
+       };
+
+       /* P8_21 (Ball:D34) GPIO1_7_MUX*/
+       P8_21_pinmux {
+               status = "okay";
+               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
+               pinctrl-0 = <&P8_21_default_pin>;
+               pinctrl-1 = <&P8_21_gpio_pin>;
+               pinctrl-2 = <&P8_21_gpio_pu_pin>;
+               pinctrl-3 = <&P8_21_gpio_pd_pin>;
+       };
+
+       /* P8_22 (Ball:B35) GPIO1_8_MUX*/
+       P8_22_pinmux {
+               status = "okay";
+               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
+               pinctrl-0 = <&P8_22_default_pin>;
+               pinctrl-1 = <&P8_22_gpio_pin>;
+               pinctrl-2 = <&P8_22_gpio_pu_pin>;
+               pinctrl-3 = <&P8_22_gpio_pd_pin>;
+       };
+
+       /* P8_23 (Ball:A36) GPIO1_9_MUX*/
+       P8_23_pinmux {
+               status = "okay";
+               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
+               pinctrl-0 = <&P8_23_default_pin>;
+               pinctrl-1 = <&P8_23_gpio_pin>;
+               pinctrl-2 = <&P8_23_gpio_pu_pin>;
+               pinctrl-3 = <&P8_23_gpio_pd_pin>;
+       };
+
+       /* P8_24 (Ball:B36) GPIO1_10_MUX*/
+       P8_24_pinmux {
+               status = "okay";
+               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
+               pinctrl-0 = <&P8_24_default_pin>;
+               pinctrl-1 = <&P8_24_gpio_pin>;
+               pinctrl-2 = <&P8_24_gpio_pu_pin>;
+               pinctrl-3 = <&P8_24_gpio_pd_pin>;
+       };
+
+       /* P8_25 (Ball:B37) GPIO1_11_MUX*/
+       P8_25_pinmux {
+               status = "okay";
+               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
+               pinctrl-0 = <&P8_25_default_pin>;
+               pinctrl-1 = <&P8_25_gpio_pin>;
+               pinctrl-2 = <&P8_25_gpio_pu_pin>;
+               pinctrl-3 = <&P8_25_gpio_pd_pin>;
+       };
+
+       /* P8_26 (Ball:C36) GPIO1_12_MUX*/
+       P8_26_pinmux {
+               status = "okay";
+               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
+               pinctrl-0 = <&P8_26_default_pin>;
+               pinctrl-1 = <&P8_26_gpio_pin>;
+               pinctrl-2 = <&P8_26_gpio_pu_pin>;
+               pinctrl-3 = <&P8_26_gpio_pd_pin>;
+       };
+
+       /* P8_27 (Ball:D37) GPIO1_15_MUX*/
+       P8_27_pinmux {
+               status = "okay";
+               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
+               pinctrl-0 = <&P8_27_default_pin>;
+               pinctrl-1 = <&P8_27_gpio_pin>;
+               pinctrl-2 = <&P8_27_gpio_pu_pin>;
+               pinctrl-3 = <&P8_27_gpio_pd_pin>;
+       };
+
+       /* P8_28 (Ball:E34) GPIO1_16_MUX*/
+       P8_28_pinmux {
+               status = "okay";
+               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
+               pinctrl-0 = <&P8_28_default_pin>;
+               pinctrl-1 = <&P8_28_gpio_pin>;
+               pinctrl-2 = <&P8_28_gpio_pu_pin>;
+               pinctrl-3 = <&P8_28_gpio_pd_pin>;
+       };
+
+       /* P8_29 (Ball:D36) GPIO1_14_MUX*/
+       P8_29_pinmux {
+               status = "okay";
+               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
+               pinctrl-0 = <&P8_29_default_pin>;
+               pinctrl-1 = <&P8_29_gpio_pin>;
+               pinctrl-2 = <&P8_29_gpio_pu_pin>;
+               pinctrl-3 = <&P8_29_gpio_pd_pin>;
+       };
+
+       /* P8_30 (Ball:D35) GPIO1_13_MUX*/
+       P8_30_pinmux {
+               status = "okay";
+               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
+               pinctrl-0 = <&P8_30_default_pin>;
+               pinctrl-1 = <&P8_30_gpio_pin>;
+               pinctrl-2 = <&P8_30_gpio_pu_pin>;
+               pinctrl-3 = <&P8_30_gpio_pd_pin>;
+       };
+
+       /* P8_31 (Ball:D33) GPIO1_3_MUX*/
+       P8_31_pinmux {
+               status = "okay";
+               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
+               pinctrl-0 = <&P8_31_default_pin>;
+               pinctrl-1 = <&P8_31_gpio_pin>;
+               pinctrl-2 = <&P8_31_gpio_pu_pin>;
+               pinctrl-3 = <&P8_31_gpio_pd_pin>;
+       };
+
+       /* P8_32 (Ball:A34) GPIO1_4_MUX*/
+       P8_32_pinmux {
+               status = "okay";
+               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
+               pinctrl-0 = <&P8_32_default_pin>;
+               pinctrl-1 = <&P8_32_gpio_pin>;
+               pinctrl-2 = <&P8_32_gpio_pu_pin>;
+               pinctrl-3 = <&P8_32_gpio_pd_pin>;
+       };
+
+       /* P8_33 (Ball:C33) GPIO1_2_MUX*/
+       P8_33_pinmux {
+               status = "okay";
+               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
+               pinctrl-0 = <&P8_33_default_pin>;
+               pinctrl-1 = <&P8_33_gpio_pin>;
+               pinctrl-2 = <&P8_33_gpio_pu_pin>;
+               pinctrl-3 = <&P8_33_gpio_pd_pin>;
+       };
+
+       /* P8_34 (Ball:E32) GPIO1_0_MUX*/
+       P8_34_pinmux {
+               status = "okay";
+               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
+               pinctrl-0 = <&P8_34_default_pin>;
+               pinctrl-1 = <&P8_34_gpio_pin>;
+               pinctrl-2 = <&P8_34_gpio_pu_pin>;
+               pinctrl-3 = <&P8_34_gpio_pd_pin>;
+       };
+
+       /* P8_35 (Ball:A32) GPIO1_1_MUX*/
+       P8_35_pinmux {
+               status = "okay";
+               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
+               pinctrl-0 = <&P8_35_default_pin>;
+               pinctrl-1 = <&P8_35_gpio_pin>;
+               pinctrl-2 = <&P8_35_gpio_pu_pin>;
+               pinctrl-3 = <&P8_35_gpio_pd_pin>;
+       };
+
+       /* P8_36 (Ball:D32) GPIO0_31_MUX*/
+       P8_36_pinmux {
+               status = "okay";
+               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
+               pinctrl-0 = <&P8_36_default_pin>;
+               pinctrl-1 = <&P8_36_gpio_pin>;
+               pinctrl-2 = <&P8_36_gpio_pu_pin>;
+               pinctrl-3 = <&P8_36_gpio_pd_pin>;
+       };
+
+       /* P8_37 (Ball:B32) GPIO0_29_MUX*/
+       P8_37_pinmux {
+               status = "okay";
+               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
+               pinctrl-0 = <&P8_37_default_pin>;
+               pinctrl-1 = <&P8_37_gpio_pin>;
+               pinctrl-2 = <&P8_37_gpio_pu_pin>;
+               pinctrl-3 = <&P8_37_gpio_pd_pin>;
+       };
+
+       /* P8_38 (Ball:C32) GPIO0_30_MUX*/
+       P8_38_pinmux {
+               status = "okay";
+               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
+               pinctrl-0 = <&P8_38_default_pin>;
+               pinctrl-1 = <&P8_38_gpio_pin>;
+               pinctrl-2 = <&P8_38_gpio_pu_pin>;
+               pinctrl-3 = <&P8_38_gpio_pd_pin>;
+       };
+
+       /* P8_39 (Ball:D31) GPIO0_27_MUX*/
+       P8_39_pinmux {
+               status = "okay";
+               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
+               pinctrl-0 = <&P8_39_default_pin>;
+               pinctrl-1 = <&P8_39_gpio_pin>;
+               pinctrl-2 = <&P8_39_gpio_pu_pin>;
+               pinctrl-3 = <&P8_39_gpio_pd_pin>;
+       };
+
+       /* P8_40 (Ball:E31) GPIO0_28_MUX*/
+       P8_40_pinmux {
+               status = "okay";
+               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
+               pinctrl-0 = <&P8_40_default_pin>;
+               pinctrl-1 = <&P8_40_gpio_pin>;
+               pinctrl-2 = <&P8_40_gpio_pu_pin>;
+               pinctrl-3 = <&P8_40_gpio_pd_pin>;
+       };
+
+       /* P8_41 (Ball:F30) GPIO0_25_MUX*/
+       P8_41_pinmux {
+               status = "okay";
+               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
+               pinctrl-0 = <&P8_41_default_pin>;
+               pinctrl-1 = <&P8_41_gpio_pin>;
+               pinctrl-2 = <&P8_41_gpio_pu_pin>;
+               pinctrl-3 = <&P8_41_gpio_pd_pin>;
+       };
+
+       /* P8_42 (Ball:C31) GPIO0_26_MUX*/
+       P8_42_pinmux {
+               status = "okay";
+               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
+               pinctrl-0 = <&P8_42_default_pin>;
+               pinctrl-1 = <&P8_42_gpio_pin>;
+               pinctrl-2 = <&P8_42_gpio_pu_pin>;
+               pinctrl-3 = <&P8_42_gpio_pd_pin>;
+       };
+
+       /* P8_43 (Ball:C30) GPIO0_23_MUX*/
+       P8_43_pinmux {
+               status = "okay";
+               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
+               pinctrl-0 = <&P8_43_default_pin>;
+               pinctrl-1 = <&P8_43_gpio_pin>;
+               pinctrl-2 = <&P8_43_gpio_pu_pin>;
+               pinctrl-3 = <&P8_43_gpio_pd_pin>;
+       };
+
+       /* P8_44 (Ball:D30) GPIO0_24_MUX*/
+       P8_44_pinmux {
+               status = "okay";
+               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
+               pinctrl-0 = <&P8_44_default_pin>;
+               pinctrl-1 = <&P8_44_gpio_pin>;
+               pinctrl-2 = <&P8_44_gpio_pu_pin>;
+               pinctrl-3 = <&P8_44_gpio_pd_pin>;
+       };
+
+       /* P8_45 (Ball:F36) GPIO0_21_MUX*/
+       P8_45_pinmux {
+               status = "okay";
+               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
+               pinctrl-0 = <&P8_45_default_pin>;
+               pinctrl-1 = <&P8_45_gpio_pin>;
+               pinctrl-2 = <&P8_45_gpio_pu_pin>;
+               pinctrl-3 = <&P8_45_gpio_pd_pin>;
+       };
+
+       /* P8_46 (Ball:D29) GPIO0_22_MUX*/
+       P8_46_pinmux {
+               status = "okay";
+               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
+               pinctrl-0 = <&P8_46_default_pin>;
+               pinctrl-1 = <&P8_46_gpio_pin>;
+               pinctrl-2 = <&P8_46_gpio_pu_pin>;
+               pinctrl-3 = <&P8_46_gpio_pd_pin>;
+       };
+
+       /* P9_01 - GND */
+       /* P9_02 - GND */
+       /* P9_03 - VOUT_3V3 */
+       /* P9_04 - VOUT_3V3 */
+       /* P9_05 - VIN */
+       /* P9_06 - VIN */
+       /* P9_07 - VOUT_SYS */
+       /* P9_08 - VOUT_SYS */
+       /* P9_09 - ONKEY# */
+       /* P9_10 - RESET# */
+       /* P9_11 (Ball:M32) UART1_TXD_MUX*/
+       P9_11_pinmux {
+               status = "okay";
+               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
+               pinctrl-0 = <&P9_11_default_pin>;
+               pinctrl-1 = <&P9_11_gpio_pin>;
+               pinctrl-2 = <&P9_11_gpio_pu_pin>;
+               pinctrl-3 = <&P9_11_gpio_pd_pin>;
+       };
+
+       /* P9_12 (Ball:H1) QSPI0_CSN0_MUX*/
+       P9_12_pinmux {
+               status = "okay";
+               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
+               pinctrl-0 = <&P9_12_default_pin>;
+               pinctrl-1 = <&P9_12_gpio_pin>;
+               pinctrl-2 = <&P9_12_gpio_pu_pin>;
+               pinctrl-3 = <&P9_12_gpio_pd_pin>;
+       };
+
+       /* P9_13 (Ball:M33) UART1_RXD_MUX*/
+       P9_13_pinmux {
+               status = "okay";
+               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
+               pinctrl-0 = <&P9_13_default_pin>;
+               pinctrl-1 = <&P9_13_gpio_pin>;
+               pinctrl-2 = <&P9_13_gpio_pu_pin>;
+               pinctrl-3 = <&P9_13_gpio_pd_pin>;
+       };
+
+       /* P9_14 (Ball:K3) QSPI0_D1_MISO_MUX*/
+       P9_14_pinmux {
+               status = "okay";
+               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
+               pinctrl-0 = <&P9_14_default_pin>;
+               pinctrl-1 = <&P9_14_gpio_pin>;
+               pinctrl-2 = <&P9_14_gpio_pu_pin>;
+               pinctrl-3 = <&P9_14_gpio_pd_pin>;
+       };
+
+       /* P9_15 (Ball:K2) QSPI0_D2_WP_MUX*/
+       P9_15_pinmux {
+               status = "okay";
+               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
+               pinctrl-0 = <&P9_15_default_pin>;
+               pinctrl-1 = <&P9_15_gpio_pin>;
+               pinctrl-2 = <&P9_15_gpio_pu_pin>;
+               pinctrl-3 = <&P9_15_gpio_pd_pin>;
+       };
+
+       /* P9_16 (Ball:J3) QSPI0_D0_MOSI_MUX*/
+       P9_16_pinmux {
+               status = "okay";
+               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
+               pinctrl-0 = <&P9_16_default_pin>;
+               pinctrl-1 = <&P9_16_gpio_pin>;
+               pinctrl-2 = <&P9_16_gpio_pu_pin>;
+               pinctrl-3 = <&P9_16_gpio_pd_pin>;
+       };
+
+       /* P9_17 (Ball:H32) QSPI1_CSN0_MUX*/
+       P9_17_pinmux {
+               status = "okay";
+               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
+               pinctrl-0 = <&P9_17_default_pin>;
+               pinctrl-1 = <&P9_17_gpio_pin>;
+               pinctrl-2 = <&P9_17_gpio_pu_pin>;
+               pinctrl-3 = <&P9_17_gpio_pd_pin>;
+       };
+
+       /* P9_18 (Ball:G35) QSPI1_D0_MOSI_MUX*/
+       P9_18_pinmux {
+               status = "okay";
+               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
+               pinctrl-0 = <&P9_18_default_pin>;
+               pinctrl-1 = <&P9_18_gpio_pin>;
+               pinctrl-2 = <&P9_18_gpio_pu_pin>;
+               pinctrl-3 = <&P9_18_gpio_pd_pin>;
+       };
+
+       /* P9_19 (Ball:G4) I2C2_SCL_MUX*/
+       P9_19_pinmux {
+               status = "okay";
+               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
+               pinctrl-0 = <&P9_19_default_pin>;
+               pinctrl-1 = <&P9_19_gpio_pin>;
+               pinctrl-2 = <&P9_19_gpio_pu_pin>;
+               pinctrl-3 = <&P9_19_gpio_pd_pin>;
+       };
+
+       /* P9_20 (Ball:G3) I2C2_SDA_MUX*/
+       P9_20_pinmux {
+               status = "okay";
+               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
+               pinctrl-0 = <&P9_20_default_pin>;
+               pinctrl-1 = <&P9_20_gpio_pin>;
+               pinctrl-2 = <&P9_20_gpio_pu_pin>;
+               pinctrl-3 = <&P9_20_gpio_pd_pin>;
+       };
+
+       /* P9_21 (Ball:G34) QSPI1_D1_MISO_MUX*/
+       P9_21_pinmux {
+               status = "okay";
+               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
+               pinctrl-0 = <&P9_21_default_pin>;
+               pinctrl-1 = <&P9_21_gpio_pin>;
+               pinctrl-2 = <&P9_21_gpio_pu_pin>;
+               pinctrl-3 = <&P9_21_gpio_pd_pin>;
+       };
+
+       /* P9_22 (Ball:H34) QSPI1_SCLK_MUX*/
+       P9_22_pinmux {
+               status = "okay";
+               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
+               pinctrl-0 = <&P9_22_default_pin>;
+               pinctrl-1 = <&P9_22_gpio_pin>;
+               pinctrl-2 = <&P9_22_gpio_pu_pin>;
+               pinctrl-3 = <&P9_22_gpio_pd_pin>;
+       };
+
+       /* P9_23 (Ball:K1) QSPI0_D3_HOLD_MUX*/
+       P9_23_pinmux {
+               status = "okay";
+               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
+               pinctrl-0 = <&P9_23_default_pin>;
+               pinctrl-1 = <&P9_23_gpio_pin>;
+               pinctrl-2 = <&P9_23_gpio_pu_pin>;
+               pinctrl-3 = <&P9_23_gpio_pd_pin>;
+       };
+
+       /* P9_24 (Ball:G33) QSPI1_D2_WP_MUX*/
+       P9_24_pinmux {
+               status = "okay";
+               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
+               pinctrl-0 = <&P9_24_default_pin>;
+               pinctrl-1 = <&P9_24_gpio_pin>;
+               pinctrl-2 = <&P9_24_gpio_pu_pin>;
+               pinctrl-3 = <&P9_24_gpio_pd_pin>;
+       };
+
+       /* P9_25 (Ball:F5) GPIO2_18_MUX*/
+       P9_25_pinmux {
+               status = "okay";
+               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
+               pinctrl-0 = <&P9_25_default_pin>;
+               pinctrl-1 = <&P9_25_gpio_pin>;
+               pinctrl-2 = <&P9_25_gpio_pu_pin>;
+               pinctrl-3 = <&P9_25_gpio_pd_pin>;
+       };
+
+       /* P9_26 (Ball:F37) QSPI1_D3_HOLD_MUX*/
+       P9_26_pinmux {
+               status = "okay";
+               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
+               pinctrl-0 = <&P9_26_default_pin>;
+               pinctrl-1 = <&P9_26_gpio_pin>;
+               pinctrl-2 = <&P9_26_gpio_pu_pin>;
+               pinctrl-3 = <&P9_26_gpio_pd_pin>;
+       };
+
+       /* P9_27 (Ball:E4) GPIO2_19_MUX*/
+       P9_27_pinmux {
+               status = "okay";
+               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
+               pinctrl-0 = <&P9_27_default_pin>;
+               pinctrl-1 = <&P9_27_gpio_pin>;
+               pinctrl-2 = <&P9_27_gpio_pu_pin>;
+               pinctrl-3 = <&P9_27_gpio_pd_pin>;
+       };
+
+       /* P9_28 (Ball:E3) SPI_CSN_MUX*/
+       P9_28_pinmux {
+               status = "okay";
+               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
+               pinctrl-0 = <&P9_28_default_pin>;
+               pinctrl-1 = <&P9_28_gpio_pin>;
+               pinctrl-2 = <&P9_28_gpio_pu_pin>;
+               pinctrl-3 = <&P9_28_gpio_pd_pin>;
+       };
+
+       /* P9_29 (Ball:F1) SPI_MISO_MUX*/
+       P9_29_pinmux {
+               status = "okay";
+               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
+               pinctrl-0 = <&P9_29_default_pin>;
+               pinctrl-1 = <&P9_29_gpio_pin>;
+               pinctrl-2 = <&P9_29_gpio_pu_pin>;
+               pinctrl-3 = <&P9_29_gpio_pd_pin>;
+       };
+
+       /* P9_30 (Ball:F2) SPI_MOSI_MUX*/
+       P9_30_pinmux {
+               status = "okay";
+               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
+               pinctrl-0 = <&P9_30_default_pin>;
+               pinctrl-1 = <&P9_30_gpio_pin>;
+               pinctrl-2 = <&P9_30_gpio_pu_pin>;
+               pinctrl-3 = <&P9_30_gpio_pd_pin>;
+       };
+
+       /* P9_31 (Ball:D3) SPI_SCLK_MUX*/
+       P9_31_pinmux {
+               status = "okay";
+               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
+               pinctrl-0 = <&P9_31_default_pin>;
+               pinctrl-1 = <&P9_31_gpio_pin>;
+               pinctrl-2 = <&P9_31_gpio_pu_pin>;
+               pinctrl-3 = <&P9_31_gpio_pd_pin>;
+       };
+
+       /* P9_32 - GND */
+       /* P9_33 - ADC_VIN_CH4 */
+       /* P9_34 - GND */
+       /* P9_35 - ADC_VIN_CH6 */
+       /* P9_36 - ADC_VIN_CH5 */
+       /* P9_37 - ADC_VIN_CH2 */
+       /* P9_38 - ADC_VIN_CH3 */
+       /* P9_39 - ADC_VIN_CH0 */
+       /* P9_39 - ADC_VIN_CH1 */
+       /* P9_41 (Ball:D2) GPIO2_13_MUX*/
+       P9_41_pinmux {
+               status = "okay";
+               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
+               pinctrl-0 = <&P9_41_default_pin>;
+               pinctrl-1 = <&P9_41_gpio_pin>;
+               pinctrl-2 = <&P9_41_gpio_pu_pin>;
+               pinctrl-3 = <&P9_41_gpio_pd_pin>;
+       };
+
+       /* P9_42 (Ball:H3) QSPI0_SCLK_MUX*/
+       P9_42_pinmux {
+               status = "okay";
+               pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd";
+               pinctrl-0 = <&P9_42_default_pin>;
+               pinctrl-1 = <&P9_42_gpio_pin>;
+               pinctrl-2 = <&P9_42_gpio_pu_pin>;
+               pinctrl-3 = <&P9_42_gpio_pd_pin>;
+       };
+
+       /* P9_43 - GND */
+       /* P9_44 - GND */
+       /* P9_45 - GND */
+       /* P9_46 - GND */
+};
\ No newline at end of file
diff --git a/arch/riscv/boot/dts/thead/th1520-beagle.dts b/arch/riscv/boot/dts/thead/th1520-beagle.dts
new file mode 100644 (file)
index 0000000..dc4bebd
--- /dev/null
@@ -0,0 +1,728 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright (C) 2021 Alibaba Group Holding Limited.
+ */
+
+/dts-v1/;
+
+#include "th1520-beagle.dtsi"
+
+/ {
+       bcmdhd_wlan {
+               compatible = "android,bcmdhd_wlan";
+
+               gpio_wl_reg_on =   <&gpio2_porta 31 1>;
+               gpio_wl_host_wake = <&gpio2_porta 25 1>;
+       };
+};
+
+&pwm {
+       status = "disabled";
+};
+
+&qspi0 {
+       status = "disabled";
+};
+
+&qspi1 {
+       status = "disabled";
+};
+
+&vvcam_sensor4 { // beagle board J5 CSI0 connector
+       sensor_name = "IMX219";
+       sensor_pdn = <&gpio2_porta 23 0>; //powerdown pin / shutdown pin 
+       sensor_pdn_delay_us = <2000>; //powerdown pin / shutdown pin actived till I2C ready
+       i2c_addr = /bits/ 8 <0x10>;
+       i2c_bus = /bits/ 8 <1>;
+       i2c_reg_width = /bits/ 8 <2>;
+       i2c_data_width = /bits/ 8 <1>;
+       status = "okay";
+};
+
+&vvcam_sensor5 { // beagle board J4 CSI1 connector
+       sensor_name = "IMX219";
+       sensor_pdn = <&gpio2_porta 24 0>; //powerdown pin / shutdown pin 
+       sensor_pdn_delay_us = <2000>; //powerdown pin / shutdown pin actived till I2C ready
+       i2c_addr = /bits/ 8 <0x10>;
+       i2c_bus = /bits/ 8 <3>;
+       i2c_reg_width = /bits/ 8 <2>;
+       i2c_data_width = /bits/ 8 <1>;
+       status = "okay";
+};
+
+/*
+sensor imx219 mounted on beagle board J4 CSI1 (=light CSI2X2_A+CSI2X2_B   /   CSI2X2_A only)
+video0: sensor-vipre-isp0
+video1: sensor-vipre-isp0-dw
+video7: sensor-vipre-isp0-dsp1-ry-dw
+video10: tuningtool
+
+sensor imx219 mounted on beagle board J5 CSI0 (=light CSI2)
+video2: sensor-vipre-isp1   
+video3: sensor-vipre-isp1-dw   
+video4: sensor-vipre-isp1-dsp0-ry
+video5: sensor-vipre-isp1-dsp0-ry-dw
+video12: tuningtool
+*/
+
+&video0{
+    vi_mem_pool_region = <0xFFFFFFFF>; // vi_mem: framebuffer, region[2]
+    channel0 {
+               sensor0 {
+                       subdev_name = "vivcam";
+                       idx = <5>; // imx219
+                       csi_idx = <2>; //<2>=CSI2X2_A
+                       mode_idx = <0>;
+                       path_type = "SENSOR_1080P_RAW10_LINER";
+               };
+               sensor1 {
+                       subdev_name = "vivcam";
+                       idx = <0xff>; // invalid
+                       csi_idx = <0xff>;
+                       path_type = "SENSOR_VGA_RAW10_LINER";
+               };
+        dma {
+                       subdev_name = "vipre";
+                       idx = <0>;
+                       path_type = "VIPRE_CSI2_ISP0";
+               };
+               isp {
+                       subdev_name = "isp";
+                       idx = <0>;
+                       path_type = "ISP_MI_PATH_MP";
+                       output {
+                               max_width = <1920>;
+                               max_height = <1088>;
+                               bit_per_pixel = <16>;
+                               frame_count = <3>;
+                       };
+               };
+       };
+       channel1 {
+               sensor0 {
+                       subdev_name = "vivcam";
+                       idx = <5>; // imx219
+                       csi_idx = <2>; //<2>=CSI2X2_A
+                       mode_idx = <0>;
+                       path_type = "SENSOR_1080P_RAW10_LINER";
+               };
+               sensor1 {
+                       subdev_name = "vivcam";
+                       idx = <0xff>; // invalid
+                       csi_idx = <0xff>;
+                       path_type = "SENSOR_VGA_RAW10_LINER";
+               };
+        dma {
+                       subdev_name = "vipre";
+                       idx = <0>;
+                       path_type = "VIPRE_CSI2_ISP0";
+               };
+               isp {
+                       subdev_name = "isp";
+                       idx = <0>;
+                       path_type = "ISP_MI_PATH_SP";
+                       output {
+                               max_width = <1920>;
+                               max_height = <1088>;
+                               bit_per_pixel = <16>;
+                               frame_count = <3>;
+                       };
+               };
+       };
+       channel2 {
+               sensor0 {
+                       subdev_name = "vivcam";
+                       idx = <5>; // imx219
+                       csi_idx = <2>; //<2>=CSI2X2_A
+                       mode_idx = <0>;
+                       path_type = "SENSOR_1080P_RAW10_LINER";
+               };
+               sensor1 {
+                       subdev_name = "vivcam";
+                       idx = <0xff>; // invalid
+                       csi_idx = <0xff>;
+                       path_type = "SENSOR_VGA_RAW10_LINER";
+               };
+        dma {
+                       subdev_name = "vipre";
+                       idx = <0>;
+                       path_type = "VIPRE_CSI2_ISP0";
+               };
+               isp {
+                       subdev_name = "isp";
+                       idx = <0>;
+                       path_type = "ISP_MI_PATH_SP2_BP";
+                       output {
+                               max_width = <1920>;
+                               max_height = <1088>;
+                               bit_per_pixel = <16>;
+                               frame_count = <3>;
+                       };
+               };
+       };
+};
+
+&video2 {
+    vi_mem_pool_region = <0>;  // vi_mem: framebuffer, region[0]
+       status = "okay";
+       channel0 {
+               channel_id = <0>;
+               status = "okay";
+               sensor0 {
+                       subdev_name = "vivcam";
+                       idx = <4>; // imx219
+                       csi_idx = <0>; //<0>=CSI2
+                       mode_idx = <0>;
+                       path_type = "SENSOR_1080P_RAW10_LINER";
+               };
+               sensor1 {
+                       subdev_name = "vivcam";
+                       idx = <0xff>; // invalid
+                       csi_idx = <0xff>;
+                       path_type = "SENSOR_VGA_RAW10_LINER";
+               };
+               dma {
+                       subdev_name = "vipre";
+                       idx = <0>;
+                       path_type = "VIPRE_CSI0_ISP1";
+               };
+               isp {
+                       subdev_name = "isp";
+                       idx = <1>;
+                       path_type = "ISP_MI_PATH_MP";
+                       output {
+                               max_width = <1920>;
+                               max_height = <1088>;
+                               bit_per_pixel = <16>;
+                               frame_count = <3>;
+                       };
+               };
+       };
+       channel1 {
+               channel_id = <1>;
+               status = "okay";
+               sensor0 {
+                       subdev_name = "vivcam";
+                       idx = <4>; // imx219
+                       csi_idx = <0>; //<0>=CSI2
+                       mode_idx = <0>;
+                       path_type = "SENSOR_1080P_RAW10_LINER";
+               };
+               sensor1 {
+                       subdev_name = "vivcam";
+                       idx = <0xff>; // invalid
+                       csi_idx = <0xff>;
+                       path_type = "SENSOR_VGA_RAW10_LINER";
+               };
+               dma {
+                       subdev_name = "vipre";
+                       idx = <0>;
+                       path_type = "VIPRE_CSI0_ISP1";
+               };
+               isp {
+                       subdev_name = "isp";
+                       idx = <1>;
+                       path_type = "ISP_MI_PATH_SP";
+                       output {
+                               max_width = <1920>;
+                               max_height = <1088>;
+                               bit_per_pixel = <16>;
+                               frame_count = <3>;
+                       };
+               };
+       };
+       channel2 {
+               channel_id = <2>;
+               status = "okay";
+               sensor0 {
+                       subdev_name = "vivcam";
+                       idx = <4>; // imx219
+                       csi_idx = <0>; //<0>=CSI2
+                       mode_idx = <0>;
+                       path_type = "SENSOR_1080P_RAW10_LINER";
+               };
+               sensor1 {
+                       subdev_name = "vivcam";
+                       idx = <0xff>; // invalid
+                       csi_idx = <0xff>;
+                       path_type = "SENSOR_VGA_RAW10_LINER";
+               };
+               dma {
+                       subdev_name = "vipre";
+                       idx = <0>;
+                       path_type = "VIPRE_CSI0_ISP1";
+               };
+               isp {
+                       subdev_name = "isp";
+                       idx = <1>;
+                       path_type = "ISP_MI_PATH_SP2_BP";
+                       output {
+                               max_width = <1920>;
+                               max_height = <1088>;
+                               bit_per_pixel = <16>;
+                               frame_count = <3>;
+                       };
+               };
+       };
+};
+
+&video3{
+    vi_mem_pool_region = <0>;  // vi_mem: framebuffer, region[0]
+       channel0 {
+               sensor0 {
+                       subdev_name = "vivcam";
+                       idx = <4>; // imx219
+                       csi_idx = <0>; //<0>=CSI2
+                       mode_idx = <0>;
+                       path_type = "SENSOR_1080P_RAW10_LINER";
+               };
+               sensor1 {
+                       subdev_name = "vivcam";
+                       idx = <0xff>; // invalid
+                       csi_idx = <0xff>;
+                       path_type = "SENSOR_VGA_RAW10_LINER";
+               };
+               dma {
+                       subdev_name = "vipre";
+                       idx = <0>;
+                       path_type = "VIPRE_CSI0_ISP1";
+               };
+               isp {
+                       subdev_name = "isp";
+                       idx = <1>;
+                       path_type = "ISP_MI_PATH_MP";
+                       output {
+                               max_width = <1920>;
+                               max_height = <1088>;
+                               bit_per_pixel = <12>;
+                               frame_count = <3>;
+                       };
+               };
+               dw {
+                       subdev_name = "dw";
+                       idx = <0>;
+                       path_type = "DW_DWE_VSE0";
+                       dw_dst_depth = <2>;
+               };
+       };
+       channel1 {
+               sensor0 {
+                       subdev_name = "vivcam";
+                       idx = <4>; // imx219
+                       csi_idx = <0>; //<0>=CSI2
+                       mode_idx = <0>;
+                       path_type = "SENSOR_1080P_RAW10_LINER";
+               };
+               sensor1 {
+                       subdev_name = "vivcam";
+                       idx = <0xff>; // invalid
+                       csi_idx = <0xff>;
+                       path_type = "SENSOR_VGA_RAW10_LINER";
+               };
+               dma {
+                       subdev_name = "vipre";
+                       idx = <0>;
+                       path_type = "VIPRE_CSI0_ISP1";
+               };
+               isp {
+                       subdev_name = "isp";
+                       idx = <1>;
+                       path_type = "ISP_MI_PATH_MP";
+                       output {
+                               max_width = <1920>;
+                               max_height = <1088>;
+                               bit_per_pixel = <12>;
+                               frame_count = <3>;
+                       };
+               };
+               dw {
+                       subdev_name = "dw";
+                       idx = <0>;
+                       path_type = "DW_DWE_VSE1";
+                       dw_dst_depth = <2>;
+               };
+       };
+       channel2 {
+               sensor0 {
+                       subdev_name = "vivcam";
+                       idx = <4>; // imx219
+                       csi_idx = <0>; //<0>=CSI2
+                       mode_idx = <0>;
+                       path_type = "SENSOR_1080P_RAW10_LINER";
+               };
+               sensor1 {
+                       subdev_name = "vivcam";
+                       idx = <0xff>; // invalid
+                       csi_idx = <0xff>;
+                       path_type = "SENSOR_VGA_RAW10_LINER";
+               };
+               dma {
+                       subdev_name = "vipre";
+                       idx = <0>;
+                       path_type = "VIPRE_CSI0_ISP1";
+               };
+               isp {
+                       subdev_name = "isp";
+                       idx = <1>;
+                       path_type = "ISP_MI_PATH_MP";
+                       output {
+                               max_width = <1920>;
+                               max_height = <1088>;
+                               bit_per_pixel = <12>;
+                               frame_count = <3>;
+                       };
+               };
+               dw {
+                       subdev_name = "dw";
+                       idx = <0>;
+                       path_type = "DW_DWE_VSE2";
+                       dw_dst_depth = <2>;
+               };
+       };
+};
+
+&video4{
+    vi_mem_pool_region = <0>;  // vi_mem: framebuffer, region[0]
+       channel0 {
+               sensor0 {
+                       subdev_name = "vivcam";
+                       idx = <4>; // imx219
+                       csi_idx = <0>; //<0>=CSI2
+                       mode_idx = <0>;
+                       path_type = "SENSOR_1080P_RAW10_LINER";
+               };
+               sensor1 {
+                       subdev_name = "vivcam";
+                       idx = <0xff>; // invalid
+                       csi_idx = <0xff>;
+                       path_type = "SENSOR_VGA_RAW10_LINER";
+               };
+               dma {
+                       subdev_name = "vipre";
+                       idx = <0>;
+                       path_type = "VIPRE_CSI0_ISP1";
+               };
+               isp {
+                       subdev_name = "isp";
+                       idx = <1>;
+                       path_type = "ISP_MI_PATH_PP";
+                       output {
+                               max_width = <1920>;
+                               max_height = <1088>;
+                               bit_per_pixel = <12>;
+                               frame_count = <3>;
+                       };
+               };
+               dsp {
+                       subdev_name = "dsp";
+                       idx = <0>;
+                       path_type = "DSP_PATH_ISP_RY";
+                       output {
+                               max_width = <1920>;
+                               max_height = <1088>;
+                               bit_per_pixel = <12>;
+                               frame_count = <3>;
+                       };
+               };
+               ry {
+                       subdev_name = "ry";
+                       idx = <0>;
+                       path_type = "ISP_RY_MI_PATH_MP";
+                       output {
+                               max_width = <1920>;
+                               max_height = <1088>;
+                               bit_per_pixel = <12>;
+                               frame_count = <3>;
+                       };
+               };
+       };
+       channel1 {
+               sensor0 {
+                       subdev_name = "vivcam";
+                       idx = <4>; // imx219
+                       csi_idx = <0>; //<0>=CSI2
+                       mode_idx = <0>;
+                       path_type = "SENSOR_1080P_RAW10_LINER";
+               };
+               sensor1 {
+                       subdev_name = "vivcam";
+                       idx = <0xff>; // invalid
+                       csi_idx = <0xff>;
+                       path_type = "SENSOR_VGA_RAW10_LINER";
+               };
+               dma {
+                       subdev_name = "vipre";
+                       idx = <0>;
+                       path_type = "VIPRE_CSI0_ISP1";
+               };
+               isp {
+                       subdev_name = "isp";
+                       idx = <1>;
+                       path_type = "ISP_MI_PATH_PP";
+                       output {
+                               max_width = <1920>;
+                               max_height = <1088>;
+                               bit_per_pixel = <12>;
+                               frame_count = <3>;
+                       };
+               };
+               dsp {
+                       subdev_name = "dsp";
+                       idx = <0>;
+                       path_type = "DSP_PATH_ISP_RY";
+                       output {
+                               max_width = <1920>;
+                               max_height = <1088>;
+                               bit_per_pixel = <12>;
+                               frame_count = <3>;
+                       };
+               };
+               ry {
+                       subdev_name = "ry";
+                       idx = <0>;
+                       path_type = "ISP_RY_MI_PATH_SP";
+                       output {
+                               max_width = <1920>;
+                               max_height = <1088>;
+                               bit_per_pixel = <12>;
+                               frame_count = <3>;
+                       };
+               };
+       };
+       channel2 {
+               sensor0 {
+                       subdev_name = "vivcam";
+                       idx = <4>; // imx219
+                       csi_idx = <0>; //<0>=CSI2
+                       mode_idx = <0>;
+                       path_type = "SENSOR_1080P_RAW10_LINER";
+               };
+               sensor1 {
+                       subdev_name = "vivcam";
+                       idx = <0xff>; // invalid
+                       csi_idx = <0xff>;
+                       path_type = "SENSOR_VGA_RAW10_LINER";
+               };
+               dma {
+                       subdev_name = "vipre";
+                       idx = <0>;
+                       path_type = "VIPRE_CSI0_ISP1";
+               };
+               isp {
+                       subdev_name = "isp";
+                       idx = <1>;
+                       path_type = "ISP_MI_PATH_PP";
+                       output {
+                               max_width = <1920>;
+                               max_height = <1088>;
+                               bit_per_pixel = <12>;
+                               frame_count = <3>;
+                       };
+               };
+               dsp {
+                       subdev_name = "dsp";
+                       idx = <0>;
+                       path_type = "DSP_PATH_ISP_RY";
+                       output {
+                               max_width = <1920>;
+                               max_height = <1088>;
+                               bit_per_pixel = <12>;
+                               frame_count = <3>;
+                       };
+               };
+               ry {
+                       subdev_name = "ry";
+                       idx = <0>;
+                       path_type = "ISP_RY_MI_PATH_SP2_BP";
+                       output {
+                               max_width = <1920>;
+                               max_height = <1088>;
+                               bit_per_pixel = <12>;
+                               frame_count = <3>;
+                       };
+               };
+       };
+};
+
+&video5{
+       vi_mem_pool_region = <0>;       // vi_mem: framebuffer, region[0]
+       channel0 {
+               sensor0 {
+                       subdev_name = "vivcam";
+                       idx = <4>; // imx219
+                       csi_idx = <0>; //<0>=CSI2
+                       mode_idx = <0>;
+                       path_type = "SENSOR_1080P_RAW10_LINER";
+               };
+               sensor1 {
+                       subdev_name = "vivcam";
+                       idx = <0xff>; // invalid
+                       csi_idx = <0xff>;
+                       path_type = "SENSOR_VGA_RAW10_LINER";
+               };
+               dma {
+                       subdev_name = "vipre";
+                       idx = <0>;
+                       path_type = "VIPRE_CSI0_ISP1";
+               };
+               isp {
+                       subdev_name = "isp";
+                       idx = <1>;
+                       path_type = "ISP_MI_PATH_PP";
+                       output {
+                               max_width = <1920>;
+                               max_height = <1088>;
+                               bit_per_pixel = <12>;
+                               frame_count = <3>;
+                       };
+               };
+               dsp {
+                       subdev_name = "dsp";
+                       idx = <0>;
+                       path_type = "DSP_PATH_ISP_RY";
+                       output {
+                               max_width = <1920>;
+                               max_height = <1088>;
+                               bit_per_pixel = <12>;
+                               frame_count = <3>;
+                       };
+               };
+               ry {
+                       subdev_name = "ry";
+                       idx = <0>;
+                       path_type = "ISP_RY_MI_PATH_MP";
+                       output {
+                               max_width = <1920>;
+                               max_height = <1088>;
+                               bit_per_pixel = <12>;
+                               frame_count = <3>;
+                       };
+               };
+               dw {
+                       subdev_name = "dw";
+                       idx = <0>;
+                       path_type = "DW_DWE_VSE0";
+                       dw_dst_depth = <2>;
+               };
+       };
+       channel1 {
+               sensor0 {
+                       subdev_name = "vivcam";
+                       idx = <4>; // imx219
+                       csi_idx = <0>; //<0>=CSI2
+                       mode_idx = <0>;
+                       path_type = "SENSOR_1080P_RAW10_LINER";
+               };
+               sensor1 {
+                       subdev_name = "vivcam";
+                       idx = <0xff>; // invalid
+                       csi_idx = <0xff>;
+                       path_type = "SENSOR_VGA_RAW10_LINER";
+               };
+               dma {
+                       subdev_name = "vipre";
+                       idx = <0>;
+                       path_type = "VIPRE_CSI0_ISP1";
+               };
+               isp {
+                       subdev_name = "isp";
+                       idx = <1>;
+                       path_type = "ISP_MI_PATH_PP";
+                       output {
+                               max_width = <1920>;
+                               max_height = <1088>;
+                               bit_per_pixel = <12>;
+                               frame_count = <3>;
+                       };
+               };
+               dsp {
+                       subdev_name = "dsp";
+                       idx = <0>;
+                       path_type = "DSP_PATH_ISP_RY";
+                       output {
+                               max_width = <1920>;
+                               max_height = <1088>;
+                               bit_per_pixel = <12>;
+                               frame_count = <3>;
+                       };
+               };
+               ry {
+                       subdev_name = "ry";
+                       idx = <0>;
+                       path_type = "ISP_RY_MI_PATH_MP";
+                       output {
+                               max_width = <1920>;
+                               max_height = <1088>;
+                               bit_per_pixel = <12>;
+                               frame_count = <3>;
+                       };
+               };
+               dw {
+                       subdev_name = "dw";
+                       idx = <0>;
+                       path_type = "DW_DWE_VSE1";
+                       dw_dst_depth = <2>;
+               };
+       };
+       channel2 {
+               sensor0 {
+                       subdev_name = "vivcam";
+                       idx = <4>; // imx219
+                       csi_idx = <0>; //<0>=CSI2
+                       mode_idx = <0>;
+                       path_type = "SENSOR_1080P_RAW10_LINER";
+               };
+               sensor1 {
+                       subdev_name = "vivcam";
+                       idx = <0xff>; // invalid
+                       csi_idx = <0xff>;
+                       path_type = "SENSOR_VGA_RAW10_LINER";
+               };
+               dma {
+                       subdev_name = "vipre";
+                       idx = <0>;
+                       path_type = "VIPRE_CSI0_ISP1";
+               };
+               isp {
+                       subdev_name = "isp";
+                       idx = <1>;
+                       path_type = "ISP_MI_PATH_PP";
+                       output {
+                               max_width = <1920>;
+                               max_height = <1088>;
+                               bit_per_pixel = <12>;
+                               frame_count = <3>;
+                       };
+               };
+               dsp {
+                       subdev_name = "dsp";
+                       idx = <0>;
+                       path_type = "DSP_PATH_ISP_RY";
+                       output {
+                               max_width = <1920>;
+                               max_height = <1088>;
+                               bit_per_pixel = <12>;
+                               frame_count = <3>;
+                       };
+               };
+               ry {
+                       subdev_name = "ry";
+                       idx = <0>;
+                       path_type = "ISP_RY_MI_PATH_MP";
+                       output {
+                               max_width = <1920>;
+                               max_height = <1088>;
+                               bit_per_pixel = <12>;
+                               frame_count = <3>;
+                       };
+               };
+               dw {
+                       subdev_name = "dw";
+                       idx = <0>;
+                       path_type = "DW_DWE_VSE2";
+                       dw_dst_depth = <2>;
+               };
+       };
+};
+
+#include "th1520-beagle-bone-buses.dtsi"
diff --git a/arch/riscv/boot/dts/thead/th1520-beagle.dtsi b/arch/riscv/boot/dts/thead/th1520-beagle.dtsi
new file mode 100644 (file)
index 0000000..11b5f28
--- /dev/null
@@ -0,0 +1,2142 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright (C) 2021 Alibaba Group Holding Limited.
+ * Copyright (C) 2022 BeagleBoard.org - https://beagleboard.org/
+ * Copyright (C) 2022 Deepak Khatri <lorforlinux@beagleboard.org>
+ */
+
+/dts-v1/;
+
+#include "th1520.dtsi"
+#include <dt-bindings/input/linux-event-codes.h>
+#include <dt-bindings/gpio/gpio.h>
+#include "th1520-vi-devices.dtsi"
+/ {
+       model = "BeagleBoard.org BeagleV-Ahead";
+       compatible = "beagle,light", "thead,light-val", "thead,light";
+
+       chosen {
+               bootargs = "console=ttyS0,115200 crashkernel=256M-:128M earlycon clk_ignore_unused sram=0xffe0000000,0x180000";
+               stdout-path = "serial0:115200n8";
+       };
+
+       leds {
+               compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&led_pins_default>;
+
+               led-0 {
+                       label = "beaglebone:green:usr0";
+                       gpios = <&ao_gpio4_porta 8 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "heartbeat";
+                       //function = LED_FUNCTION_HEARTBEAT;
+               };
+
+               led-1 {
+                       label = "beaglebone:green:usr1";
+                       gpios = <&ao_gpio4_porta 9 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "mmc0";
+                       //function = LED_FUNCTION_DISK_ACTIVITY;
+               };
+
+               led-2 {
+                       label = "beaglebone:green:usr2";
+                       gpios = <&ao_gpio4_porta 10 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "cpu";
+                       //function = LED_FUNCTION_CPU;
+               };
+
+               led-3 {
+                       label = "beaglebone:green:usr3";
+                       gpios = <&ao_gpio4_porta 11 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "mmc1";
+                       //function = LED_FUNCTION_DISK_ACTIVITY;
+               };
+
+               led-4 {
+                       label = "beaglebone:green:usr4";
+                       gpios = <&ao_gpio4_porta 12 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "netdev";
+                       //function = LED_FUNCTION_WLAN;
+               };
+       };
+
+       display-subsystem {
+               status = "okay";
+       };
+
+       lcd0_backlight: pwm-backlight@0 {
+               compatible = "pwm-backlight";
+               pwms = <&pwm 0 5000000>;
+               brightness-levels = <0 4 8 16 32 64 128 255>;
+               default-brightness-level = <7>;
+       };
+
+       light_iopmp: iopmp {
+               compatible = "thead,light-iopmp";
+
+               /* config#1: multiple valid regions */
+               iopmp_emmc: IOPMP_EMMC {
+                       regions = <0x000000 0x100000>,
+                                 <0x100000 0x200000>;
+                       attr = <0xFFFFFFFF>;
+                       dummy_slave= <0x800000>;
+               };
+
+               /* config#2: iopmp bypass */
+               iopmp_sdio0: IOPMP_SDIO0 {
+                       bypass_en;
+               };
+
+               /* config#3: iopmp default region set */
+               iopmp_sdio1: IOPMP_SDIO1 {
+                       attr = <0xFFFFFFFF>;
+                       is_default_region;
+               };
+
+               iopmp_usb0: IOPMP_USB0 {
+                       attr = <0xFFFFFFFF>;
+                       is_default_region;
+               };
+
+               iopmp_ao: IOPMP_AO {
+                       is_default_region;
+               };
+
+               iopmp_aud: IOPMP_AUD {
+                       is_default_region;
+               };
+
+               iopmp_chip_dbg: IOPMP_CHIP_DBG {
+                       is_default_region;
+               };
+
+               iopmp_eip120i: IOPMP_EIP120I {
+                       is_default_region;
+               };
+
+               iopmp_eip120ii: IOPMP_EIP120II {
+                       is_default_region;
+               };
+
+               iopmp_eip120iii: IOPMP_EIP120III {
+                       is_default_region;
+               };
+
+               iopmp_isp0: IOPMP_ISP0 {
+                       is_default_region;
+               };
+
+               iopmp_isp1: IOPMP_ISP1 {
+                       is_default_region;
+               };
+
+               iopmp_dw200: IOPMP_DW200 {
+                       is_default_region;
+               };
+
+               iopmp_vipre: IOPMP_VIPRE {
+                       is_default_region;
+               };
+
+               iopmp_venc: IOPMP_VENC {
+                       is_default_region;
+               };
+
+               iopmp_vdec: IOPMP_VDEC {
+                       is_default_region;
+               };
+
+               iopmp_g2d: IOPMP_G2D {
+                       is_default_region;
+               };
+
+               iopmp_fce: IOPMP_FCE {
+                       is_default_region;
+               };
+
+               iopmp_npu: IOPMP_NPU {
+                       is_default_region;
+               };
+
+               iopmp0_dpu: IOPMP0_DPU {
+                       bypass_en;
+               };
+
+               iopmp1_dpu: IOPMP1_DPU {
+                       bypass_en;
+               };
+
+               iopmp_gpu: IOPMP_GPU {
+                       is_default_region;
+               };
+
+               iopmp_gmac1: IOPMP_GMAC1 {
+                       is_default_region;
+               };
+
+               iopmp_gmac2: IOPMP_GMAC2 {
+                       is_default_region;
+               };
+
+               iopmp_dmac: IOPMP_DMAC {
+                       is_default_region;
+               };
+
+               iopmp_tee_dmac: IOPMP_TEE_DMAC {
+                       is_default_region;
+               };
+
+               iopmp_dsp0: IOPMP_DSP0 {
+                       is_default_region;
+               };
+
+               iopmp_dsp1: IOPMP_DSP1 {
+                       is_default_region;
+               };
+       };
+
+       mbox_910t_client1: mbox_910t_client1 {
+               compatible = "thead,light-mbox-client";
+               mbox-names = "902";
+               mboxes = <&mbox_910t 1 0>;
+               status = "disabled";
+       };
+
+
+       mbox_910t_client2: mbox_910t_client2 {
+               compatible = "thead,light-mbox-client";
+               mbox-names = "906";
+               mboxes = <&mbox_910t 2 0>;
+               status = "disabled";
+       };
+
+       lightsound: lightsound@1 {
+               compatible = "simple-audio-card";
+               simple-audio-card,name = "Light-Sound-Card";
+
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               status = "disabled";
+       };
+
+       dummy_codec: dummy_codec {
+               #sound-dai-cells = <1>;
+               compatible = "linux,bt-sco";
+               status = "okay";
+       };
+
+       reg_vref_1v8: regulator-adc-verf {
+                       compatible = "regulator-fixed";
+                       regulator-name = "vref-1v8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               status = "okay";
+       };
+
+       aon: aon {
+               compatible = "thead,light-aon";
+               mbox-names = "aon";
+               mboxes = <&mbox_910t 1 0>;
+               status = "okay";
+
+               pd: light-aon-pd {
+                       compatible = "thead,light-aon-pd";
+                       #power-domain-cells = <1>;
+               };
+
+               soc_aud_3v3_en_reg: soc_aud_3v3_en {
+                       compatible = "regulator-fixed";
+                       regulator-name = "soc_aud_3v3_en";
+                       regulator-min-microvolt = <3300000>;
+                       regulator-max-microvolt = <3300000>;
+                       gpio = <&ao_gpio_porta 7 1>;
+                       enable-active-high;
+                       regulator-always-on;
+               };
+
+               soc_aud_1v8_en_reg: soc_aud_1v8_en {
+                       compatible = "regulator-fixed";
+                       regulator-name = "soc_aud_1v8_en";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       gpio = <&ao_gpio_porta 8 1>;
+                       enable-active-high;
+                       regulator-always-on;
+               };
+
+               aon_reg_dialog: light-dialog-reg {
+                       compatible = "thead,light-dialog-pmic-ant";
+                       status = "okay";
+
+                       dvdd_cpu_reg: appcpu_dvdd {
+                               regulator-name = "appcpu_dvdd";
+                               regulator-min-microvolt = <300000>;
+                               regulator-max-microvolt = <1570000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       dvddm_cpu_reg: appcpu_dvddm {
+                               regulator-name = "appcpu_dvddm";
+                               regulator-min-microvolt = <300000>;
+                               regulator-max-microvolt = <1570000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       soc_dvdd18_aon_reg: soc_dvdd18_aon {
+                               regulator-name = "soc_dvdd18_aon";
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       soc_avdd33_usb3_reg: soc_avdd33_usb3 {
+                               regulator-name = "soc_avdd33_usb3";
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       soc_dvdd08_aon_reg: soc_dvdd08_aon {
+                               regulator-name = "soc_dvdd08_aon";
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       soc_dvdd08_ddr_reg: soc_dvdd08_ddr {
+                               regulator-name = "soc_dvdd08_ddr";
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       soc_vdd_ddr_1v8_reg: soc_vdd_ddr_1v8 {
+                               regulator-name = "soc_vdd_ddr_1v8";
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       soc_vdd_ddr_1v1_reg: soc_vdd_ddr_1v1 {
+                               regulator-name = "soc_vdd_ddr_1v1";
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       soc_vdd_ddr_0v6_reg: soc_vdd_ddr_0v6 {
+                               regulator-name = "soc_vdd_ddr_0v6";
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       soc_dvdd18_ap_reg: soc_dvdd18_ap {
+                               regulator-name = "soc_dvdd18_ap";
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       soc_avdd08_mipi_hdmi_reg: soc_avdd08_mipi_hdmi {
+                               regulator-name = "soc_avdd08_mipi_hdmi";
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       soc_avdd18_mipi_hdmi_reg: soc_avdd18_mipi_hdmi {
+                               regulator-name = "soc_avdd18_mipi_hdmi";
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       soc_vdd33_emmc_reg: soc_vdd33_emmc {
+                               regulator-name = "soc_vdd33_emmc";
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       soc_vdd18_emmc_reg: soc_vdd18_emmc {
+                               regulator-name = "soc_vdd18_emmc";
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       soc_dovdd18_scan_reg: soc_dovdd18_scan {
+                               regulator-name = "soc_dovdd18_scan";
+                               regulator-min-microvolt = <900000>;
+                               regulator-max-microvolt = <3600000>;
+                       };
+
+                       soc_dvdd12_scan_reg: soc_dvdd12_scan {
+                               regulator-name = "soc_dvdd12_scan";
+                               regulator-min-microvolt = <900000>;
+                               regulator-max-microvolt = <3600000>;
+                       };
+
+                       soc_avdd28_scan_en_reg: soc_avdd28_scan_en {
+                               regulator-name = "soc_avdd28_scan_en";
+                               regulator-min-microvolt = <900000>;
+                               regulator-max-microvolt = <3600000>;
+                       };
+
+               };
+
+               c910_cpufreq {
+                       compatible = "thead,light-mpw-cpufreq";
+                       status = "okay";
+               };
+
+               test: light-aon-test {
+                       compatible = "thead,light-aon-test";
+               };
+       };
+
+};
+
+&resmem {
+       #address-cells = <2>;
+       #size-cells = <2>;
+       ranges;
+
+       tee_mem: memory@1c000000 {
+               reg = <0x0 0x1c000000 0 0x2000000>;
+               no-map;
+       };
+
+       dsp0_mem: memory@20000000 {             /**0x2000_0000~0x2040_0000 4M**/
+               reg = <0x0 0x20000000 0x0 0x00280000   /* DSP FW code&data section 2.5M*/ 
+               0x0 0x20280000 0x0 0x00001000   /* DSP communication area 4K*/ 
+               0x0 0x20281000 0x0 0x00007000  /* Panic/log page 28K */
+               0x0 0x20288000 0x0 0x00178000>;  /* DSP shared memory 1.5M-32K*/
+               no-map;
+       };
+    dsp1_mem: memory@20400000 {             /**0x2040_0000~0x2080_0000 4M**/
+        reg = <0x0 0x20400000 0x0 0x00280000  /* DSP FW code&data section */ 
+               0x0 0x20680000 0x0 0x00001000 /* DSP communication area */
+               0x0 0x20681000 0x0 0x00007000    /* Panic/log page*/ 
+               0x0 0x20688000 0x0 0x00178000>;  /* DSP shared memory */
+        no-map;
+    };
+       vi_mem: framebuffer@10000000 {
+               reg = <0x0 0x10000000 0x0 0x02C00000    /* vi_mem_pool_region[0]  44 MB (default) */
+                      0x0 0x12C00000 0x0 0x01D00000    /* vi_mem_pool_region[1]  29 MB */
+                      0x0 0x14900000 0x0 0x01E00000>;  /* vi_mem_pool_region[2]  30 MB */
+               no-map;
+       };
+       facelib_mem: memory@17000000 {
+               reg = <0x0 0x17000000 0 0x02000000>;
+               no-map;
+       };
+
+};
+
+&adc {
+       vref-supply = <&reg_vref_1v8>;
+    #io-channel-cells = <1>;
+       status = "okay";
+};
+
+&audio_i2c0 {
+        clock-frequency = <100000>;
+        status = "okay";
+
+        es8156_audio_codec: es8156@8 {
+                #sound-dai-cells = <0>;
+                compatible = "everest,es8156";
+                reg = <0x08>;
+                sound-name-prefix = "ES8156";
+                AVDD-supply = <&soc_aud_3v3_en_reg>;
+                DVDD-supply = <&soc_aud_1v8_en_reg>;
+                PVDD-supply = <&soc_aud_1v8_en_reg>;
+        };
+
+        es7210_audio_codec: es7210@40 {
+                #sound-dai-cells = <0>;
+                compatible = "MicArray_0";
+                reg = <0x40>;
+                sound-name-prefix = "ES7210";
+                MVDD-supply = <&soc_aud_3v3_en_reg>;
+                AVDD-supply = <&soc_aud_3v3_en_reg>;
+                DVDD-supply = <&soc_aud_1v8_en_reg>;
+                PVDD-supply = <&soc_aud_1v8_en_reg>;
+        };
+
+        audio_aw87519_pa: amp@58 {
+                compatible = "awinic,aw87519_pa";
+                reg = <0x58>;
+                reset-gpio = <&ao_gpio4_porta 9 0x1>;
+                sound-name-prefix = "AW87519";
+                status = "okay";
+        };
+};
+
+&i2c1 {
+        clock-frequency = <100000>;
+        status = "okay";
+};
+
+&spi0 {
+       num-cs = <1>;
+       cs-gpios = <&gpio2_porta 15 0>; // GPIO_ACTIVE_HIGH: 0
+       rx-sample-delay-ns = <10>;
+       status = "disabled";
+
+       spi_norflash@0 {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "winbond,w25q64jwm", "jedec,spi-nor";
+               reg = <0>;
+               spi-max-frequency = <50000000>;
+               w25q,fast-read;
+       };
+
+       channel@1 {
+               compatible = "rohm,dh2228fv";
+               //symlink = "bone/spi/0.1";
+               #address-cells = <0x1>;
+               #size-cells = <0x0>;
+               reg = <0x1>;
+               spi-max-frequency = <50000000>;
+       };
+};
+
+&uart0 {
+       clock-frequency = <100000000>;
+};
+
+&qspi0 {
+       num-cs = <1>;
+       cs-gpios = <&gpio2_porta 3 0>;
+       rx-sample-dly = <4>;
+       status = "disabled";
+
+       spi-flash@0 {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "spi-nand";
+               spi-max-frequency = <100000000>;
+               spi-tx-bus-width = <4>;
+               spi-rx-bus-width = <4>;
+               reg = <0>;
+
+               partition@0 {
+                       label = "ubi1";
+                       reg = <0x00000000 0x08000000>;
+               };
+       };
+};
+
+&qspi1 {
+       compatible = "snps,dw-apb-ssi";
+       num-cs = <1>;
+       cs-gpios = <&gpio0_porta 1 0>;
+       status = "disabled";
+
+       channel@0 {
+               compatible = "rohm,dh2228fv";
+               //symlink = "bone/spi/1.1";
+               #address-cells = <0x1>;
+               #size-cells = <0x1>;
+               reg = <0x0>;
+               spi-max-frequency = <50000000>;
+       };
+
+};
+
+&gmac0 {
+       phy-mode = "rgmii-id";
+       rx-clk-delay = <0x00>; /* for RGMII */
+       tx-clk-delay = <0x00>; /* for RGMII */
+       phy-handle = <&phy_88E1111_0>;
+       status = "okay";
+
+       mdio0 {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               compatible = "snps,dwmac-mdio";
+
+               phy_88E1111_0: ethernet-phy@0 {
+                       reg = <0x1>;
+               };
+
+               phy_88E1111_1: ethernet-phy@1 {
+                       reg = <0x2>;
+               };
+       };
+};
+
+&gmac1 {
+       phy-mode = "rgmii-id";
+       rx-clk-delay = <0x00>; /* for RGMII */
+       tx-clk-delay = <0x00>; /* for RGMII */
+       phy-handle = <&phy_88E1111_1>;
+       status = "disabled";
+};
+
+&emmc {
+       max-frequency = <198000000>;
+       non-removable;
+       mmc-hs400-1_8v;
+       io_fixed_1v8;
+       is_emmc;
+       no-sdio;
+       no-sd;
+       pull_up;
+       bus-width = <8>;
+       status = "okay";
+};
+
+&sdhci0 {
+       max-frequency = <198000000>;
+       bus-width = <4>;
+       pull_up;
+       wprtn_ignore;
+       status = "okay";
+};
+
+&sdhci1 {
+       max-frequency = <100000000>;
+       bus-width = <4>;
+       pull_up;
+       no-sd;
+       no-mmc;
+       non-removable;
+       io_fixed_1v8;
+       rxclk-sample-delay = <80>;
+       post-power-on-delay-ms = <50>;
+       wprtn_ignore;
+       cap-sd-highspeed;
+       keep-power-in-suspend;
+       wakeup-source;
+       status = "okay";
+};
+
+&padctrl0_apsys { /* right-pinctrl */
+       light_padctrl0: light-evb-padctrl0 {
+                       /*
+                        * Pin Configuration Node:
+                        * Format: <pin_id mux_node config>
+                        */
+                       pinctrl_uart0: uart0grp {
+                               thead,pins = <
+                                       FM_UART0_TXD    0x0     0x72
+                                       FM_UART0_RXD    0x0     0x72
+                               >;
+                       };
+
+                       pinctrl_spi0: spi0grp {
+                               thead,pins = <
+                                       FM_SPI_CSN      0x3     0x20a
+                                       FM_SPI_SCLK     0x0     0x20a
+                                       FM_SPI_MISO     0x0     0x23a
+                                       FM_SPI_MOSI     0x0     0x23a
+                               >;
+                       };
+
+                       pinctrl_qspi0: qspi0grp {
+                               thead,pins = <
+                                       FM_QSPI0_SCLK    0x0    0x20f
+                                       FM_QSPI0_CSN0    0x3    0x20f
+                                       FM_QSPI0_CSN1    0x0    0x20f
+                                       FM_QSPI0_D0_MOSI 0x0    0x23f
+                                       FM_QSPI0_D1_MISO 0x0    0x23f
+                                       FM_QSPI0_D2_WP   0x0    0x23f
+                                       FM_QSPI0_D3_HOLD 0x0    0x23f
+                               >;
+                       };
+
+                       pinctrl_light_i2s0: i2s0grp {
+                               thead,pins = <
+                                       FM_QSPI0_SCLK    0x2    0x208
+                                       FM_QSPI0_CSN0    0x2    0x238
+                                       FM_QSPI0_CSN1    0x2    0x208
+                                       FM_QSPI0_D0_MOSI 0x2    0x238
+                                       FM_QSPI0_D1_MISO 0x2    0x238
+                                       FM_QSPI0_D2_WP   0x2    0x238
+                                       FM_QSPI0_D3_HOLD 0x2    0x238
+                               >;
+                       };
+
+                       pinctrl_pwm: pwmgrp {
+                               thead,pins = <
+                                       FM_GPIO3_2      0x1     0x208   /* pwm0 */
+                               >;
+               };
+
+               pinctrl_bt: btgrp {
+                       thead,pins = <
+                               FM_SDIO1_WPRTN  0x3     0x72
+                               FM_SDIO1_DETN   0x3     0x72
+                               FM_GPIO2_30     0x0     0x72
+                       >;
+               };
+       };
+};
+
+&padctrl1_apsys { /* left-pinctrl */
+       light_padctrl1: light-evb-padctrl1 {
+                       /*
+                        * Pin Configuration Node:
+                        * Format: <pin_id mux_node config>
+                        */
+                       pinctrl_uart3: uart3grp {
+                               thead,pins = <
+                                       FM_UART3_TXD    0x0     0x72
+                                       FM_UART3_RXD    0x0     0x72
+                               >;
+                       };
+
+                       pinctrl_uart4: uart4grp {
+                               thead,pins = <
+                                       FM_UART4_TXD    0x0     0x72
+                                       FM_UART4_RXD    0x0     0x72
+                                       FM_UART4_CTSN   0x0     0x72
+                                       FM_UART4_RTSN   0x0     0x72
+                               >;
+                       };
+
+                       pinctrl_qspi1: qspi1grp {
+                               thead,pins = <
+                                       FM_QSPI1_SCLK    0x0    0x20a
+                                       FM_QSPI1_CSN0    0x3    0x20a
+                                       FM_QSPI1_D0_MOSI 0x0    0x23a
+                                       FM_QSPI1_D1_MISO 0x0    0x23a
+                               >;
+                       };
+
+
+                       pinctrl_iso7816: iso7816grp {
+                               thead,pins = <
+                                       FM_QSPI1_SCLK           0x1     0x208
+                                       FM_QSPI1_D0_MOSI        0x1     0x238
+                                       FM_QSPI1_D1_MISO        0x1     0x238
+                                       FM_QSPI1_D2_WP          0x1     0x238
+                                       FM_QSPI1_D3_HOLD        0x1     0x238
+                               >;
+               };
+       };
+};
+
+/*
+       PIN      ,        0x0,   0x1,  0x2,     0x3,   0x4,  0x5
+       AUDIO_PA8,  AUDIO_PA8,  NULL, NULL, GPIO4_8,  NULL, NULL
+       AUDIO_PA9,  AUDIO_PA9,  NULL, NULL, GPIO4_9,  NULL, NULL
+       AUDIO_PA10, AUDIO_PA10, NULL, NULL, GPIO4_10, NULL, NULL
+       AUDIO_PA11, AUDIO_PA11, NULL, NULL, GPIO4_11, NULL, NULL
+       AUDIO_PA12, AUDIO_PA12, NULL, NULL, GPIO4_12, NULL, NULL
+*/
+
+#define FM_AUDIO_PA8_AUDIO_PA8 0x00
+#define FM_AUDIO_PA8_GPIO 0x03
+
+&padctrl_aosys {
+       light_padctrl: light-aon-padctrl {
+                       /*
+                        * Pin Configuration Node:
+                        * Format: <pin_id mux_node config>
+                        */
+
+                       pinctrl_audiopa1: audiopa1_grp {
+                               thead,pins = <
+                                       FM_AUDIO_PA1    0x3     0x72
+                               >;
+                       };
+
+                       pinctrl_audiopa2: audiopa2_grp {
+                               thead,pins = <
+                                       FM_AUDIO_PA2    0x0     0x72
+                               >;
+                       };
+
+               led_pins_default: leds0_grp {
+                       thead,pins = <
+                               FM_AUDIO_PA8    0x3     0x72
+                               FM_AUDIO_PA9    0x3     0x72
+                               FM_AUDIO_PA10   0x3     0x72
+                               FM_AUDIO_PA11   0x3     0x72
+                               FM_AUDIO_PA12   0x3     0x72
+                       >;
+               };
+       };
+};
+
+&i2c0 {
+    clock-frequency = <400000>;
+       status = "okay";
+
+       eeprom@50 {
+               compatible = "atmel,24c32";
+               reg = <0x50>;
+       };
+};
+
+&i2c1 {
+    clock-frequency = <400000>;
+       status = "okay";
+};
+
+&i2c2 {
+    clock-frequency = <400000>;
+       status = "okay";
+};
+
+&i2c3 {
+    clock-frequency = <400000>;
+       status = "okay";
+};
+
+&i2c4 {
+    clock-frequency = <400000>;
+       status = "okay";
+};
+
+&isp0 {
+       status = "okay";
+};
+
+&isp1 {
+       status = "okay";
+};
+
+&isp_ry0 {
+       status = "okay";
+};
+
+&dewarp {
+       status = "okay";
+};
+
+&dec400_isp0 {
+       status = "okay";
+};
+
+&dec400_isp1 {
+       status = "okay";
+};
+
+&dec400_isp2 {
+       status = "okay";
+};
+
+&bm_visys {
+       status = "okay";
+};
+
+&bm_csi0 {
+       status = "okay";
+};
+
+&bm_csi1 {
+       status = "okay";
+};
+
+&bm_csi2 {
+       status = "okay";
+};
+
+&vi_pre {
+       //vi_pre_irq_en = <1>;
+       status = "okay";
+};
+
+&xtensa_dsp {
+       status = "okay";
+};
+
+&xtensa_dsp0 {
+       status = "okay";
+    memory-region = <&dsp0_mem>;
+};
+
+&xtensa_dsp1 {
+       status = "okay";
+    memory-region = <&dsp1_mem>;
+};
+
+&video0{
+    vi_mem_pool_region = <2>;  // vi_mem: framebuffer, region[2]
+    channel0 {
+               sensor0 {
+                       subdev_name = "vivcam";
+                       idx = <2>; //<2>=vivcam2 : gc5035
+                       csi_idx = <0>; //<0>=CSI2
+                       mode_idx = <3>;
+                       path_type = "SENSOR_1296x972_RAW10_LINER"; //SENSOR_VGA_RAW10_LINER//
+               };
+               sensor1 {
+                       subdev_name = "vivcam";
+                       idx = <3>; //<3>=vivcam3 : gc02m1b
+                       csi_idx = <0>; //<0>=CSI2
+                       mode_idx = <0>;
+                       path_type = "SENSOR_1600x1200_RAW10_LINER";
+               };
+        dma {
+                       path_type = "VIPRE_CSI0_ISP0";
+               };
+               isp {
+                       subdev_name = "isp";
+                       idx = <0>;
+                       path_type = "ISP_MI_PATH_MP";
+                       output {
+                               max_width = <1920>;
+                               max_height = <1088>;
+                               bit_per_pixel = <12>;
+                               frame_count = <3>;
+                       };
+               };
+       };
+       channel1 {
+               sensor0 {
+                       subdev_name = "vivcam";
+                       idx = <2>; //<2>=vivcam2 : gc5035
+                       csi_idx = <0>; //<0>=CSI2
+                       mode_idx = <3>;
+                       path_type = "SENSOR_1296x972_RAW10_LINER"; //SENSOR_VGA_RAW10_LINER//
+               };
+               sensor1 {
+                       subdev_name = "vivcam";
+                       idx = <3>; //<3>=vivcam3 : gc02m1b
+                       csi_idx = <0>; //<0>=CSI2
+                       mode_idx = <0>;
+                       path_type = "SENSOR_1600x1200_RAW10_LINER";
+               };
+        dma {
+                       path_type = "VIPRE_CSI0_ISP0";
+               };
+               isp {
+                       subdev_name = "isp";
+                       idx = <0>;
+                       path_type = "ISP_MI_PATH_SP";
+                       output {
+                               max_width = <1920>;
+                               max_height = <1088>;
+                               bit_per_pixel = <12>;
+                               frame_count = <3>;
+                       };
+               };
+       };
+       channel2 {
+               sensor0 {
+                       subdev_name = "vivcam";
+                       idx = <2>; //<2>=vivcam2 : gc5035
+                       csi_idx = <0>; //<0>=CSI2
+                       mode_idx = <3>;
+                       path_type = "SENSOR_1296x972_RAW10_LINER"; //SENSOR_VGA_RAW10_LINER//
+               };
+               sensor1 {
+                       subdev_name = "vivcam";
+                       idx = <3>; //<3>=vivcam3 : gc02m1b
+                       csi_idx = <0>; //<0>=CSI2
+                       mode_idx = <0>;
+                       path_type = "SENSOR_1600x1200_RAW10_LINER";
+               };
+        dma {
+                       path_type = "VIPRE_CSI0_ISP0";
+               };
+               isp {
+                       subdev_name = "isp";
+                       idx = <0>;
+                       path_type = "ISP_MI_PATH_SP2_BP";
+                       output {
+                               max_width = <1920>;
+                               max_height = <1088>;
+                               bit_per_pixel = <12>;
+                               frame_count = <3>;
+                       };
+               };
+       };
+};
+
+
+&video1{
+    vi_mem_pool_region = <2>;  // vi_mem: framebuffer, region[2]
+    channel0 {
+               sensor0 {
+                       subdev_name = "vivcam";
+                       idx = <2>; //<2>=vivcam2 : gc5035
+                       csi_idx = <0>; //<0>=CSI2
+                       mode_idx = <3>;
+                       path_type = "SENSOR_1296x972_RAW10_LINER";
+               };
+               sensor1 {
+                       subdev_name = "vivcam";
+                       idx = <3>; //<3>=vivcam3 : gc02m1b
+                       csi_idx = <0>; //<0>=CSI2
+                       mode_idx = <0>;
+                       path_type = "SENSOR_1600x1200_RAW10_LINER";
+               };
+        dma {
+                       path_type = "VIPRE_CSI0_ISP0";
+               };
+
+               isp {
+                       subdev_name = "isp";
+                       idx = <0>;
+                       path_type = "ISP_MI_PATH_MP";
+                       output {
+                               max_width = <1920>;
+                               max_height = <1088>;
+                               bit_per_pixel = <12>;
+                               frame_count = <3>;
+                       };
+               };
+               dw {
+                       subdev_name = "dw";
+                       idx = <0>;
+                       path_type = "DW_DWE_VSE0";
+                       dw_dst_depth = <2>;
+               };
+       };
+       channel1 {
+               sensor0 {
+                       subdev_name = "vivcam";
+                       idx = <2>; //<2>=vivcam2 : gc5035
+                       csi_idx = <0>; //<0>=CSI2
+                       mode_idx = <3>;
+                       path_type = "SENSOR_1296x972_RAW10_LINER";
+               };
+               sensor1 {
+                       subdev_name = "vivcam";
+                       idx = <3>; //<3>=vivcam3 : gc02m1b
+                       csi_idx = <0>; //<0>=CSI2
+                       mode_idx = <0>;
+                       path_type = "SENSOR_1600x1200_RAW10_LINER";
+               };
+        dma {
+                       path_type = "VIPRE_CSI0_ISP0";
+               };
+
+               isp {
+                       subdev_name = "isp";
+                       idx = <0>;
+                       path_type = "ISP_MI_PATH_MP";
+                       output {
+                               max_width = <1920>;
+                               max_height = <1088>;
+                               bit_per_pixel = <12>;
+                               frame_count = <3>;
+                       };
+               };
+               dw {
+                       subdev_name = "dw";
+                       idx = <0>;
+                       path_type = "DW_DWE_VSE1";
+                       dw_dst_depth = <2>;
+               };
+       };
+       channel2 {
+               sensor0 {
+                       subdev_name = "vivcam";
+                       idx = <2>; //<2>=vivcam2 : gc5035
+                       csi_idx = <0>; //<0>=CSI2
+                       mode_idx = <3>;
+                       path_type = "SENSOR_1296x972_RAW10_LINER";
+               };
+               sensor1 {
+                       subdev_name = "vivcam";
+                       idx = <3>; //<3>=vivcam3 : gc02m1b
+                       csi_idx = <0>; //<0>=CSI2
+                       mode_idx = <0>;
+                       path_type = "SENSOR_1600x1200_RAW10_LINER";
+               };
+        dma {
+                       path_type = "VIPRE_CSI0_ISP0";
+               };
+
+               isp {
+                       subdev_name = "isp";
+                       idx = <0>;
+                       path_type = "ISP_MI_PATH_MP";
+                       output {
+                               max_width = <1920>;
+                               max_height = <1088>;
+                               bit_per_pixel = <12>;
+                               frame_count = <3>;
+                       };
+               };
+               dw {
+                       subdev_name = "dw";
+                       idx = <0>;
+                       path_type = "DW_DWE_VSE2";
+                       dw_dst_depth = <2>;
+               };
+       };
+};
+
+&video2{
+    vi_mem_pool_region = <0>;  // vi_mem: framebuffer, region[0]
+    channel0 {
+               sensor0 {
+                       subdev_name = "vivcam";
+                       idx = <0>; //vivcam0 sc2310
+                       csi_idx = <1>; //<1>=CSI2_B
+                       mode_idx = <1>;
+                       path_type = "SENSOR_1920X1088_30FPS_RAW12_LINER";
+               };
+        dma {
+                       path_type = "VIPRE_CSI1_ISP1";
+               };
+               isp {
+                       subdev_name = "isp";
+                       idx = <1>;
+                       path_type = "ISP_MI_PATH_MP";
+                       output {
+                               max_width = <1920>;
+                               max_height = <1088>;
+                               bit_per_pixel = <12>;
+                               frame_count = <3>;
+                       };
+               };
+       };
+       channel1 {
+               sensor0 {
+                       subdev_name = "vivcam";
+                       idx = <0>; //vivcam0 sc2310
+                       csi_idx = <1>; //<1>=CSI2_B
+                       mode_idx = <1>;
+                       path_type = "SENSOR_1920X1088_30FPS_RAW12_LINER";
+               };
+        dma {
+                       path_type = "VIPRE_CSI1_ISP1";
+               };
+               isp {
+                       subdev_name = "isp";
+                       idx = <1>;
+                       path_type = "ISP_MI_PATH_SP";
+                       output {
+                               max_width = <1920>;
+                               max_height = <1088>;
+                               bit_per_pixel = <12>;
+                               frame_count = <3>;
+                       };
+               };
+       };
+       channel2 {
+               sensor0 {
+                       subdev_name = "vivcam";
+                       idx = <0>; //vivcam0 sc2310
+                       csi_idx = <1>; //<1>=CSI2_B
+                       mode_idx = <1>;
+                       path_type = "SENSOR_1920X1088_30FPS_RAW12_LINER";
+               };
+        dma {
+                       path_type = "VIPRE_CSI1_ISP1";
+               };
+               isp {
+                       subdev_name = "isp";
+                       idx = <1>;
+                       path_type = "ISP_MI_PATH_SP2_BP";
+                       output {
+                               max_width = <1920>;
+                               max_height = <1088>;
+                               bit_per_pixel = <12>;
+                               frame_count = <3>;
+                       };
+               };
+       };
+};
+
+&video3{
+    vi_mem_pool_region = <0>;  // vi_mem: framebuffer, region[0]
+    channel0 {
+               sensor0 {
+                       subdev_name = "vivcam";
+                       idx = <0>; //vivcam0 sc2310
+                       csi_idx = <1>; //<1>=CSI2B
+                       mode_idx = <1>;
+                       path_type = "SENSOR_1920X1088_30FPS_RAW12_LINER";
+               };
+        dma {
+                       path_type = "VIPRE_CSI1_ISP1";
+               };
+               isp {
+                       subdev_name = "isp";
+                       idx = <1>;
+                       path_type = "ISP_MI_PATH_MP";
+                       output {
+                               max_width = <1920>;
+                               max_height = <1088>;
+                               bit_per_pixel = <12>;
+                               frame_count = <3>;
+                       };
+               };
+               dw {
+                       subdev_name = "dw";
+                       idx = <0>;
+                       path_type = "DW_DWE_VSE0";
+                       dw_dst_depth = <2>;
+               };
+       };
+       channel1 {
+               sensor0 {
+                       subdev_name = "vivcam";
+                       idx = <0>; //vivcam0 sc2310
+                       csi_idx = <1>; //<1>=CSI2B
+                       mode_idx = <1>;
+                       path_type = "SENSOR_1920X1088_30FPS_RAW12_LINER";
+               };
+        dma {
+                       path_type = "VIPRE_CSI1_ISP1";
+               };
+               isp {
+                       subdev_name = "isp";
+                       idx = <1>;
+                       path_type = "ISP_MI_PATH_MP";
+                       output {
+                               max_width = <1920>;
+                               max_height = <1088>;
+                               bit_per_pixel = <12>;
+                               frame_count = <3>;
+                       };
+               };
+               dw {
+                       subdev_name = "dw";
+                       idx = <0>;
+                       path_type = "DW_DWE_VSE1";
+                       dw_dst_depth = <2>;
+               };
+       };
+       channel2 {
+               sensor0 {
+                       subdev_name = "vivcam";
+                       idx = <0>; //vivcam0 sc2310
+                       csi_idx = <1>; //<1>=CSI2_B
+                       mode_idx = <1>;
+                       path_type = "SENSOR_1920X1088_30FPS_RAW12_LINER";
+               };
+        dma {
+                       path_type = "VIPRE_CSI1_ISP1";
+               };
+               isp {
+                       subdev_name = "isp";
+                       idx = <1>;
+                       path_type = "ISP_MI_PATH_MP";
+                       output {
+                               max_width = <1920>;
+                               max_height = <1088>;
+                               bit_per_pixel = <12>;
+                               frame_count = <3>;
+                       };
+               };
+               dw {
+                       subdev_name = "dw";
+                       idx = <0>;
+                       path_type = "DW_DWE_VSE2";
+                       dw_dst_depth = <2>;
+               };
+       };
+};
+
+&video4{
+    vi_mem_pool_region = <0>;  // vi_mem: framebuffer, region[0]
+    channel0 {
+               sensor0 {
+                       subdev_name = "vivcam";
+                       idx = <0>; //vivcam0 sc2310
+                       csi_idx = <1>; //<1>=CSI2_B
+                       mode_idx = <1>;
+                       path_type = "SENSOR_1920X1088_30FPS_RAW12_LINER";
+               };
+        dma {
+                       path_type = "VIPRE_CSI1_ISP1";
+               };
+               isp {
+                       subdev_name = "isp";
+                       idx = <1>;
+                       path_type = "ISP_MI_PATH_PP";
+                       output {
+                               max_width = <1920>;
+                               max_height = <1088>;
+                               bit_per_pixel = <12>;
+                               frame_count = <3>;
+                       };
+               };
+               dsp {
+                       subdev_name = "dsp";
+                       idx = <0>;
+                       path_type = "DSP_PATH_ISP_RY";
+                       output {
+                               max_width = <1920>;
+                               max_height = <1088>;
+                               bit_per_pixel = <12>;
+                               frame_count = <3>;
+                       };
+               };
+               ry {
+                       subdev_name = "ry";
+                       idx = <0>;
+                       path_type = "ISP_RY_MI_PATH_MP";
+                       output {
+                               max_width = <1920>;
+                               max_height = <1088>;
+                               bit_per_pixel = <12>;
+                               frame_count = <3>;
+                       };
+               };
+       };
+       channel1 {
+               sensor0 {
+                       subdev_name = "vivcam";
+                       idx = <0>; //vivcam0 sc2310
+                       csi_idx = <1>; //<1>=CSI2_B
+                       mode_idx = <1>;
+                       path_type = "SENSOR_1920X1088_30FPS_RAW12_LINER";
+               };
+        dma {
+                       path_type = "VIPRE_CSI1_ISP1";
+               };
+               isp {
+                       subdev_name = "isp";
+                       idx = <1>;
+                       path_type = "ISP_MI_PATH_PP";
+                       output {
+                               max_width = <1920>;
+                               max_height = <1088>;
+                               bit_per_pixel = <12>;
+                               frame_count = <3>;
+                       };
+               };
+               dsp {
+                       subdev_name = "dsp";
+                       idx = <0>;
+                       path_type = "DSP_PATH_ISP_RY";
+                       output {
+                               max_width = <1920>;
+                               max_height = <1088>;
+                               bit_per_pixel = <12>;
+                               frame_count = <3>;
+                       };
+               };
+               ry {
+                       subdev_name = "ry";
+                       idx = <0>;
+                       path_type = "ISP_RY_MI_PATH_SP";
+                       output {
+                               max_width = <1920>;
+                               max_height = <1088>;
+                               bit_per_pixel = <12>;
+                               frame_count = <3>;
+                       };
+               };
+       };
+       channel2 {
+               sensor0 {
+                       subdev_name = "vivcam";
+                       idx = <0>; //vivcam0 sc2310
+                       csi_idx = <1>; //<1>=CSI2_B
+                       mode_idx = <1>;
+                       path_type = "SENSOR_1920X1088_30FPS_RAW12_LINER";
+               };
+        dma {
+                       path_type = "VIPRE_CSI1_ISP1";
+               };
+               isp {
+                       subdev_name = "isp";
+                       idx = <1>;
+                       path_type = "ISP_MI_PATH_PP";
+                       output {
+                               max_width = <1920>;
+                               max_height = <1088>;
+                               bit_per_pixel = <12>;
+                               frame_count = <3>;
+                       };
+               };
+               dsp {
+                       subdev_name = "dsp";
+                       idx = <0>;
+                       path_type = "DSP_PATH_ISP_RY";
+                       output {
+                               max_width = <1920>;
+                               max_height = <1088>;
+                               bit_per_pixel = <12>;
+                               frame_count = <3>;
+                       };
+               };
+               ry {
+                       subdev_name = "ry";
+                       idx = <0>;
+                       path_type = "ISP_RY_MI_PATH_SP2_BP";
+                       output {
+                               max_width = <1920>;
+                               max_height = <1088>;
+                               bit_per_pixel = <12>;
+                               frame_count = <3>;
+                       };
+               };
+       };
+};
+
+&video5{
+    vi_mem_pool_region = <0>;  // vi_mem: framebuffer, region[0]
+    channel0 {
+               sensor0 {
+                       subdev_name = "vivcam";
+                       idx = <0>; //vivcam0 sc2310
+                       csi_idx = <1>; //<1>=CSI2_B
+                       mode_idx = <1>;
+                       path_type = "SENSOR_1920X1088_30FPS_RAW12_LINER";
+               };
+        dma {
+                       path_type = "VIPRE_CSI1_ISP1";
+               };
+               isp {
+                       subdev_name = "isp";
+                       idx = <1>;
+                       path_type = "ISP_MI_PATH_PP";
+                       output {
+                               max_width = <1920>;
+                               max_height = <1088>;
+                               bit_per_pixel = <12>;
+                               frame_count = <3>;
+                       };
+               };
+               dsp {
+                       subdev_name = "dsp";
+                       idx = <0>;
+                       path_type = "DSP_PATH_ISP_RY";
+                       output {
+                               max_width = <1920>;
+                               max_height = <1088>;
+                               bit_per_pixel = <12>;
+                               frame_count = <3>;
+                       };
+               };
+               ry {
+                       subdev_name = "ry";
+                       idx = <0>;
+                       path_type = "ISP_RY_MI_PATH_MP";
+                       output {
+                               max_width = <1920>;
+                               max_height = <1088>;
+                               bit_per_pixel = <12>;
+                               frame_count = <3>;
+                       };
+               };
+               dw {
+                       subdev_name = "dw";
+                       idx = <0>;
+                       path_type = "DW_DWE_VSE0";
+                       dw_dst_depth = <2>;
+               };
+       };
+       channel1 {
+               sensor0 {
+                       subdev_name = "vivcam";
+                       idx = <0>; //vivcam0 sc2310
+                       csi_idx = <1>; //<1>=CSI2_B
+                       mode_idx = <1>;
+                       path_type = "SENSOR_1920X1088_30FPS_RAW12_LINER";
+               };
+        dma {
+                       path_type = "VIPRE_CSI1_ISP1";
+               };
+               isp {
+                       subdev_name = "isp";
+                       idx = <1>;
+                       path_type = "ISP_MI_PATH_PP";
+                       output {
+                               max_width = <1920>;
+                               max_height = <1088>;
+                               bit_per_pixel = <12>;
+                               frame_count = <3>;
+                       };
+               };
+               dsp {
+                       subdev_name = "dsp";
+                       idx = <0>;
+                       path_type = "DSP_PATH_ISP_RY";
+                       output {
+                               max_width = <1920>;
+                               max_height = <1088>;
+                               bit_per_pixel = <12>;
+                               frame_count = <3>;
+                       };
+               };
+               ry {
+                       subdev_name = "ry";
+                       idx = <0>;
+                       path_type = "ISP_RY_MI_PATH_MP";
+                       output {
+                               max_width = <1920>;
+                               max_height = <1088>;
+                               bit_per_pixel = <12>;
+                               frame_count = <3>;
+                       };
+               };
+               dw {
+                       subdev_name = "dw";
+                       idx = <0>;
+                       path_type = "DW_DWE_VSE1";
+                       dw_dst_depth = <2>;
+               };
+       };
+       channel2 {
+               sensor0 {
+                       subdev_name = "vivcam";
+                       idx = <0>; //vivcam0 sc2310
+                       csi_idx = <1>; //<1>=CSI2_B
+                       mode_idx = <1>;
+                       path_type = "SENSOR_1920X1088_30FPS_RAW12_LINER";
+               };
+        dma {
+                       path_type = "VIPRE_CSI1_ISP1";
+               };
+               isp {
+                       subdev_name = "isp";
+                       idx = <1>;
+                       path_type = "ISP_MI_PATH_PP";
+                       output {
+                               max_width = <1920>;
+                               max_height = <1088>;
+                               bit_per_pixel = <12>;
+                               frame_count = <3>;
+                       };
+               };
+               dsp {
+                       subdev_name = "dsp";
+                       idx = <0>;
+                       path_type = "DSP_PATH_ISP_RY";
+                       output {
+                               max_width = <1920>;
+                               max_height = <1088>;
+                               bit_per_pixel = <12>;
+                               frame_count = <3>;
+                       };
+               };
+               ry {
+                       subdev_name = "ry";
+                       idx = <0>;
+                       path_type = "ISP_RY_MI_PATH_MP";
+                       output {
+                               max_width = <1920>;
+                               max_height = <1088>;
+                               bit_per_pixel = <12>;
+                               frame_count = <3>;
+                       };
+               };
+               dw {
+                       subdev_name = "dw";
+                       idx = <0>;
+                       path_type = "DW_DWE_VSE2";
+                       dw_dst_depth = <2>;
+               };
+       };
+};
+
+&video6{
+       vi_mem_pool_region = <1>;       // vi_mem: framebuffer, region[1]
+    channel0 {
+               sensor0 {
+                       subdev_name = "vivcam";
+                       idx = <1>; // vivcam1 sc132gs
+                       csi_idx = <2>; //<2>=CSI2X2_A
+                       flash_led_idx = <0>;
+                       mode_idx = <0>;
+                       path_type = "SENSOR_1080X1280_30FPS_RAW10_LINER";
+               };
+               dsp{
+                       output {
+                               max_width = <1080>;
+                               max_height = <1280>;
+                               bit_per_pixel = <16>;
+                               frame_count = <3>;
+                       };
+               };
+       };
+       channel1 {
+               sensor0 {
+                       subdev_name = "vivcam";
+                       idx = <1>; //vivcam1 sc132gs
+                       csi_idx = <2>; //<2>=CSI2X2_A
+                       flash_led_idx = <0>;
+                       mode_idx = <0>;
+                       path_type = "SENSOR_1080X1280_30FPS_RAW10_LINER";
+               };
+               dsp{
+                       output {
+                               max_width = <1080>;
+                               max_height = <1280>;
+                               bit_per_pixel = <16>;
+                               frame_count = <3>;
+                       };
+               };
+       };
+
+};
+
+&video7{
+       channel0 {
+               sensor0 {
+                       subdev_name = "vivcam";
+                       idx = <2>; //<2>=vivcam2 : gc5035
+                       csi_idx = <0>; //<0>=CSI2
+                       mode_idx = <3>;
+                       path_type = "SENSOR_1296x972_RAW10_LINER"; //SENSOR_VGA_RAW10_LINER//
+               };
+               sensor1 {
+                       subdev_name = "vivcam";
+                       idx = <3>; //<3>=vivcam3 : gc02m1b
+                       csi_idx = <0>; //<0>=CSI2
+                       mode_idx = <0>;
+                       path_type = "SENSOR_1600x1200_RAW10_LINER";
+               };
+        dma {
+                       path_type = "VIPRE_CSI0_ISP0";
+               };
+
+               isp {
+                       subdev_name = "isp";
+                       idx = <0>;
+                       path_type = "ISP_MI_PATH_PP";
+                       output {
+                               max_width = <1920>;
+                               max_height = <1088>;
+                               bit_per_pixel = <12>;
+                               frame_count = <3>;
+                       };
+               };
+               dsp {
+                       subdev_name = "dsp";
+                       idx = <1>;
+                       path_type = "DSP_PATH_ISP_RY";
+                       output {
+                               max_width = <1920>;
+                               max_height = <1088>;
+                               bit_per_pixel = <12>;
+                               frame_count = <3>;
+                       };
+               };
+               ry {
+                       subdev_name = "ry";
+                       idx = <0>;
+                       path_type = "ISP_RY_MI_PATH_MP";
+                       output {
+                               max_width = <1920>;
+                               max_height = <1088>;
+                               bit_per_pixel = <12>;
+                               frame_count = <3>;
+                       };
+               };
+               dw {
+                       subdev_name = "dw";
+                       idx = <0>;
+                       path_type = "DW_DWE_VSE0";
+                       dw_dst_depth = <2>;
+               };
+       };
+       channel1 {
+               sensor0 {
+                       subdev_name = "vivcam";
+                       idx = <2>; //<2>=vivcam2 : gc5035
+                       csi_idx = <0>; //<0>=CSI2
+                       mode_idx = <3>;
+                       path_type = "SENSOR_1296x972_RAW10_LINER"; //SENSOR_VGA_RAW10_LINER//
+               };
+               sensor1 {
+                       subdev_name = "vivcam";
+                       idx = <3>; //<3>=vivcam3 : gc02m1b
+                       csi_idx = <0>; //<0>=CSI2
+                       mode_idx = <0>;
+                       path_type = "SENSOR_1600x1200_RAW10_LINER";
+               };
+        dma {
+                       path_type = "VIPRE_CSI0_ISP0";
+               };
+
+               isp {
+                       subdev_name = "isp";
+                       idx = <0>;
+                       path_type = "ISP_MI_PATH_PP";
+                       output {
+                               max_width = <1920>;
+                               max_height = <1088>;
+                               bit_per_pixel = <12>;
+                               frame_count = <3>;
+                       };
+               };
+               dsp {
+                       subdev_name = "dsp";
+                       idx = <1>;
+                       path_type = "DSP_PATH_ISP_RY";
+                       output {
+                               max_width = <1920>;
+                               max_height = <1088>;
+                               bit_per_pixel = <12>;
+                               frame_count = <3>;
+                       };
+               };
+               ry {
+                       subdev_name = "ry";
+                       idx = <0>;
+                       path_type = "ISP_RY_MI_PATH_MP";
+                       output {
+                               max_width = <1920>;
+                               max_height = <1088>;
+                               bit_per_pixel = <12>;
+                               frame_count = <3>;
+                       };
+               };
+               dw {
+                       subdev_name = "dw";
+                       idx = <0>;
+                       path_type = "DW_DWE_VSE1";
+                       dw_dst_depth = <2>;
+               };
+       };
+       channel2 {
+               sensor0 {
+                       subdev_name = "vivcam";
+                       idx = <2>; //<2>=vivcam2 : gc5035
+                       csi_idx = <0>; //<0>=CSI2
+                       mode_idx = <3>;
+                       path_type = "SENSOR_1296x972_RAW10_LINER"; //SENSOR_VGA_RAW10_LINER//
+               };
+               sensor1 {
+                       subdev_name = "vivcam";
+                       idx = <3>; //<3>=vivcam3 : gc02m1b
+                       csi_idx = <0>; //<0>=CSI2
+                       mode_idx = <0>;
+                       path_type = "SENSOR_1600x1200_RAW10_LINER";
+               };
+        dma {
+                       path_type = "VIPRE_CSI0_ISP0";
+               };
+
+               isp {
+                       subdev_name = "isp";
+                       idx = <0>;
+                       path_type = "ISP_MI_PATH_PP";
+                       output {
+                               max_width = <1920>;
+                               max_height = <1088>;
+                               bit_per_pixel = <12>;
+                               frame_count = <3>;
+                       };
+               };
+               dsp {
+                       subdev_name = "dsp";
+                       idx = <1>;
+                       path_type = "DSP_PATH_ISP_RY";
+                       output {
+                               max_width = <1920>;
+                               max_height = <1088>;
+                               bit_per_pixel = <12>;
+                               frame_count = <3>;
+                       };
+               };
+               ry {
+                       subdev_name = "ry";
+                       idx = <0>;
+                       path_type = "ISP_RY_MI_PATH_MP";
+                       output {
+                               max_width = <1920>;
+                               max_height = <1088>;
+                               bit_per_pixel = <12>;
+                               frame_count = <3>;
+                       };
+               };
+               dw {
+                       subdev_name = "dw";
+                       idx = <0>;
+                       path_type = "DW_DWE_VSE2";
+                       dw_dst_depth = <2>;
+               };
+       };
+};
+
+
+&video8{
+       vi_mem_pool_region = <1>;       // vi_mem: framebuffer, region[1]
+       channel0 {
+               sensor0 {
+                       subdev_name = "vivcam";
+                       idx = <2>; //<2>=vivcam2 : gc5035
+                       csi_idx = <0>; //<0>=CSI2
+                       mode_idx = <3>;
+                       path_type = "SENSOR_1296x972_RAW10_LINER"; //SENSOR_VGA_RAW10_LINER//
+               };
+               sensor1 {
+                       subdev_name = "vivcam";
+                       idx = <3>; //<3>=vivcam3 : gc02m1b
+                       csi_idx = <0>; //<0>=CSI2
+                       mode_idx = <0>;
+                       path_type = "SENSOR_1600x1200_RAW10_LINER";
+               };
+        dma {
+                       path_type = "VIPRE_CSI0_DSP";
+               };
+               dsp {
+                       subdev_name = "dsp";
+                       idx = <0>;
+                       path_type = "DSP_PATH_VIPRE_DDR";
+                       output {
+                               max_width = <1920>;
+                               max_height = <1088>;
+                               bit_per_pixel = <12>;
+                               frame_count = <3>;
+                       };
+               };
+       };
+};
+
+&video9{
+       channel0 {
+               sensor0 {
+                       subdev_name = "vivcam";
+                       idx = <1>; //vivcam1 sc132gs
+                       csi_idx = <2>; //<2>=CSI2X2_A
+                       mode_idx = <0>;
+                       path_type = "SENSOR_1080X1280_30FPS_RAW10_LINER";
+               };
+               dsp{
+                       output {
+                               max_width = <1080>;
+                               max_height = <1280>;
+                               bit_per_pixel = <16>;
+                               frame_count = <3>;
+                       };
+               };
+       };
+};
+
+
+&video10{ // TUNINGTOOL
+       channel0 {
+               sensor0 {
+                       subdev_name = "vivcam";
+                       idx = <2>; //<2>=vivcam2 : gc5035
+                       csi_idx = <0>; //<0>=CSI2
+                       mode_idx = <1>;
+                       path_type = "SENSOR_1080P_RAW10_LINER"; //SENSOR_VGA_RAW10_LINER//
+                       skip_init = <1>;
+               };
+               sensor1 {
+                       subdev_name = "vivcam";
+                       idx = <3>; //<3>=vivcam3 : gc02m1b
+                       csi_idx = <0>; //<0>=CSI2
+                       mode_idx = <0>;
+                       path_type = "SENSOR_1600x1200_RAW10_LINER";
+                       skip_init = <1>;
+               };
+        dma {
+                       path_type = "VIPRE_CSI0_ISP0";
+               };
+       };
+};
+
+&video11{
+       channel0 { 
+               channel_id = <0>;
+               status = "okay";
+               sensor0 {
+                       subdev_name = "vivcam";
+                       idx = <1>; //sc132gs
+                       csi_idx = <2>; //<2>=CSI2X2_A
+                       flash_led_idx = <0>;
+                       mode_idx = <0>;
+                       path_type = "SENSOR_1080X1280_30FPS_RAW10_LINER";
+               };
+               isp {
+                       subdev_name = "isp";
+                       idx = <0>;
+                       path_type = "ISP_MI_PATH_MP";
+                       output {
+                               max_width = <1920>;
+                               max_height = <1088>;
+                               bit_per_pixel = <12>;
+                               frame_count = <3>;
+                       };
+               };
+       };
+};
+
+&video12{ // TUNINGTOOL
+       channel0 { // CSI2
+               sensor0 {
+                       subdev_name = "vivcam";
+                       idx = <0>; //sc2310
+                       csi_idx = <1>; //<1>=CSI2_B
+                       mode_idx = <1>;
+                       path_type = "SENSOR_1920X1088_30FPS_RAW12_LINER";
+                       skip_init = <1>;
+               };
+               sensor1 {
+                       subdev_name = "vivcam";
+                       idx = <6>; //gc02m1b
+                       csi_idx = <1>; //<1>=CSI2_B
+                       mode_idx = <0>;
+                       path_type = "SENSOR_1600x1200_RAW10_LINER";
+                       skip_init = <1>;
+               };
+       };
+    dma {
+                       path_type = "VIPRE_CSI1_ISP0";
+    };
+};
+
+&video13{
+    status = "okay";
+    //vi_mem_pool_region = <0>;
+    channel0 {
+        channel_id = <0>;
+        status = "okay";
+        sensor0 {
+            subdev_name = "vivcam";
+            idx = <0>; //sc2310
+                       csi_idx = <1>; //<1>=CSI2_B
+            mode_idx = <1>;
+            path_type = "SENSOR_1920X1088_26FPS_RAW12_LINER";
+        };
+        dma {
+            subdev_name = "vipre";
+            idx = <0>;
+            path_type = "VIPRE_CSI0_ISP0";
+        };
+        isp {
+            subdev_name = "isp";
+            idx = <0>;
+            path_type = "ISP_MI_MCM_WR0";
+            output {
+                max_width = <1920>;
+                max_height = <1088>;
+                bit_per_pixel = <16>;
+                frame_count = <3>;
+            };
+        };
+    };
+};
+
+&video14{
+    vi_mem_pool_region = <2>;   // vi_mem: framebuffer, region[0]
+    status = "okay";
+    channel0 {
+        channel_id = <0>;
+        status = "okay";
+        sensor0 {
+            subdev_name = "vivcam";
+            idx = <1>; //sc132gs
+            csi_idx = <2>; //<2>=CSI2X2_A
+            flash_led_idx = <0>;
+            mode_idx = <0>;
+            path_type = "SENSOR_1080X1280_30FPS_RAW10_LINER";
+        };
+        dma {
+            subdev_name = "vipre";
+            idx = <0>;
+            path_type = "VIPRE_CSI2_ISP1";
+        };
+        isp {
+            subdev_name = "isp";
+            idx = <1>;
+            path_type = "ISP_MI_MCM_WR0";
+            output {
+                max_width = <1080>;
+                max_height = <1280>;
+                bit_per_pixel = <16>;
+                frame_count = <3>;
+            };
+        };
+    };
+};
+
+&video15{
+    status = "okay";
+    //vi_mem_pool_region = <0>;
+    channel0 {
+        channel_id = <0>;
+        status = "okay";
+        sensor0 {
+            subdev_name = "vivcam";
+            idx = <0>; //<0>=vivcam0 :2310 
+                       csi_idx = <1>; //<1>=CSI2_B
+            flash_led_idx = <0>;
+            mode_idx = <1>;
+            path_type = "SENSOR_1920X1088_26FPS_RAW12_LINER";
+        };
+        dma {
+            subdev_name = "vipre";
+            idx = <0>;
+            path_type = "VIPRE_CSI0_DDR";
+        };
+    };
+};
+
+&trng {
+       status = "disabled";
+};
+
+&eip_28 {
+       status = "okay";
+};
+
+&vdec {
+       status = "okay";
+};
+
+&venc {
+       status = "okay";
+};
+
+&isp_venc_shake {
+       status = "okay";
+};
+
+&vidmem {
+       status = "okay";
+    memory-region = <&vi_mem>;
+};
+
+&gpu {
+       status = "okay";
+};
+
+&npu {
+       vha_clk_rate = <1000000000>;
+       status = "okay";
+};
+
+&fce {
+       memory-region = <&facelib_mem>;
+       status = "okay";
+};
+
+&dpu_enc1 {
+        ports {
+                /delete-node/ port@0;
+        };
+};
+
+&dpu {
+        status = "okay";
+};
+
+&disp1_out {
+       remote-endpoint = <&hdmi_tx_in>;
+};
+
+&hdmi_tx {
+       status = "okay";
+
+       port@0 {
+               /* input */
+               hdmi_tx_in: endpoint {
+                       remote-endpoint = <&disp1_out>;
+               };
+       };
+};
+
+&lightsound {
+        status = "okay";
+        simple-audio-card,dai-link@0 {          /* I2S - AUDIO SYS CODEC 8156*/
+                reg = <0>;
+                format = "i2s";
+                cpu {
+                        sound-dai = <&i2s1 0>;
+                };
+                codec {
+                        sound-dai = <&es8156_audio_codec>;
+                };
+        };
+        simple-audio-card,dai-link@1 {          /* I2S - AUDIO SYS CODEC 7210*/
+                reg = <1>;
+                format = "i2s";
+                cpu {
+                        sound-dai = <&i2s_8ch_sd2 2>;
+                };
+                codec {
+                        sound-dai = <&es7210_audio_codec>;
+                };
+        };
+        simple-audio-card,dai-link@2 {          /* I2S - HDMI */
+                reg = <2>;
+                format = "i2s";
+                cpu {
+                        sound-dai = <&light_i2s 1>;
+                };
+                codec {
+                        sound-dai = <&dummy_codec 2>;
+                };
+        };
+};
+
+&light_i2s {
+        status = "disabled";
+};
+
+&i2s0 {
+        status = "okay";
+};
+
+&i2s1 {
+        status = "okay";
+};
+
+&i2s_8ch_sd2 {
+        status = "okay";
+};
+
+&cpus {
+       c910_0: cpu@0 {
+               operating-points = <
+                       /* kHz    uV */
+                       300000  650000
+                       800000  700000
+                       1500000 800000
+                       1848000 1000000
+               >;
+               light,dvddm-operating-points = <
+                       /* kHz   uV */
+                       300000  800000
+                       800000  800000
+                       1500000 800000
+                       1848000 1000000
+               >;
+       };
+       c910_1: cpu@1 {
+               operating-points = <
+                       /* kHz    uV */
+                       300000  650000
+                       800000  700000
+                       1500000 800000
+                       1848000 1000000
+               >;
+               light,dvddm-operating-points = <
+                       /* kHz   uV */
+                       300000  800000
+                       800000  800000
+                       1500000 800000
+                       1848000 1000000
+               >;
+       };
+       c910_2: cpu@2 {
+
+               operating-points = <
+                       /* kHz    uV */
+                       300000  650000
+                       800000  700000
+                       1500000 800000
+                       1848000 1000000
+               >;
+               light,dvddm-operating-points = <
+                       /* kHz   uV */
+                       300000  800000
+                       800000  800000
+                       1500000 800000
+                       1848000 1000000
+               >;
+       };
+       c910_3: cpu@3 {
+
+               operating-points = <
+                       /* kHz    uV */
+                       300000  650000
+                       800000  700000
+                       1500000 800000
+                       1848000 1000000
+               >;
+               light,dvddm-operating-points = <
+                       /* kHz   uV */
+                       300000  800000
+                       800000  800000
+                       1500000 800000
+                       1848000 1000000
+               >;
+       };
+};
diff --git a/arch/riscv/boot/dts/thead/th1520-lpi4a-16gb.dts b/arch/riscv/boot/dts/thead/th1520-lpi4a-16gb.dts
new file mode 100644 (file)
index 0000000..fbe190f
--- /dev/null
@@ -0,0 +1,20 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright (C) 2022 Alibaba Group Holding Limited.
+ */
+
+#include "th1520-lpi4a-product.dts"
+
+/ {
+       model = "T-HEAD Light Lichee Pi 4A configuration for 16GB DDR board";
+       compatible = "thead,light-val", "thead,light-lpi4a", "thead,light";
+
+       memory@0 {
+               device_type = "memory";
+               reg = <0x0 0x200000 0x3 0xffe00000>;
+       };
+};
+
+&cmamem {
+       alloc-ranges = <0x3 0xe4000000 0 0x14000000>; // [0x3E400_0000 ~ 0x3F800_0000]
+};
diff --git a/arch/riscv/boot/dts/thead/th1520-lpi4a-cluster-16gb.dts b/arch/riscv/boot/dts/thead/th1520-lpi4a-cluster-16gb.dts
new file mode 100644 (file)
index 0000000..3fed205
--- /dev/null
@@ -0,0 +1,30 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright (C) 2023 Sipeed.
+ */
+
+#include "th1520-lpi4a-16gb.dts"
+
+/ {
+       model = "T-HEAD Light Lichee Pi 4A configuration for 16GB DDR board on Cluster";
+};
+
+&audio_i2c0 {
+       status = "disabled";
+};
+
+&audio_i2c1 {
+       status = "disabled";
+};
+
+&lightsound {
+       status = "disabled";
+};
+
+&reg_usb_hub_vdd1v2 {
+       /delete-property/ gpio;
+};
+
+&reg_usb_hub_vcc5v {
+       /delete-property/ gpio;
+};
diff --git a/arch/riscv/boot/dts/thead/th1520-lpi4a-cluster.dts b/arch/riscv/boot/dts/thead/th1520-lpi4a-cluster.dts
new file mode 100644 (file)
index 0000000..997635b
--- /dev/null
@@ -0,0 +1,30 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright (C) 2023 Sipeed.
+ */
+
+#include "th1520-lpi4a-product.dts"
+
+/ {
+       model = "T-HEAD Light Lichee Pi 4A configuration for 8GB DDR board on Cluster";
+};
+
+&audio_i2c0 {
+       status = "disabled";
+};
+
+&audio_i2c1 {
+       status = "disabled";
+};
+
+&lightsound {
+       status = "disabled";
+};
+
+&reg_usb_hub_vdd1v2 {
+       /delete-property/ gpio;
+};
+
+&reg_usb_hub_vcc5v {
+       /delete-property/ gpio;
+};
diff --git a/arch/riscv/boot/dts/thead/th1520-lpi4a-console-16g.dts b/arch/riscv/boot/dts/thead/th1520-lpi4a-console-16g.dts
new file mode 100644 (file)
index 0000000..a0f28b5
--- /dev/null
@@ -0,0 +1,17 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright (C) 2022 Alibaba Group Holding Limited.
+ */
+
+#include "th1520-lpi4a-console.dts"
+
+/ {
+       memory@0 {
+               device_type = "memory";
+               reg = <0x0 0x200000 0x3 0xffe00000>;
+       };
+};
+
+&cmamem {
+       alloc-ranges = <0x3 0xe4000000 0 0x14000000>; // [0x3E400_0000 ~ 0x3F800_0000]
+};
diff --git a/arch/riscv/boot/dts/thead/th1520-lpi4a-console.dts b/arch/riscv/boot/dts/thead/th1520-lpi4a-console.dts
new file mode 100644 (file)
index 0000000..b76c3a8
--- /dev/null
@@ -0,0 +1,52 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright (C) 2023 Sipeed.
+ */
+
+#include <dt-bindings/interrupt-controller/irq.h>
+#include "th1520-lpi4a-laptop.dts"
+
+/ {
+        model = "T-HEAD Light Lichee Pi 4A configuration for LicheeConsole4A";
+};
+
+&dsi0_panel0 {
+       compatible = "mingjun,mj070bi30ia2";
+};
+
+&i2c2 {
+       /* thank ice */
+       trackpoint: trackpad@15 {
+               compatible = "hid-over-i2c";
+               reg = <0x15>;
+               hid-descr-addr = <0x0020>;
+               interrupt-parent = <&gpio1_porta>;
+               interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
+       };
+};
+
+&cw2015 {
+       cellwise,battery-profile = /bits/ 8 <
+               0x17 0x67 0x72 0x68 0x66 0x63 0x62 0x5A
+               0x64 0x61 0x4D 0x57 0x5A 0x51 0x43 0x38
+               0x31 0x2A 0x24 0x22 0x29 0x31 0x3E 0x4C
+               0x29 0x4D 0x0B 0x85 0x1C 0x38 0x47 0x57
+               0x5D 0x5E 0x5F 0x60 0x3F 0x1A 0x6F 0x41
+               0x0A 0x43 0x12 0x38 0x7B 0x95 0x9A 0x18
+               0x4B 0x6F 0x9E 0xD5 0x80 0x57 0x87 0xCB
+               0x2F 0x00 0x64 0xA5 0xB5 0x13 0x54 0xB9
+       >;
+};
+
+&lcd0_backlight {
+        default-brightness-level = <50>;
+};
+
+&sdhci0 {
+        max-frequency = <35000000>;
+        status = "okay";
+};
+
+&fan {
+        cooling-levels = <255 255 255 255>;
+};
diff --git a/arch/riscv/boot/dts/thead/th1520-lpi4a-dsi0-hdmi.dts b/arch/riscv/boot/dts/thead/th1520-lpi4a-dsi0-hdmi.dts
new file mode 100644 (file)
index 0000000..b7dbee8
--- /dev/null
@@ -0,0 +1,131 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright (C) 2022 Alibaba Group Holding Limited.
+ */
+
+#include "th1520-lpi4a.dtsi"
+
+/ {
+       model = "T-HEAD Light Lichee Pi 4A configuration for 8GB DDR board";
+       compatible = "thead,light-val", "thead,light-lpi4a", "thead,light";
+
+       memory@0 {
+               device_type = "memory";
+               reg = <0x0 0x00000000 0x2 0x00000000>;
+       };
+};
+
+&cmamem {
+       alloc-ranges = <0x1 0xe4000000 0 0x14000000>; // [0x1E400_0000 ~ 0x1F800_0000]
+};
+
+&pwm {
+       status = "okay";
+};
+
+&qspi0 {
+       status = "okay";
+};
+
+&qspi1 {
+       status = "okay";
+};
+
+&i2c3 {
+       touch@14 {
+               #gpio-cells = <2>;
+               compatible = "goodix,gt9271";
+               reg = <0x14>;
+               interrupt-parent = <&ao_gpio_porta>;
+               interrupts = <3 0>; 
+               irq-gpios = <&ao_gpio_porta 3 0>; 
+               reset-gpios = <&pcal6408ahk_d 0 0>; 
+               AVDD28-supply = <&reg_tp_pwr_en>;
+               touchscreen-size-x = <800>;
+               touchscreen-size-y = <1280>;
+               tp-size = <9271>;
+               status = "okay";
+       };
+};
+
+&dpu_enc0 {
+       status = "okay";
+
+       ports {
+               /* output */
+               port@1 {
+                       reg = <1>;
+
+                       enc0_out: endpoint {
+                               remote-endpoint = <&dsi0_in>;
+                       };
+               };
+       };
+};
+
+&dpu_enc1 {
+        ports {
+                /delete-node/ port@0;
+        };
+};
+
+&dpu {
+        status = "okay";
+};
+
+&dsi0 {
+        status = "okay";
+};
+
+&dhost_0 {
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port@0 {
+                       reg = <0>;
+
+                       dsi0_in: endpoint {
+                               remote-endpoint = <&enc0_out>;
+                       };
+               };
+
+               port@1 {
+                       reg = <1>;
+
+                       dsi0_out: endpoint {
+                               remote-endpoint = <&panel0_in>;
+                       };
+               };
+       };
+
+       dsi0_panel0: panel0@0 {
+               compatible = "chongzhou,cz101b4001", "jadard,jd9365da-h3";
+               reg = <0>;
+               backlight = <&lcd0_backlight>;
+               reset-gpio = <&pcal6408ahk_d 7 0>; /* active low */
+               hsvcc-supply = <&soc_vdd18_lcd0_en_reg>;  
+               vspn3v3-supply = <&soc_vdd33_lcd0_en_reg>;
+
+               port {
+                       panel0_in: endpoint {
+                               remote-endpoint = <&dsi0_out>;
+                       };
+               };
+       };
+};
+
+&disp1_out {
+       remote-endpoint = <&hdmi_tx_in>;
+};
+
+&hdmi_tx {
+       status = "okay";
+
+       port@0 {
+               /* input */
+               hdmi_tx_in: endpoint {
+                       remote-endpoint = <&disp1_out>;
+               };
+       };
+};
diff --git a/arch/riscv/boot/dts/thead/th1520-lpi4a-laptop.dts b/arch/riscv/boot/dts/thead/th1520-lpi4a-laptop.dts
new file mode 100644 (file)
index 0000000..94b992c
--- /dev/null
@@ -0,0 +1,292 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright (C) 2023 Sipeed.
+ */
+
+#include "th1520-lpi4a-dsi0-hdmi.dts"
+
+/ {
+       model = "T-HEAD Light Lichee Pi 4A configuration for 8GB DDR board use on laptop";
+
+       reg_sys_vcc_5v: regulator-sys-vcc-5v-en {
+               status = "okay";
+               compatible = "regulator-fixed";
+               regulator-name = "regulator-sys-vcc-5v-en";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               gpio = <&pcal6408ahk_c 0 1>;
+               enable-active-high;
+               regulator-boot-on;
+               regulator-always-on;
+
+               regulator-state-mem {
+                       regulator-off-in-suspend;
+               };
+               regulator-state-standby {
+                       regulator-off-in-suspend;
+               };
+       };
+
+       reg_sys_vcc_3v3: regulator-sys-vcc-3v3-en {
+               status = "okay";
+               compatible = "regulator-fixed";
+               regulator-name = "regulator-sys-vcc-3v3-en";
+               vin-supply = <&reg_sys_vcc_5v>;
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               enable-active-high;
+               regulator-boot-on;
+               regulator-always-on;
+       };
+
+       reg_sys_vcc_1v8: regulator-sys-vcc-1v8-en {
+               status = "okay";
+               compatible = "regulator-fixed";
+               regulator-name = "regulator-sys-vcc-1v8-en";
+               vin-supply = <&reg_sys_vcc_5v>;
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               enable-active-high;
+               regulator-boot-on;
+               regulator-always-on;
+       };
+
+       reg_usb_vcc_5v: regulator-usb-vcc-5v-en {
+               status = "okay";
+               compatible = "regulator-fixed";
+               regulator-name = "regulator-usb-vcc-5v-en";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&reg_sys_vcc_5v>;
+               gpio = <&pcal6408ahk_d 3 1>;
+               enable-active-high;
+               regulator-always-on;
+        };
+
+       reg_sata_vcc_5v: regulator-sata-vcc-5v-en {
+               status = "okay";
+               compatible = "regulator-fixed";
+               regulator-name = "regulator-sata-vcc-5v-en";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&reg_sys_vcc_5v>;
+               gpio = <&pcal6408ahk_c 1 1>;
+               enable-active-high;
+               regulator-always-on;
+       };
+
+       audio_amp: regulator-audio-amp-en {
+                status = "okay";
+                compatible = "regulator-fixed";
+                regulator-name = "regulator-audio-amp-en";
+                vin-supply = <&reg_sys_vcc_5v>;
+               gpio = <&pcal6408ahk_c 3 1>;
+               enable-active-high;
+               regulator-always-on;
+       };
+
+       charger: dc-charger {
+               compatible = "gpio-charger";
+               charger-type = "mains";
+               gpios = <&ao_gpio_porta 2 GPIO_ACTIVE_HIGH>;
+       };
+};
+
+&es8156_audio_codec {
+       AVDD-supply = <&reg_sys_vcc_3v3>;
+       DVDD-supply = <&reg_sys_vcc_1v8>;
+       PVDD-supply = <&reg_sys_vcc_1v8>;
+};
+
+&es7210_audio_codec {
+       MVDD-supply = <&reg_sys_vcc_3v3>;
+       AVDD-supply = <&reg_sys_vcc_3v3>;
+       DVDD-supply = <&reg_sys_vcc_1v8>;
+       PVDD-supply = <&reg_sys_vcc_1v8>;
+};
+
+&wcn_wifi {
+       WIFI,poweren_gpio = <&pcal6408ahk_c 4 0>;
+};
+
+
+&wcn_bt {
+       BT,power_gpio = <&pcal6408ahk_c 5 0>;
+};
+
+&usb_1 {
+        /delete-property/ vbus-supply;
+        /delete-property/ hub1v2-supply;
+        hub5v-supply = <&reg_usb_vcc_5v>;
+};
+
+&reg_usb_hub_vcc5v {
+       /delete-property/ gpio;
+};
+
+&soc_cam2_dvdd12_ir_reg {
+       /delete-property/ gpio;
+};
+
+&vvcam_sensor0 {
+       /delete-property/ sensor_rst;
+};
+
+&vvcam_sensor1 {
+       /delete-property/ sensor_rst;
+};
+
+&vvcam_sensor2 {
+       /delete-property/ sensor_rst;
+};
+
+&vvcam_sensor3 {
+       /delete-property/ sensor_rst;
+};
+
+&reg_tp_pwr_en {
+       /delete-property/ gpio;
+};
+
+&i2c0 {
+       /delete-node/ pcal6408ahk_b;
+
+       cw2015: cw2015@62 {
+               compatible = "cellwise,cw2015";
+               reg = <0x62>;
+               cellwise,monitor-interval-ms = <5000>;
+               power-supplies = <&charger>;
+       };
+};
+
+&i2c3 {
+       touch@14 {
+               #gpio-cells = <2>;
+               compatible = "goodix,gt9271";
+               reg = <0x14>;
+               interrupt-parent = <&ao_gpio_porta>;
+               interrupts = <3 0>;
+               irq-gpios = <&ao_gpio_porta 3 0>;
+               reset-gpios = <&pcal6408ahk_d 0 0>;
+               touchscreen-size-x = <1024>;
+               touchscreen-size-y = <600>;
+               tp-size = <9271>;
+               status = "okay";
+       };
+
+       lt8911: lt8911@29 {
+               compatible = "lontium,lt8911exb";
+               reg = <0x29>;
+               lontium,pclk = <136000000>;
+               lontium,hact = <2160>;
+               lontium,vact = <1440>;
+               lontium,hbp = <80>;
+               lontium,hfp = <48>;
+               lontium,vbp = <14>;
+               lontium,vfp = <3>;
+               lontium,hs = <32>;
+               lontium,vs = <10>;
+               lontium,mipi_lane = <2>;
+               lontium,lane_cnt = <2>;
+               lontium,color = <1>; //Color Depth 0:6bit 1:8bit
+               lontium,test = <0>;
+       };
+};
+
+&uart3 {
+       clock-frequency = <100000000>;
+       status = "okay";
+};
+
+&spi0 {
+       status = "disabled";
+};
+
+&qspi0 {
+       status = "disabled";
+};
+
+&qspi1 {
+       status = "disabled";
+};
+
+&dsi0_panel0 {
+       backlight = <&lcd0_backlight>;
+       reset-gpio = <&pcal6408ahk_d 7 0>; /* active low */
+       hsvcc-supply = <&reg_sys_vcc_1v8>;
+       vspn3v3-supply = <&reg_sys_vcc_3v3>;
+};
+
+&lcd0_backlight {
+       pwms = <&pwm 0 50000>;
+       brightness-levels = <0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
+        36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
+        76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100>;
+       default-brightness-level = <100>;
+};
+
+&fan {
+       pwms = <&pwm 1 10000000 0>;
+       cooling-levels = <0 64 192 255>;
+};
+
+&cpus {
+        c910_0: cpu@0 {
+                operating-points = <
+                        /* kHz    uV */
+                        300000  500000
+                        800000  700000
+                        1500000 800000
+                >;
+                light,dvddm-operating-points = <
+                        /* kHz   uV */
+                        300000  800000
+                        800000  800000
+                        1500000 800000
+                >;
+        };
+        c910_1: cpu@1 {
+                operating-points = <
+                        /* kHz    uV */
+                        300000  500000
+                        800000  700000
+                        1500000 800000
+                >;
+                light,dvddm-operating-points = <
+                        /* kHz   uV */
+                        300000  800000
+                        800000  800000
+                        1500000 800000
+                >;
+        };
+        c910_2: cpu@2 {
+
+                operating-points = <
+                        /* kHz    uV */
+                        300000  500000
+                        800000  700000
+                        1500000 800000
+                >;
+                light,dvddm-operating-points = <
+                        /* kHz   uV */
+                        300000  800000
+                        800000  800000
+                        1500000 800000
+                >;
+        };
+        c910_3: cpu@3 {
+
+                operating-points = <
+                        /* kHz    uV */
+                        300000  500000
+                        800000  700000
+                        1500000 800000
+                >;
+                light,dvddm-operating-points = <
+                        /* kHz   uV */
+                        300000  800000
+                        800000  800000
+                        1500000 800000
+                >;
+        };
+};
diff --git a/arch/riscv/boot/dts/thead/th1520-lpi4a-z14inch-m0-16g.dts b/arch/riscv/boot/dts/thead/th1520-lpi4a-z14inch-m0-16g.dts
new file mode 100644 (file)
index 0000000..0b3005f
--- /dev/null
@@ -0,0 +1,17 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright (C) 2022 Alibaba Group Holding Limited.
+ */
+
+#include "th1520-lpi4a-z14inch-m0.dts"
+
+/ {
+       memory@0 {
+               device_type = "memory";
+               reg = <0x0 0x200000 0x3 0xffe00000>;
+       };
+};
+
+&cmamem {
+       alloc-ranges = <0x3 0xe4000000 0 0x14000000>; // [0x3E400_0000 ~ 0x3F800_0000]
+};
diff --git a/arch/riscv/boot/dts/thead/th1520-lpi4a-z14inch-m0.dts b/arch/riscv/boot/dts/thead/th1520-lpi4a-z14inch-m0.dts
new file mode 100644 (file)
index 0000000..b2a4cff
--- /dev/null
@@ -0,0 +1,66 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright (C) 2023 Sipeed.
+ */
+
+#include "th1520-lpi4a-laptop.dts"
+
+/ {
+        model = "T-HEAD Light Lichee Pi 4A configuration for Z14INCH-M0";
+};
+
+&dsi0_panel0 {
+       compatible = "custom,z14inch_2160x1440_40Hz";
+       /* display-timings in devicetree is it not working, but I haven't time to fix it, so move it into simple-panel.c */
+       /*
+       display-timings {
+               clock-frequency = <136000000>;
+               hactive = <2160>;
+               vactive = <1440>;
+               hfront-porch = <48>;
+               hback-porch = <80>;
+               hsync-len = <32>;
+               vback-porch = <14>;
+               vfront-porch = <3>;
+               vsync-len = <10>;
+       };
+       */
+};
+
+&cw2015 {
+       cellwise,battery-profile = /bits/ 8 <
+               0x17 0x67 0x72 0x68 0x66 0x63 0x62 0x5A
+               0x64 0x61 0x4D 0x57 0x5A 0x51 0x43 0x38
+               0x31 0x2A 0x24 0x22 0x29 0x31 0x3E 0x4C
+               0x29 0x4D 0x0B 0x85 0x1C 0x38 0x47 0x57
+               0x5D 0x5E 0x5F 0x60 0x3F 0x1A 0x6F 0x41
+               0x0A 0x43 0x12 0x38 0x7B 0x95 0x9A 0x18
+               0x4B 0x6F 0x9E 0xD5 0x80 0x57 0x87 0xCB
+               0x2F 0x00 0x64 0xA5 0xB5 0x13 0x54 0xB9
+       >;
+};
+
+&lt8911 {
+       lontium,pclk = <136000000>;
+       lontium,hact = <2160>;
+       lontium,vact = <1440>;
+       lontium,hbp = <80>;
+       lontium,hfp = <48>;
+       lontium,vbp = <14>;
+       lontium,vfp = <3>;
+       lontium,hs = <32>;
+       lontium,vs = <10>;
+       lontium,mipi_lane = <2>;
+       lontium,lane_cnt = <2>;
+       lontium,color = <1>; //Color Depth 0:6bit 1:8bit
+       lontium,test = <0>;
+};
+
+&fan {
+        pwms = <&pwm 1 10000000 0>;
+        cooling-levels = <0 192 220 255>;
+};
+
+&lcd0_backlight {
+        default-brightness-level = <40>;
+};
diff --git a/arch/riscv/boot/dts/thead/th1520-milkv-meles-4g.dts b/arch/riscv/boot/dts/thead/th1520-milkv-meles-4g.dts
new file mode 100644 (file)
index 0000000..1abf3d8
--- /dev/null
@@ -0,0 +1,16 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright (C) 2022 Alibaba Group Holding Limited.
+ */
+
+#include "th1520-milkv-meles.dts"
+
+/ {
+       model = "Milk-V Meles 4G";
+       compatible = "milkv,meles", "thead,light";
+
+       memory@0 {
+               device_type = "memory";
+               reg = <0x0 0x200000 0x0 0xffe00000>;
+       };
+};
diff --git a/arch/riscv/boot/dts/thead/th1520-milkv-meles.dts b/arch/riscv/boot/dts/thead/th1520-milkv-meles.dts
new file mode 100644 (file)
index 0000000..ab50bee
--- /dev/null
@@ -0,0 +1,885 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright (C) 2021-2022 Alibaba Group Holding Limited.
+ */
+
+/dts-v1/;
+
+#include "th1520.dtsi"
+#include <dt-bindings/input/linux-event-codes.h>
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+
+/ {
+       model = "Milk-V Meles";
+       compatible = "milkv,meles", "thead,light";
+
+       aliases {
+               mmc0 = &emmc;
+               mmc1 = &sdhci0;
+               mmc2 = &sdhci1;
+       };
+
+       chosen {
+               bootargs = "console=ttyS0,115200 crashkernel=256M-:128M earlycon clk_ignore_unused sram=0xffe0000000,0x180000";
+               stdout-path = "serial0:115200n8";
+       };
+
+       memory@0 {
+               device_type = "memory";
+               reg = <0x0 0x200000 0x1 0xffe00000>;
+       };
+
+       display_subsystem: display-subsystem {
+               status = "okay";
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               led0 {
+                       label = "SYS_STATUS";
+                       gpios = <&gpio1_porta 15 0>;    /* GPIO_ACTIVE_HIGH: 0 */
+                       default-state = "off";
+               };
+
+               led1 {
+                       label = "USER_LED";
+                       gpios = <&gpio1_porta 16 0>;    /* GPIO_ACTIVE_HIGH: 0 */
+                       linux,default-trigger = "heartbeat";
+                       default-state = "on";
+               };
+       };
+
+       light_iopmp: iopmp {
+               compatible = "thead,light-iopmp";
+
+               /* config#1: multiple valid regions */
+               iopmp_emmc: IOPMP_EMMC {
+                       regions = <0x000000 0x100000>,
+                                 <0x100000 0x200000>;
+                       attr = <0xFFFFFFFF>;
+                       dummy_slave= <0x800000>;
+               };
+
+               /* config#2: iopmp bypass */
+               iopmp_sdio0: IOPMP_SDIO0 {
+                       bypass_en;
+               };
+
+               /* config#3: iopmp default region set */
+               iopmp_sdio1: IOPMP_SDIO1 {
+                       attr = <0xFFFFFFFF>;
+                       is_default_region;
+               };
+
+               iopmp_usb0: IOPMP_USB0 {
+                       attr = <0xFFFFFFFF>;
+                       is_default_region;
+               };
+
+               iopmp_ao: IOPMP_AO {
+                       is_default_region;
+               };
+
+               iopmp_aud: IOPMP_AUD {
+                       is_default_region;
+               };
+
+               iopmp_chip_dbg: IOPMP_CHIP_DBG {
+                       is_default_region;
+               };
+
+               iopmp_eip120i: IOPMP_EIP120I {
+                       is_default_region;
+               };
+
+               iopmp_eip120ii: IOPMP_EIP120II {
+                       is_default_region;
+               };
+
+               iopmp_eip120iii: IOPMP_EIP120III {
+                       is_default_region;
+               };
+
+               iopmp_isp0: IOPMP_ISP0 {
+                       is_default_region;
+               };
+
+               iopmp_isp1: IOPMP_ISP1 {
+                       is_default_region;
+               };
+
+               iopmp_dw200: IOPMP_DW200 {
+                       is_default_region;
+               };
+
+               iopmp_vipre: IOPMP_VIPRE {
+                       is_default_region;
+               };
+
+               iopmp_venc: IOPMP_VENC {
+                       is_default_region;
+               };
+
+               iopmp_vdec: IOPMP_VDEC {
+                       is_default_region;
+               };
+
+               iopmp_g2d: IOPMP_G2D {
+                       is_default_region;
+               };
+
+               iopmp_fce: IOPMP_FCE {
+                       is_default_region;
+               };
+
+               iopmp_npu: IOPMP_NPU {
+                       is_default_region;
+               };
+
+               iopmp0_dpu: IOPMP0_DPU {
+                       bypass_en;
+               };
+
+               iopmp1_dpu: IOPMP1_DPU {
+                       bypass_en;
+               };
+
+               iopmp_gpu: IOPMP_GPU {
+                       is_default_region;
+               };
+
+               iopmp_gmac1: IOPMP_GMAC1 {
+                       is_default_region;
+               };
+
+               iopmp_gmac2: IOPMP_GMAC2 {
+                       is_default_region;
+               };
+
+               iopmp_dmac: IOPMP_DMAC {
+                       is_default_region;
+               };
+
+               iopmp_tee_dmac: IOPMP_TEE_DMAC {
+                       is_default_region;
+               };
+
+               iopmp_dsp0: IOPMP_DSP0 {
+                       is_default_region;
+               };
+
+               iopmp_dsp1: IOPMP_DSP1 {
+                       is_default_region;
+               };
+       };
+
+       mbox_910t_client1: mbox_910t_client1 {
+               compatible = "thead,light-mbox-client";
+               mbox-names = "902";
+               mboxes = <&mbox_910t 1 0>;
+               status = "disabled";
+       };
+
+       mbox_910t_client2: mbox_910t_client2 {
+               compatible = "thead,light-mbox-client";
+               mbox-names = "906";
+               mboxes = <&mbox_910t 2 0>;
+               status = "disabled";
+       };
+
+       lightsound: lightsound@1 {
+               status = "okay";
+               compatible = "simple-audio-card";
+               simple-audio-card,name = "Light-Sound-Card";
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               /* I2S - AUDIO SYS CODEC 8156*/
+               simple-audio-card,dai-link@0 {
+                       reg = <0>;
+                       format = "i2s";
+                       cpu {
+                               sound-dai = <&i2s1 0>;
+                       };
+                       codec {
+                               sound-dai = <&es8156_audio_codec>;
+                       };
+               };
+
+               /* I2S - HDMI */
+               simple-audio-card,dai-link@1 {
+                       reg = <1>;
+                       format = "i2s";
+                       cpu {
+                               sound-dai = <&light_i2s 1>;
+                       };
+                       codec {
+                               sound-dai = <&dummy_codec>;
+                       };
+               };
+       };
+
+       wifi_pwrseq: wifi-pwrseq {
+               status = "okay";
+               compatible = "mmc-pwrseq-simple";
+               reset-gpios = <&gpio0_porta 20 1>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_wireless_power>;
+       };
+
+       dummy_codec: dummy_codec {
+               #sound-dai-cells = <0>;
+               compatible = "thead,light-dummy-pcm";
+               status = "okay";
+               sound-name-prefix = "DUMMY";
+       };
+
+       vdd_5v: regulator-vdd-5v {
+               compatible = "regulator-fixed";
+               regulator-name = "vdd_5v";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               regulator-boot-on;
+               regulator-always-on;
+               status = "okay";
+       };
+
+       vdd_1v8: regulator-vdd-1v8 {
+               compatible = "regulator-fixed";
+               regulator-name = "vdd_1v8";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               regulator-boot-on;
+               regulator-always-on;
+               vin-supply = <&vdd_5v>;
+               status = "okay";
+       };
+
+       reg_vref_1v8: regulator-adc-verf {
+               compatible = "regulator-fixed";
+               regulator-name = "vref-1v8";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               status = "okay";
+       };
+
+       vcc_usb_en: regulator-usb-en {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc_usb_en";
+               gpio = <&gpio2_porta 30 1>;     /* GPIO_ACTIVE_LOW: 1 */
+               regulator-boot-on;
+               regulator-always-on;
+               status = "okay";
+       };
+
+       aon {
+               compatible = "thead,light-aon";
+               mbox-names = "aon";
+               mboxes = <&mbox_910t 1 0>;
+               status = "okay";
+
+               pd: light-aon-pd {
+                       compatible = "thead,light-aon-pd";
+                       #power-domain-cells = <1>;
+               };
+
+               aon_reg_dialog: light-dialog-reg {
+                       compatible = "thead,light-dialog-pmic-ant";
+                       status = "okay";
+
+                       dvdd_cpu_reg: appcpu_dvdd {
+                               regulator-name = "appcpu_dvdd";
+                               regulator-min-microvolt = <300000>;
+                               regulator-max-microvolt = <1570000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       dvddm_cpu_reg: appcpu_dvddm {
+                               regulator-name = "appcpu_dvddm";
+                               regulator-min-microvolt = <300000>;
+                               regulator-max-microvolt = <1570000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       soc_dvdd18_aon_reg: soc_dvdd18_aon {
+                               regulator-name = "soc_dvdd18_aon";
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       soc_avdd33_usb3_reg: soc_avdd33_usb3 {
+                               regulator-name = "soc_avdd33_usb3";
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       soc_dvdd08_aon_reg: soc_dvdd08_aon {
+                               regulator-name = "soc_dvdd08_aon";
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       soc_dvdd08_ddr_reg: soc_dvdd08_ddr {
+                               regulator-name = "soc_dvdd08_ddr";
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       soc_vdd_ddr_1v8_reg: soc_vdd_ddr_1v8 {
+                               regulator-name = "soc_vdd_ddr_1v8";
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       soc_vdd_ddr_1v1_reg: soc_vdd_ddr_1v1 {
+                               regulator-name = "soc_vdd_ddr_1v1";
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       soc_vdd_ddr_0v6_reg: soc_vdd_ddr_0v6 {
+                               regulator-name = "soc_vdd_ddr_0v6";
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       soc_dvdd18_ap_reg: soc_dvdd18_ap {
+                               regulator-name = "soc_dvdd18_ap";
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       soc_avdd08_mipi_hdmi_reg: soc_avdd08_mipi_hdmi {
+                               regulator-name = "soc_avdd08_mipi_hdmi";
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       soc_avdd18_mipi_hdmi_reg: soc_avdd18_mipi_hdmi {
+                               regulator-name = "soc_avdd18_mipi_hdmi";
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       soc_vdd33_emmc_reg: soc_vdd33_emmc {
+                               regulator-name = "soc_vdd33_emmc";
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       soc_vdd18_emmc_reg: soc_vdd18_emmc {
+                               regulator-name = "soc_vdd18_emmc";
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       soc_dovdd18_scan_reg: soc_dovdd18_scan {
+                               regulator-name = "soc_dovdd18_scan";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       soc_dvdd12_scan_reg: soc_dvdd12_scan {
+                               regulator-name = "soc_dvdd12_scan";
+                               regulator-min-microvolt = <900000>;
+                               regulator-max-microvolt = <3600000>;
+                       };
+
+                       soc_avdd28_scan_en_reg: soc_avdd28_scan_en {
+                               regulator-name = "soc_avdd28_scan_en";
+                               regulator-min-microvolt = <900000>;
+                               regulator-max-microvolt = <3600000>;
+                       };
+               };
+
+               c910_cpufreq {
+                       compatible = "thead,light-mpw-cpufreq";
+                       status = "okay";
+               };
+
+               test: light-aon-test {
+                       compatible = "thead,light-aon-test";
+               };
+       };
+};
+
+&cmamem {
+       alloc-ranges = <0 0xe4000000 0 0x14000000>; // [0xE400_0000 ~ 0xF800_0000]
+};
+
+&resmem {
+       #address-cells = <2>;
+       #size-cells = <2>;
+       ranges;
+
+       tee_mem: memory@1a000000 {
+               reg = <0x0 0x1a000000 0 0x4000000>;
+               no-map;
+       };
+       dsp0_mem: memory@20000000 {                     /**0x2000_0000~0x2040_0000 4M**/
+               reg = <0x0 0x20000000 0x0 0x00280000    /* DSP FW code&data section 2.5M*/
+                      0x0 0x20280000 0x0 0x00001000    /* DSP communication area 4K*/
+                      0x0 0x20281000 0x0 0x00007000    /* Panic/log page 28K */
+                      0x0 0x20288000 0x0 0x00178000>;  /* DSP shared memory 1.5M-32K*/
+               no-map;
+       };
+       dsp1_mem: memory@20400000 {                     /**0x2040_0000~0x2080_0000 4M**/
+               reg = <0x0 0x20400000 0x0 0x00280000    /* DSP FW code&data section */
+                      0x0 0x20680000 0x0 0x00001000    /* DSP communication area */
+                      0x0 0x20681000 0x0 0x00007000    /* Panic/log page*/
+                      0x0 0x20688000 0x0 0x00178000>;  /* DSP shared memory */
+               no-map;
+       };
+       vi_mem: framebuffer@0f800000 {
+               reg = <0x0 0x0F800000 0x0 0x05400000    /* vi_mem_pool_region[0]  84 MB (default) */
+                      0x0 0x14C00000 0x0 0x01D00000    /* vi_mem_pool_region[1]  29 MB */
+                      0x0 0x16900000 0x0 0x03200000>;  /* vi_mem_pool_region[2]  50 MB */
+               no-map;
+       };
+       facelib_mem: memory@22000000 {
+               reg = <0x0 0x22000000 0x0 0x10000000>;
+               no-map;
+       };
+};
+
+&adc {
+       vref-supply = <&reg_vref_1v8>;
+       status = "okay";
+};
+
+&i2c0 {
+       clock-frequency = <400000>;
+       status = "disabled";
+};
+
+&i2c1 {
+       clock-frequency = <400000>;
+       status = "disabled";
+};
+
+&audio_i2c0 {
+       clock-frequency = <100000>;
+       status = "okay";
+
+       es8156_audio_codec: es8156@9 {
+               #sound-dai-cells = <0>;
+               compatible = "everest,es8156";
+               reg = <0x09>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_audio_i2s1_mclk>;
+       };
+};
+
+&uart0 {
+       clock-frequency = <100000000>;
+};
+
+&gmac0 {
+       phy-mode = "rgmii-id";
+       rx-clk-delay = <0x00>; /* for RGMII */
+       tx-clk-delay = <0x00>; /* for RGMII */
+       phy-handle = <&phy_88E1111_0>;
+       status = "okay";
+
+       mdio0 {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               compatible = "snps,dwmac-mdio";
+
+               phy_88E1111_0: ethernet-phy@0 {
+                       reg = <0x1>;
+               };
+       };
+};
+
+&gmac1 {
+       status = "disabled";
+};
+
+&emmc {
+       max-frequency = <198000000>;
+       non-removable;
+       mmc-hs400-1_8v;
+       io_fixed_1v8;
+       is_emmc;
+       no-sdio;
+       no-sd;
+       pull_up;
+       bus-width = <8>;
+       status = "okay";
+};
+
+&sdhci0 {
+       max-frequency = <198000000>;
+       bus-width = <4>;
+       pull_up;
+       wprtn_ignore;
+       status = "okay";
+};
+
+&sdhci1 {
+       status = "okay";
+       max-frequency = <198000000>;
+       bus-width = <4>;
+       pull_up;
+       no-sd;
+       no-mmc;
+       non-removable;
+       io_fixed_1v8;
+       post-power-on-delay-ms = <50>;
+       wprtn_ignore;
+       cap-sd-highspeed;
+       keep-power-in-suspend;
+       mmc-pwrseq = <&wifi_pwrseq>;
+       #address-cells = <1>;
+       #size-cells = <0>;
+
+       brcmf: wifi@1 {
+               compatible = "brcm,bcm4329-fmac";
+               reg = <1>;
+       };
+};
+
+&padctrl0_apsys { /* right-pinctrl */
+       light-evb-padctrl0 {
+               /*
+                * Pin Configuration Node:
+                * Format: <pin_id mux_node config>
+                */
+               pinctrl_uart0: uart0grp {
+                       thead,pins = <
+                               FM_UART0_TXD    0x0     0x72
+                               FM_UART0_RXD    0x0     0x72
+                       >;
+               };
+
+               pinctrl_spi0: spi0grp {
+                       thead,pins = <
+                               FM_SPI_CSN      0x3     0x20a
+                               FM_SPI_SCLK     0x0     0x20a
+                               FM_SPI_MISO     0x0     0x23a
+                               FM_SPI_MOSI     0x0     0x23a
+                       >;
+               };
+
+               pinctrl_qspi0: qspi0grp {
+                       thead,pins = <
+                               FM_QSPI0_SCLK   0x0     0x20f
+                               FM_QSPI0_CSN0   0x3     0x20f
+                               FM_QSPI0_D0_MOSI        0x0     0x23f
+                               FM_QSPI0_D1_MISO        0x0     0x23f
+                       >;
+               };
+
+               pinctrl_pwm: pwmgrp {
+                       thead,pins = <
+                               FM_QSPI0_D2_WP  0x1     0x208   /* pwm5 */
+                               FM_QSPI0_CSN1   0x1     0x208   /* pwm2 */
+                       >;
+               };
+       };
+};
+
+&padctrl1_apsys { /* left-pinctrl */
+       light-evb-padctrl1 {
+               /*
+                * Pin Configuration Node:
+                * Format: <pin_id mux_node config>
+                */
+               pinctrl_uart3: uart3grp {
+                       thead,pins = <
+                               FM_UART3_TXD    0x0     0x72
+                               FM_UART3_RXD    0x0     0x72
+                       >;
+               };
+
+               pinctrl_uart4: uart4grp {
+                       thead,pins = <
+                               FM_UART4_TXD    0x0     0x72
+                               FM_UART4_RXD    0x0     0x72
+                               FM_UART4_CTSN   0x0     0x72
+                               FM_UART4_RTSN   0x0     0x72
+                       >;
+               };
+
+               pinctrl_qspi1: qspi1grp {
+                       thead,pins = <
+                               FM_QSPI1_SCLK   0x0     0x20a
+                               FM_QSPI1_CSN0   0x3     0x20a
+                               FM_QSPI1_D0_MOSI        0x0     0x23a
+                               FM_QSPI1_D1_MISO        0x0     0x23a
+                               FM_QSPI1_D2_WP  0x0     0x23a
+                               FM_QSPI1_D3_HOLD        0x0     0x23a
+                       >;
+               };
+
+               pinctrl_iso7816: iso7816grp {
+                       thead,pins = <
+                               FM_QSPI1_SCLK   0x1     0x208
+                               FM_QSPI1_D0_MOSI        0x1     0x238
+                               FM_QSPI1_D1_MISO        0x1     0x238
+                               FM_QSPI1_D2_WP  0x1     0x238
+                               FM_QSPI1_D3_HOLD        0x1     0x238
+                       >;
+               };
+
+               pinctrl_wireless_power: wireless-power-group {
+                       thead,pins = <
+                               FM_GPIO0_20     0x0     0x23a
+                       >;
+               };
+
+               pinctrl_wireless_host_wake: wireless-host-wake-group {
+                       thead,pins = <
+                               FM_GPIO0_21     0x0     0x21a
+                       >;
+               };
+       };
+};
+
+&padctrl_aosys {
+       light-aon-padctrl {
+               /*
+                * Pin Configuration Node:
+                * Format: <pin_id mux_node config>
+                */
+
+               pinctrl_audiopa1: audiopa1_grp {
+                       thead,pins = <
+                               FM_AUDIO_PA1    0x3     0x72
+                       >;
+               };
+
+               pinctrl_audiopa2: audiopa2_grp {
+                       thead,pins = <
+                               FM_AUDIO_PA2    0x0     0x72
+                       >;
+               };
+
+               pinctrl_volume: volume_grp {
+                       thead,pins = <
+                               FM_CPU_JTG_TDI  0x3     0x208
+                               FM_CPU_JTG_TDO  0x3     0x208
+                       >;
+               };
+       };
+};
+
+&padctrl_audiosys {
+       status = "okay";
+
+       light-audio-padctrl {
+               /*
+                * Pin Configuration Node:
+                * Format: <pin_id mux_node config>
+                */
+
+               pinctrl_audio_i2s1_mclk: audio_i2s1_mclk_grp {
+                       thead,pins = <
+                               FM_AUDIO_IO_PA13        0x0     0x20a
+                       >;
+               };
+       };
+};
+
+&xtensa_dsp {
+       status = "okay";
+};
+
+&xtensa_dsp0 {
+       status = "okay";
+       memory-region = <&dsp0_mem>;
+};
+
+&xtensa_dsp1{
+       status = "okay";
+       memory-region = <&dsp1_mem>;
+};
+
+&trng {
+       status = "disabled";
+};
+
+&eip_28 {
+       status = "okay";
+};
+
+&vdec {
+       status = "okay";
+};
+
+&venc {
+       status = "okay";
+};
+
+&isp_venc_shake {
+       status = "okay";
+};
+
+&vidmem {
+       status = "okay";
+       memory-region = <&vi_mem>;
+};
+
+&gpu {
+       status = "okay";
+};
+
+&npu {
+       vha_clk_rate = <1000000000>;
+       status = "okay";
+};
+
+&fce {
+       memory-region = <&facelib_mem>;
+       status = "okay";
+};
+
+&cpus {
+       c910_0: cpu@0 {
+               operating-points = <
+                       /* kHz    uV */
+                       300000  650000
+                       800000  700000
+                       1500000 800000
+                       1848000 1000000
+               >;
+               light,dvddm-operating-points = <
+                       /* kHz   uV */
+                       300000  800000
+                       800000  800000
+                       1500000 800000
+                       1848000 1000000
+               >;
+       };
+
+       c910_1: cpu@1 {
+               operating-points = <
+                       /* kHz    uV */
+                       300000  650000
+                       800000  700000
+                       1500000 800000
+                       1848000 1000000
+               >;
+               light,dvddm-operating-points = <
+                       /* kHz   uV */
+                       300000  800000
+                       800000  800000
+                       1500000 800000
+                       1848000 1000000
+               >;
+       };
+
+       c910_2: cpu@2 {
+               operating-points = <
+                       /* kHz    uV */
+                       300000  650000
+                       800000  700000
+                       1500000 800000
+                       1848000 1000000
+               >;
+               light,dvddm-operating-points = <
+                       /* kHz   uV */
+                       300000  800000
+                       800000  800000
+                       1500000 800000
+                       1848000 1000000
+               >;
+       };
+
+       c910_3: cpu@3 {
+               operating-points = <
+                       /* kHz    uV */
+                       300000  650000
+                       800000  700000
+                       1500000 800000
+                       1848000 1000000
+               >;
+               light,dvddm-operating-points = <
+                       /* kHz   uV */
+                       300000  800000
+                       800000  800000
+                       1500000 800000
+                       1848000 1000000
+               >;
+       };
+};
+
+&dpu {
+       status = "okay";
+};
+
+/* DP1 --- HDMI0 */
+&dpu_enc1 {
+       status = "disabled";
+       ports {
+               /delete-node/ port@0;
+       };
+};
+
+&disp1_out {
+       remote-endpoint = <&hdmi_tx_in>;
+};
+
+&hdmi_tx {
+       status = "okay";
+
+       port@0 {
+               /* input */
+               hdmi_tx_in: endpoint {
+                       remote-endpoint = <&disp1_out>;
+               };
+       };
+};
+
+&light_i2s {
+       status = "okay";
+       /delete-property/ pinctrl-names;
+       /delete-property/ pinctrl-0;
+};
+
+&i2s0 {
+       status = "okay";
+};
+
+&i2s1 {
+       status = "okay";
+};
+
+&qspi0 {
+       status = "okay";
+       num-cs = <1>;
+       cs-gpios = <&gpio2_porta 3 0>; // GPIO_ACTIVE_HIGH: 0
+
+       spi_flash: spi-flash@0 {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               compatible = "jedec,spi-nor";
+               reg = <0x0>;
+               spi-max-frequency = <50000000>;
+               spi-tx-bus-width = <1>;
+               spi-rx-bus-width = <1>;
+               status = "okay";
+
+               partitions {
+                       compatible = "fixed-partitions";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       loader@0 {
+                               label = "loader";
+                               reg = <0x0 0x800000>;
+                       };
+               };
+       };
+};
+
+&qspi1 {
+       status = "disabled";
+};