Hi Samuel, On Sun, Jul 3, 2022 at 1:12 PM Samuel Holland <sam...@sholland.org> wrote:
> On 6/15/22 4:39 AM, Suniel Mahesh wrote: > > 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: Christopher Vollo <ch...@renewoutreach.org> > > Signed-off-by: Jagan Teki <ja...@amarulasolutions.com> > > Signed-off-by: Suniel Mahesh <su...@amarulasolutions.com> > > > > --- > > 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 | 361 ++++++++++++++++++ > > 2 files changed, 362 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..45f620203c33 > > --- /dev/null > > +++ b/arch/arm/boot/dts/sun8i-r16-renew-vista-e.dts > > @@ -0,0 +1,361 @@ > > +// 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_OK>; > > + 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>; > > + }; > > + > > + pad-intz { > > + label = "renew-e:pad-intz"; > > + gpios = <&pio 4 16 GPIO_ACTIVE_HIGH>; > > + default-state = "on"; > > + }; > > Is this really an LED, or just a generic output? > this is an LED > > > + > > + 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>; > > + }; > > Indent with tabs, please. > indenting, sending a v3 > > > + > > + 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>; > > + }; > > + > > + fans-on { > > + label = "renew-e:fans-on"; > > + gpios = <&pio 4 14 GPIO_ACTIVE_HIGH>; /* > FAN_ON/OFF: PE14 */ > > + default-state = "on"; > > + }; > > Does this drive an LED or control a fan? If it controls a fan, it should > use the > gpio-fan binding, and not pretend to be an LED. > > it controls a fan changing the binding to gpio-fan > It also does not validate against the gpio-leds binding: > > sun8i-r16-renew-vista-e.dtb: leds: 'fans-on', 'pad-intz' do not match any > of the > regexes: '(^led-[0-9a-f]$|led)', 'pinctrl-[0-9]+' > > > + }; > > + > > + 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", "AIF1 Slot 0 Left", > > + "Right DAC", "AIF1 Slot 0 Right"; > > Please use "DACL" and "DACR" here, instead of the AIF1 Slot 0 widgets. The > AIF1 > Slot 0 widgets do not accurately describe the audio routing and are only > kept > for backward compatibility. > > making the changes as suggested > > +}; > > + > > +&uart0 { > > + pinctrl-names = "default"; > > + pinctrl-0 = <&uart0_pb_pins>; > > + status = "okay"; > > +}; > > + > > +&usb_otg { > > + dr_mode = "host"; > > + status = "okay"; > > +}; > > + > > +&usbphy { > > + usb0_vbus-supply = <®_vcc5v0>; > > You enable drivevbus and label it as "usb0-vbus". But this suggests the > VBUS is > always on. Which is correct? > yes, VBUS is always on > > > + status = "okay"; > > +}; > > > >