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)
+++ /dev/null
-// 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
+++ /dev/null
-/* 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]
-};
+++ /dev/null
-/* 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";
-};
-
-®_usb_hub_vdd1v2 {
- /delete-property/ gpio;
-};
-
-®_usb_hub_vcc5v {
- /delete-property/ gpio;
-};
+++ /dev/null
-/* 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";
-};
-
-®_usb_hub_vdd1v2 {
- /delete-property/ gpio;
-};
-
-®_usb_hub_vcc5v {
- /delete-property/ gpio;
-};
+++ /dev/null
-/* 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]
-};
+++ /dev/null
-/* 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>;
-};
+++ /dev/null
-/* 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 = <®_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>;
- };
- };
-};
+++ /dev/null
-/* 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 = <®_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 = <®_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 = <®_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 = <®_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 = <®_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 = <®_sys_vcc_3v3>;
- DVDD-supply = <®_sys_vcc_1v8>;
- PVDD-supply = <®_sys_vcc_1v8>;
-};
-
-&es7210_audio_codec {
- MVDD-supply = <®_sys_vcc_3v3>;
- AVDD-supply = <®_sys_vcc_3v3>;
- DVDD-supply = <®_sys_vcc_1v8>;
- PVDD-supply = <®_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 = <®_usb_vcc_5v>;
-};
-
-®_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;
-};
-
-®_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 = <®_sys_vcc_1v8>;
- vspn3v3-supply = <®_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
- >;
- };
-};
+++ /dev/null
-/* 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]
-};
+++ /dev/null
-/* 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
- >;
-};
-
-<8911 {
- 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>;
-};
+++ /dev/null
-/* 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>;
- };
-};
+++ /dev/null
-/* 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 = <®_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";
-};
--- /dev/null
+// 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
--- /dev/null
+/* 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"
--- /dev/null
+/* 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 = <®_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
+ >;
+ };
+};
--- /dev/null
+/* 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]
+};
--- /dev/null
+/* 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";
+};
+
+®_usb_hub_vdd1v2 {
+ /delete-property/ gpio;
+};
+
+®_usb_hub_vcc5v {
+ /delete-property/ gpio;
+};
--- /dev/null
+/* 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";
+};
+
+®_usb_hub_vdd1v2 {
+ /delete-property/ gpio;
+};
+
+®_usb_hub_vcc5v {
+ /delete-property/ gpio;
+};
--- /dev/null
+/* 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]
+};
--- /dev/null
+/* 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>;
+};
--- /dev/null
+/* 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 = <®_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>;
+ };
+ };
+};
--- /dev/null
+/* 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 = <®_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 = <®_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 = <®_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 = <®_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 = <®_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 = <®_sys_vcc_3v3>;
+ DVDD-supply = <®_sys_vcc_1v8>;
+ PVDD-supply = <®_sys_vcc_1v8>;
+};
+
+&es7210_audio_codec {
+ MVDD-supply = <®_sys_vcc_3v3>;
+ AVDD-supply = <®_sys_vcc_3v3>;
+ DVDD-supply = <®_sys_vcc_1v8>;
+ PVDD-supply = <®_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 = <®_usb_vcc_5v>;
+};
+
+®_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;
+};
+
+®_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 = <®_sys_vcc_1v8>;
+ vspn3v3-supply = <®_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
+ >;
+ };
+};
--- /dev/null
+/* 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]
+};
--- /dev/null
+/* 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
+ >;
+};
+
+<8911 {
+ 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>;
+};
--- /dev/null
+/* 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>;
+ };
+};
--- /dev/null
+/* 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 = <®_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";
+};