Dne nedelja, 17. marec 2024 ob 09:34:45 CET je Denis Burkov napisal(a): > What works: > > - Serial console > - mmc0, mmc2 (both microSD card slots on the board) > - All buttons (gpio and lradc based) > - Power LED > - PMIC > - RTC > - USB OTG/gadgets mode > > Signed-off-by: Denis Burkov <hitechshell@xxxxxxx> > --- > arch/arm/boot/dts/allwinner/Makefile | 1 + > .../sun5i-a13-pocketbook-614-plus.dts | 215 ++++++++++++++++++ > 2 files changed, 216 insertions(+) > create mode 100644 arch/arm/boot/dts/allwinner/sun5i-a13-pocketbook-614-plus.dts > > diff --git a/arch/arm/boot/dts/allwinner/Makefile b/arch/arm/boot/dts/allwinner/Makefile > index 5fbb44ddacd0..6209243ad975 100644 > --- a/arch/arm/boot/dts/allwinner/Makefile > +++ b/arch/arm/boot/dts/allwinner/Makefile > @@ -61,6 +61,7 @@ dtb-$(CONFIG_MACH_SUN5I) += \ > sun5i-a13-olinuxino.dtb \ > sun5i-a13-olinuxino-micro.dtb \ > sun5i-a13-pocketbook-touch-lux-3.dtb \ > + sun5i-a13-pocketbook-614-plus.dtb \ > sun5i-a13-q8-tablet.dtb \ > sun5i-a13-utoo-p66.dtb \ > sun5i-gr8-chip-pro.dtb \ > diff --git a/arch/arm/boot/dts/allwinner/sun5i-a13-pocketbook-614-plus.dts b/arch/arm/boot/dts/allwinner/sun5i-a13-pocketbook-614-plus.dts > new file mode 100644 > index 000000000000..b5449301789a > --- /dev/null > +++ b/arch/arm/boot/dts/allwinner/sun5i-a13-pocketbook-614-plus.dts > @@ -0,0 +1,215 @@ > +// SPDX-License-Identifier: GPL-2.0+ > +/* > + * Copyright 2024 Denis Burkov <hitechshell@xxxxxxx> > + */ > + > +/dts-v1/; > +#include "sun5i-a13.dtsi" > +#include "sunxi-common-regulators.dtsi" > + > +#include <dt-bindings/gpio/gpio.h> > +#include <dt-bindings/input/input.h> > +#include <dt-bindings/interrupt-controller/irq.h> > + > +/ { > + model = "PocketBook 614 Plus"; > + compatible = "pocketbook,614-plus", "allwinner,sun5i-a13"; > + > + aliases { > + serial0 = &uart1; > + }; > + > + chosen { > + stdout-path = "serial0:115200n8"; > + }; > + > + leds { > + compatible = "gpio-leds"; > + > + led { led-0 is preferred by the DT binding. Please also add function and color properties. Please run DT check with W=2 to catch andy other potential issues. Best regards, Jernej > + gpios = <&pio 4 8 GPIO_ACTIVE_LOW>; /* PE8 */ > + default-state = "on"; > + }; > + }; > + > + gpio-keys { > + compatible = "gpio-keys"; > + > + key-right { Key node names should contain key-[number], starting with 0. > + label = "Right"; > + linux,code = <KEY_NEXT>; > + gpios = <&pio 6 9 GPIO_ACTIVE_LOW>; /* PG9 */ > + }; > + > + key-left { > + label = "Left"; > + linux,code = <KEY_PREVIOUS>; > + gpios = <&pio 6 10 GPIO_ACTIVE_LOW>; /* PG10 */ > + }; > + }; > + > + reg_3v3_mmc0: regulator-mmc0 { > + compatible = "regulator-fixed"; > + regulator-name = "vdd-mmc0"; > + regulator-min-microvolt = <3300000>; > + regulator-max-microvolt = <3300000>; > + gpio = <&pio 4 4 GPIO_ACTIVE_LOW>; /* PE4 */ > + vin-supply = <®_vcc3v3>; > + }; > +}; > + > +&cpu0 { > + cpu-supply = <®_dcdc2>; > +}; > + > +&ehci0 { > + status = "okay"; > +}; > + > +&i2c0 { > + status = "okay"; > + > + axp209: pmic@34 { > + compatible = "x-powers,axp209"; > + reg = <0x34>; > + interrupts = <0>; > + }; > +}; > + > +#include "axp209.dtsi" > + > +&i2c1 { > + status = "okay"; > + > + pcf8563: rtc@51 { > + compatible = "nxp,pcf8563"; > + reg = <0x51>; > + #clock-cells = <0>; > + }; > +}; > + > +&lradc { > + vref-supply = <®_ldo2>; > + status = "okay"; > + > + button-300 { > + label = "Down"; > + linux,code = <KEY_DOWN>; > + channel = <0>; > + voltage = <300000>; > + }; > + > + button-700 { > + label = "Up"; > + linux,code = <KEY_UP>; > + channel = <0>; > + voltage = <700000>; > + }; > + > + button-1000 { > + label = "Left"; > + linux,code = <KEY_LEFT>; > + channel = <0>; > + voltage = <1000000>; > + }; > + > + button-1200 { > + label = "Menu"; > + linux,code = <KEY_MENU>; > + channel = <0>; > + voltage = <1200000>; > + }; > + > + button-1500 { > + label = "Right"; > + linux,code = <KEY_RIGHT>; > + channel = <0>; > + voltage = <1500000>; > + }; > +}; > + > +&mmc0 { > + vmmc-supply = <®_3v3_mmc0>; > + bus-width = <4>; > + cd-gpios = <&pio 6 0 GPIO_ACTIVE_LOW>; /* PG0 */ > + status = "okay"; > +}; > + > +&mmc2 { > + pinctrl-names = "default"; > + pinctrl-0 = <&mmc2_4bit_pc_pins>; > + vmmc-supply = <®_vcc3v3>; > + bus-width = <4>; > + non-removable; > + status = "okay"; > +}; > + > +&ohci0 { > + status = "okay"; > +}; > + > +&otg_sram { > + status = "okay"; > +}; > + > +®_dcdc2 { > + regulator-always-on; > + regulator-min-microvolt = <1000000>; > + regulator-max-microvolt = <1500000>; > + regulator-name = "vdd-cpu"; > +}; > + > +®_dcdc3 { > + regulator-always-on; > + regulator-min-microvolt = <1000000>; > + regulator-max-microvolt = <1400000>; > + regulator-name = "vdd-int-dll"; > +}; > + > +®_ldo1 { > + regulator-name = "vdd-rtc"; > +}; > + > +®_ldo2 { > + regulator-always-on; > + regulator-min-microvolt = <3000000>; > + regulator-max-microvolt = <3000000>; > + regulator-name = "avcc"; > +}; > + > +®_usb0_vbus { > + status = "okay"; > + gpio = <&pio 6 12 GPIO_ACTIVE_HIGH>; /* PG12 */ > +}; > + > +®_usb1_vbus { > + gpio = <&pio 6 11 GPIO_ACTIVE_HIGH>; /* PG11 */ > + status = "okay"; > +}; > + > +&uart1 { > + pinctrl-names = "default"; > + pinctrl-0 = <&uart1_pg_pins>; > + status = "okay"; > +}; > + > +&usb_otg { > + dr_mode = "otg"; > + status = "okay"; > +}; > + > +&usb_power_supply { > + status = "okay"; > +}; > + > +&battery_power_supply { > + status = "okay"; > +}; > + > +&usbphy { > + usb0_id_det-gpios = <&pio 6 2 GPIO_ACTIVE_HIGH>; /* PG2 */ > + usb0_vbus_det-gpios = <&axp_gpio 1 GPIO_ACTIVE_HIGH>; > + usb0_vbus-supply = <®_usb0_vbus>; > + usb1_vbus-supply = <®_usb1_vbus>; > + status = "okay"; > +}; >