The R16-Vista-E board from RenewWorldOutreach based on allwinner R16(A33). General features: - 1GB RAM - microSD slot - Realtek Wifi - 1 x USB 2.0 - HDMI IN - HDMI OUT - Audio out - MIPI DSI - TI DLPC3433 It has also connectors to connect an external mini keypad. Signed-off-by: Suniel Mahesh <sunil@xxxxxxxxxxxxxxxxxxxx> Signed-off-by: Jagan Teki <jagan@xxxxxxxxxxxxxxxxxxxx> Signed-off-by: Christopher Vollo <chris@xxxxxxxxxxxxxxxxx> --- Changes for v3: - As suggested by Samuel Holland: - changed binding to gpio-fan - changed widgets to DACL and DACR to describe audio routing - fixed indentation - primary author of the commit should be the first signer Changes for v2: - Add missing compatible string - insert missing signatures of contributors --- arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/sun8i-r16-renew-vista-e.dts | 362 ++++++++++++++++++ 2 files changed, 363 insertions(+) create mode 100644 arch/arm/boot/dts/sun8i-r16-renew-vista-e.dts diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile index 184899808ee7..b5966c0742e1 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile @@ -1353,6 +1353,7 @@ dtb-$(CONFIG_MACH_SUN8I) += \ sun8i-r16-nintendo-nes-classic.dtb \ sun8i-r16-nintendo-super-nes-classic.dtb \ sun8i-r16-parrot.dtb \ + sun8i-r16-renew-vista-e.dtb \ sun8i-r40-bananapi-m2-ultra.dtb \ sun8i-r40-oka40i-c.dtb \ sun8i-s3-elimo-initium.dtb \ diff --git a/arch/arm/boot/dts/sun8i-r16-renew-vista-e.dts b/arch/arm/boot/dts/sun8i-r16-renew-vista-e.dts new file mode 100644 index 000000000000..ff72914eb110 --- /dev/null +++ b/arch/arm/boot/dts/sun8i-r16-renew-vista-e.dts @@ -0,0 +1,362 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Copyright (C) 2022 RenewWorldOutreach + * Copyright (C) 2022 Amarula Solutions(India) + */ + +/dts-v1/; +#include "sun8i-a33.dtsi" + +#include <dt-bindings/gpio/gpio.h> +#include <dt-bindings/input/input.h> +#include <dt-bindings/leds/common.h> + +/ { + model = "RenewWorldOutreach R16-Vista-E"; + compatible = "renewworldoutreach,r16-vista-e", "allwinner,sun8i-r16", "allwinner,sun8i-a33"; + + aliases { + serial0 = &uart0; + }; + + chosen { + stdout-path = "serial0:115200n8"; + }; + + gpio-keys-polled { + compatible = "gpio-keys-polled"; + poll-interval = <100>; + + ok { + label = "ok"; + linux,code = <KEY_ENTER>; + gpios = <&pio 4 0 GPIO_ACTIVE_LOW>; + }; + + left { + label = "left"; + linux,code = <KEY_LEFT>; + gpios = <&pio 4 1 GPIO_ACTIVE_LOW>; + }; + + right { + label = "right"; + linux,code = <KEY_RIGHT>; + gpios = <&pio 4 2 GPIO_ACTIVE_LOW>; + }; + + up { + label = "up"; + linux,code = <KEY_UP>; + gpios = <&pio 4 3 GPIO_ACTIVE_LOW>; + }; + + down { + label = "down"; + linux,code = <KEY_DOWN>; + gpios = <&pio 4 4 GPIO_ACTIVE_LOW>; + }; + + back { + label = "back"; + linux,code = <KEY_BACK>; + gpios = <&pio 4 5 GPIO_ACTIVE_LOW>; + }; + + power { + label = "power"; + linux,code = <KEY_POWER>; + gpios = <&pio 4 6 GPIO_ACTIVE_LOW>; + }; + + vol-down { + label = "vol-down"; + linux,code = <KEY_VOLUMEDOWN>; + gpios = <&pio 7 3 GPIO_ACTIVE_LOW>; + }; + + vol-up { + label = "vol-up"; + linux,code = <KEY_VOLUMEUP>; + gpios = <&pio 7 9 GPIO_ACTIVE_LOW>; + }; + }; + + leds { + compatible = "gpio-leds"; + + battery-led0 { + label = "renew-e:battery-led0"; + gpios = <&r_pio 0 2 GPIO_ACTIVE_HIGH>; + }; + + battery-led1 { + label = "renew-e:battery-led1"; + gpios = <&r_pio 0 3 GPIO_ACTIVE_HIGH>; + }; + + battery-led2 { + label = "renew-e:battery-led2"; + gpios = <&r_pio 0 4 GPIO_ACTIVE_HIGH>; + }; + + battery-led3 { + label = "renew-e:battery-led3"; + gpios = <&r_pio 0 5 GPIO_ACTIVE_HIGH>; + }; + + battery-led4 { + label = "renew-e:battery-led4"; + gpios = <&r_pio 0 6 GPIO_ACTIVE_HIGH>; + }; + + volume-led0 { + label = "renew-e:volume-led0"; + gpios = <&pio 7 2 GPIO_ACTIVE_HIGH>; + }; + + volume-led1 { + label = "renew-e:volume-led1"; + gpios = <&pio 6 13 GPIO_ACTIVE_HIGH>; + }; + + volume-led2 { + label = "renew-e:volume-led2"; + gpios = <&pio 6 12 GPIO_ACTIVE_HIGH>; + }; + + volume-led3 { + label = "renew-e:volume-led3"; + gpios = <&pio 6 11 GPIO_ACTIVE_HIGH>; + }; + + volume-led4 { + label = "renew-e:volume-led4"; + gpios = <&pio 6 10 GPIO_ACTIVE_HIGH>; + }; + + led-pad-intz { + label = "renew-e:led-pad-intz"; + gpios = <&pio 4 16 GPIO_ACTIVE_HIGH>; + default-state = "on"; + }; + }; + + gpio-fan { + compatible = "gpio-fan"; + gpios = <&pio 4 14 GPIO_ACTIVE_HIGH>; /* FAN_ON/OFF: PE14 */ + gpio-fan,speed-map = <0 0 6000 1>; + }; + + reg_vcc5v0: vcc5v0 { + compatible = "regulator-fixed"; + regulator-name = "vcc5v0"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + }; +}; + +&codec { + status = "okay"; +}; + +&cpu0 { + cpu-supply = <®_dcdc3>; +}; + +&cpu0_opp_table { + opp-1104000000 { + opp-hz = /bits/ 64 <1104000000>; + opp-microvolt = <1320000>; + clock-latency-ns = <244144>; /* 8 32k periods */ + }; + + opp-1200000000 { + opp-hz = /bits/ 64 <1200000000>; + opp-microvolt = <1320000>; + clock-latency-ns = <244144>; /* 8 32k periods */ + }; +}; + +&dai { + status = "okay"; +}; + +&de { + status = "okay"; +}; + +&dphy { + status = "okay"; +}; + +&ehci0 { + status = "okay"; +}; + +&mmc0 { + vmmc-supply = <®_dcdc1>; + bus-width = <4>; + non-removable; + status = "okay"; +}; + +&mmc1 { + pinctrl-names = "default"; + pinctrl-0 = <&mmc1_pg_pins>; + vmmc-supply = <®_dcdc1>; + bus-width = <4>; + broken-cd; + status = "okay"; +}; + +&ohci0 { + status = "okay"; +}; + +&r_rsb { + status = "okay"; + + axp22x: pmic@3a3 { + compatible = "x-powers,axp223"; + reg = <0x3a3>; + interrupt-parent = <&r_intc>; + interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_LOW>; + eldoin-supply = <®_dcdc1>; + x-powers,drive-vbus-en; + }; +}; + +#include "axp223.dtsi" + +&ac_power_supply { + status = "okay"; +}; + +®_aldo1 { + regulator-always-on; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + regulator-name = "vcc-io"; +}; + +®_aldo2 { + regulator-always-on; + regulator-min-microvolt = <2500000>; + regulator-max-microvolt = <2500000>; + regulator-name = "vdd-dll"; +}; + +®_aldo3 { + regulator-always-on; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + regulator-name = "avcc"; +}; + +®_dc1sw { + regulator-name = "vcc-lcd"; +}; + +®_dc5ldo { + regulator-always-on; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <1400000>; + regulator-name = "vdd-cpus"; +}; + +®_dcdc1 { + regulator-always-on; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + regulator-name = "vcc-3v0"; +}; + +®_dcdc2 { + regulator-always-on; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <1400000>; + regulator-name = "vdd-sys"; +}; + +®_dcdc3 { + regulator-always-on; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <1400000>; + regulator-name = "vdd-cpu"; +}; + +®_dcdc5 { + regulator-always-on; + regulator-min-microvolt = <1500000>; + regulator-max-microvolt = <1500000>; + regulator-name = "vcc-dram"; +}; + +®_dldo1 { + regulator-always-on; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-name = "vcc-3v3-main1"; +}; + +®_dldo2 { + regulator-always-on; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-name = "vcc-3v3-main2"; +}; + +®_dldo3 { + regulator-always-on; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-name = "vcc-3v3-main3"; +}; + +®_dldo4 { + regulator-always-on; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-name = "vcc-3v3-main4"; +}; + +®_eldo1 { + regulator-always-on; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + regulator-name = "vcc-1v2-hdmi"; +}; + +®_drivevbus { + regulator-name = "usb0-vbus"; + status = "okay"; +}; + +®_rtc_ldo { + regulator-name = "vcc-rtc"; +}; + +&sound { + status = "okay"; + simple-audio-card,routing = + "Left DAC", "DACL", + "Right DAC", "DACR"; +}; + +&uart0 { + pinctrl-names = "default"; + pinctrl-0 = <&uart0_pb_pins>; + status = "okay"; +}; + +&usb_otg { + dr_mode = "host"; + status = "okay"; +}; + +&usbphy { + /* VBUS is always on because it is wired to the power supply */ + usb0_vbus-supply = <®_vcc5v0>; + status = "okay"; +}; -- 2.25.1