Yuzuki-lizard is an Open Hardware board based on Allwinner V851s SoC. Add a basic dts for it. Signed-off-by: Andras Szemzo <szemzo.andras@xxxxxxxxx> --- arch/arm/boot/dts/allwinner/Makefile | 1 + .../boot/dts/allwinner/sun8i-v851s-lizard.dts | 196 ++++++++++++++++++ 2 files changed, 197 insertions(+) create mode 100644 arch/arm/boot/dts/allwinner/sun8i-v851s-lizard.dts diff --git a/arch/arm/boot/dts/allwinner/Makefile b/arch/arm/boot/dts/allwinner/Makefile index 48666f73e638..af84073f6a51 100644 --- a/arch/arm/boot/dts/allwinner/Makefile +++ b/arch/arm/boot/dts/allwinner/Makefile @@ -260,6 +260,7 @@ dtb-$(CONFIG_MACH_SUN8I) += \ sun8i-v3-sl631-imx179.dtb \ sun8i-v3s-anbernic-rg-nano.dtb \ sun8i-v3s-licheepi-zero.dtb \ + sun8i-v851s-lizard.dtb \ sun8i-v3s-licheepi-zero-dock.dtb \ sun8i-v40-bananapi-m2-berry.dtb dtb-$(CONFIG_MACH_SUN9I) += \ diff --git a/arch/arm/boot/dts/allwinner/sun8i-v851s-lizard.dts b/arch/arm/boot/dts/allwinner/sun8i-v851s-lizard.dts new file mode 100644 index 000000000000..180d10b1a06a --- /dev/null +++ b/arch/arm/boot/dts/allwinner/sun8i-v851s-lizard.dts @@ -0,0 +1,196 @@ +// SPDX-License-Identifier: (GPL-2.0-only OR MIT) +// Copyright (C) 2024 Andras Szemzo.andras@xxxxxxxxx> + +/dts-v1/; +#include <dt-bindings/gpio/gpio.h> +#include <dt-bindings/leds/common.h> +#include "sun8i-v853.dtsi" + +/ { + model = "Yuzuki-lizard"; + compatible = "yuzukihd,lizard", "allwinner,sun8i-v853", "allwinner,sun8i"; + + aliases { + serial0 = &uart0; + }; + + chosen { + stdout-path = "serial0:115200n8"; + }; + + memory { + reg = <0x40000000 0x4000000>; + }; + + reg_vcc: vcc { + compatible = "regulator-fixed"; + regulator-name = "vcc"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + }; + + reg_vcc_1v8: vcc-1v8 { + compatible = "regulator-fixed"; + regulator-name = "vcc-1v8"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + reg_usbvbus: usbvbus { + compatible = "regulator-fixed"; + regulator-name = "usbvbus"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + vin-supply = <®_vcc>; + }; + + reg_vcc_3v3: vcc-3v3 { + compatible = "regulator-fixed"; + regulator-name = "vcc-3v3"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + vin-supply = <®_vcc>; + }; + + reg_vdd_cpu: vdd-cpu { + compatible = "regulator-fixed"; + regulator-name = "vdd-cpu"; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + vin-supply = <®_vcc>; + }; + + leds { + compatible = "gpio-leds"; + + status_led { + linux,default-trigger = "heartbeat"; + label = "led:red"; + gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>; + }; + }; + + wifi_pwrseq: wifi-pwrseq { + compatible = "mmc-pwrseq-simple"; + reset-gpios = <&pio 4 6 GPIO_ACTIVE_LOW>; /* PE6 */ + }; +}; + +&dcxo { + clock-frequency = <24000000>; +}; + +&cpu0 { + cpu-supply = <®_vdd_cpu>; +}; + +&pio { + vcc-pa-supply = <®_vcc_3v3>; + vcc-pc-supply = <®_vcc_3v3>; + vcc-pd-supply = <®_vcc_3v3>; + vcc-pe-supply = <®_vcc_3v3>; + vcc-pf-supply = <®_vcc_3v3>; + vcc-ph-supply = <®_vcc_3v3>; +}; + +&uart0 { + pinctrl-0 = <&uart0_ph9_pins>; + pinctrl-names = "default"; + status = "okay"; +}; + +&wdt { + status = "okay"; +}; + +&spi0 { + pinctrl-0 = <&spi0_pins>; + pinctrl-names = "default"; + status = "okay"; + + flash@0 { + compatible = "spi-nand"; + spi-max-frequency = <75000000>; + reg = <0>; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + label = "awboot"; + reg = <0x00000000 0x00020000>; /* 128K */ + }; + + partition@20000 { + label = "dtb"; + reg = <0x00020000 0x00020000>; /* 128k */ + }; + + partition@40000 { + label = "kernel"; + reg = <0x00040000 0x00800000>; /* 8MB */ + }; + + partition@840000 { + label = "rootfs"; + reg = <0x00840000 0x077c0000>; + }; + }; + }; +}; + +&i2c2 { + pinctrl-0 = <&i2c2_ph11_pins>; + pinctrl-names = "default"; + status = "okay"; +}; + +&mmc0 { + bus-width = <4>; + broken-cd; + disable-wp; + vmmc-supply = <®_vcc_3v3>; + vqmmc-supply = <®_vcc_3v3>; + pinctrl-0 = <&mmc0_pins>; + pinctrl-names = "default"; + status = "okay"; +}; + +&mmc1 { + bus-width = <4>; + mmc-pwrseq = <&wifi_pwrseq>; + non-removable; + vmmc-supply = <®_vcc_3v3>; + vqmmc-supply = <®_vcc_3v3>; + pinctrl-0 = <&mmc1_pins>; + pinctrl-names = "default"; + status = "okay"; + + xr829: wifi@1 { + reg = <1>; + interrupt-parent = <&pio>; + interrupts = <4 7 IRQ_TYPE_LEVEL_HIGH>; /* PE7 */ + interrupt-names = "host-wake"; + }; +}; + +&usb_otg { + dr_mode = "otg"; + status = "okay"; +}; + +&ehci0 { + status = "okay"; +}; + +&ohci0 { + status = "okay"; +}; + +&usbphy { + usb0_vbus-supply = <®_usbvbus>; + usb0_id_det-gpio = <&pio 4 9 GPIO_ACTIVE_LOW>; + status = "okay"; +}; -- 2.39.5