Re: [PATCH v2 2/2] ARM: dts: sun5i: Add PocketBook 614 Plus support

From: Jernej Škrabec
Date: Tue Mar 26 2024 - 18:37:42 EST


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 = <&reg_vcc3v3>;
> + };
> +};
> +
> +&cpu0 {
> + cpu-supply = <&reg_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 = <&reg_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 = <&reg_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 = <&reg_vcc3v3>;
> + bus-width = <4>;
> + non-removable;
> + status = "okay";
> +};
> +
> +&ohci0 {
> + status = "okay";
> +};
> +
> +&otg_sram {
> + status = "okay";
> +};
> +
> +&reg_dcdc2 {
> + regulator-always-on;
> + regulator-min-microvolt = <1000000>;
> + regulator-max-microvolt = <1500000>;
> + regulator-name = "vdd-cpu";
> +};
> +
> +&reg_dcdc3 {
> + regulator-always-on;
> + regulator-min-microvolt = <1000000>;
> + regulator-max-microvolt = <1400000>;
> + regulator-name = "vdd-int-dll";
> +};
> +
> +&reg_ldo1 {
> + regulator-name = "vdd-rtc";
> +};
> +
> +&reg_ldo2 {
> + regulator-always-on;
> + regulator-min-microvolt = <3000000>;
> + regulator-max-microvolt = <3000000>;
> + regulator-name = "avcc";
> +};
> +
> +&reg_usb0_vbus {
> + status = "okay";
> + gpio = <&pio 6 12 GPIO_ACTIVE_HIGH>; /* PG12 */
> +};
> +
> +&reg_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 = <&reg_usb0_vbus>;
> + usb1_vbus-supply = <&reg_usb1_vbus>;
> + status = "okay";
> +};
>