[PATCH 0/7] Pine64 PineCube support

79 views
Skip to first unread message

Icenowy Zheng

unread,
Sep 22, 2020, 8:57:42 PM9/22/20
to Rob Herring, Maxime Ripard, Chen-Yu Tsai, devic...@vger.kernel.org, linux-ar...@lists.infradead.org, linux-...@vger.kernel.org, linux...@googlegroups.com, Icenowy Zheng
Pine64 PineCube is an IP camera based on Allwinner S3 chip.

This patchset tries to add support for it.

In order to make sure the system do not hang when camera is brought up,
a fix to AXP209 driver is needed (sent individually), otherwise the
system will hang because it changes the voltage of LDO2 when LDO4
tweaking.

Icenowy Zheng (7):
ARM: dts: sun8i: V3/V3s/S3/S3L: add Ethernet support
ARM: dts: sun8i: V3/V3s/S3/S3L: add pinctrl for UART2 RX/TX
ARM: dts: sun8i: V3/V3s/S3/S3L: add CSI1 device node
ARM: dts: sun8i: V3/V3s/S3/S3L: add pinctrl for 8-bit parallel CSI
ARM: dts: sun8i: V3/V3s/S3/S3L: add pinctrl for I2C1 at PE bank
dt-bindings: arm: sunxi: add Pine64 PineCube binding
ARM: dts: sun8i: s3l: add support for Pine64 PineCube IP camera

.../devicetree/bindings/arm/sunxi.yaml | 5 +
arch/arm/boot/dts/Makefile | 1 +
arch/arm/boot/dts/sun8i-s3-pinecube.dts | 235 ++++++++++++++++++
arch/arm/boot/dts/sun8i-v3.dtsi | 13 +
arch/arm/boot/dts/sun8i-v3s.dtsi | 91 +++++++
5 files changed, 345 insertions(+)
create mode 100644 arch/arm/boot/dts/sun8i-s3-pinecube.dts

--
2.27.0

Icenowy Zheng

unread,
Sep 22, 2020, 8:57:53 PM9/22/20
to Rob Herring, Maxime Ripard, Chen-Yu Tsai, devic...@vger.kernel.org, linux-ar...@lists.infradead.org, linux-...@vger.kernel.org, linux...@googlegroups.com, Icenowy Zheng
The Allwinner V3/V3s/S3L/SoChip S3 Ethernet MAC and internal PHY is quite
similar to the ones on Allwinner H3, except for V3s the external MII is
not wired out.

Add ethernet support to V3/V3s/S3/S3L.

Signed-off-by: Icenowy Zheng <ice...@aosc.io>
---
arch/arm/boot/dts/sun8i-v3.dtsi | 13 ++++++++
arch/arm/boot/dts/sun8i-v3s.dtsi | 52 ++++++++++++++++++++++++++++++++
2 files changed, 65 insertions(+)

diff --git a/arch/arm/boot/dts/sun8i-v3.dtsi b/arch/arm/boot/dts/sun8i-v3.dtsi
index 6ae8645ade50..ca4672ed2e02 100644
--- a/arch/arm/boot/dts/sun8i-v3.dtsi
+++ b/arch/arm/boot/dts/sun8i-v3.dtsi
@@ -9,6 +9,19 @@ &ccu {
compatible = "allwinner,sun8i-v3-ccu";
};

+&emac {
+ /delete-property/ phy-handle;
+ /delete-property/ phy-mode;
+};
+
+&mdio_mux {
+ external_mdio: mdio@2 {
+ reg = <2>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ };
+};
+
&pio {
compatible = "allwinner,sun8i-v3-pinctrl";
};
diff --git a/arch/arm/boot/dts/sun8i-v3s.dtsi b/arch/arm/boot/dts/sun8i-v3s.dtsi
index 6eb9c39aa93f..7d40897dab09 100644
--- a/arch/arm/boot/dts/sun8i-v3s.dtsi
+++ b/arch/arm/boot/dts/sun8i-v3s.dtsi
@@ -138,6 +138,15 @@ mixer0_out_tcon0: endpoint {
};
};

+ syscon: system-control@1c00000 {
+ compatible = "allwinner,sun8i-v3s-system-control",
+ "allwinner,sun8i-h3-system-control";
+ reg = <0x01c00000 0x1000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges;
+ };
+
tcon0: lcd-controller@1c0c000 {
compatible = "allwinner,sun8i-v3s-tcon";
reg = <0x01c0c000 0x1000>;
@@ -415,6 +424,49 @@ i2c1: i2c@1c2b000 {
#size-cells = <0>;
};

+ emac: ethernet@1c30000 {
+ compatible = "allwinner,sun8i-v3s-emac";
+ syscon = <&syscon>;
+ reg = <0x01c30000 0x10000>;
+ interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "macirq";
+ resets = <&ccu RST_BUS_EMAC>;
+ reset-names = "stmmaceth";
+ clocks = <&ccu CLK_BUS_EMAC>;
+ clock-names = "stmmaceth";
+ phy-handle = <&int_mii_phy>;
+ phy-mode = "mii";
+ status = "disabled";
+
+ mdio: mdio {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ compatible = "snps,dwmac-mdio";
+ };
+
+ mdio_mux: mdio-mux {
+ compatible = "allwinner,sun8i-h3-mdio-mux";
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ mdio-parent-bus = <&mdio>;
+ /* Only one MDIO is usable at the time */
+ internal_mdio: mdio@1 {
+ compatible = "allwinner,sun8i-h3-mdio-internal";
+ reg = <1>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ int_mii_phy: ethernet-phy@1 {
+ compatible = "ethernet-phy-ieee802.3-c22";
+ reg = <1>;
+ clocks = <&ccu CLK_BUS_EPHY>;
+ resets = <&ccu RST_BUS_EPHY>;
+ };
+ };
+ };
+ };
+
spi0: spi@1c68000 {
compatible = "allwinner,sun8i-h3-spi";
reg = <0x01c68000 0x1000>;
--
2.27.0

Icenowy Zheng

unread,
Sep 22, 2020, 8:59:20 PM9/22/20
to Rob Herring, Maxime Ripard, Chen-Yu Tsai, devic...@vger.kernel.org, linux-ar...@lists.infradead.org, linux-...@vger.kernel.org, linux...@googlegroups.com, Icenowy Zheng
The UART2 RX/TX pins on Allwinner V3 series is at PB0/1, which is used
as debugging UART on some boards.

Add pinctrl node for them.

Signed-off-by: Icenowy Zheng <ice...@aosc.io>
---
arch/arm/boot/dts/sun8i-v3s.dtsi | 7 +++++++
1 file changed, 7 insertions(+)

diff --git a/arch/arm/boot/dts/sun8i-v3s.dtsi b/arch/arm/boot/dts/sun8i-v3s.dtsi
index 7d40897dab09..4cfdf193cf88 100644
--- a/arch/arm/boot/dts/sun8i-v3s.dtsi
+++ b/arch/arm/boot/dts/sun8i-v3s.dtsi
@@ -322,6 +322,11 @@ uart0_pb_pins: uart0-pb-pins {
function = "uart0";
};

+ uart2_pins: uart2-pins {
+ pins = "PB0", "PB1";
+ function = "uart2";
+ };
+
mmc0_pins: mmc0-pins {
pins = "PF0", "PF1", "PF2", "PF3",
"PF4", "PF5";
@@ -397,6 +402,8 @@ uart2: serial@1c28800 {
reg-io-width = <4>;
clocks = <&ccu CLK_BUS_UART2>;
resets = <&ccu RST_BUS_UART2>;
+ pinctrl-0 = <&uart2_pins>;
+ pinctrl-names = "default";
status = "disabled";
};

--
2.27.0

Icenowy Zheng

unread,
Sep 22, 2020, 8:59:24 PM9/22/20
to Rob Herring, Maxime Ripard, Chen-Yu Tsai, devic...@vger.kernel.org, linux-ar...@lists.infradead.org, linux-...@vger.kernel.org, linux...@googlegroups.com, Icenowy Zheng
The CSI1 controller of V3/V3s/S3/S3L chips is used for parallel CSI.

Add the device tree node of it.

Signed-off-by: Icenowy Zheng <ice...@aosc.io>
---
arch/arm/boot/dts/sun8i-v3s.dtsi | 12 ++++++++++++
1 file changed, 12 insertions(+)

diff --git a/arch/arm/boot/dts/sun8i-v3s.dtsi b/arch/arm/boot/dts/sun8i-v3s.dtsi
index 4cfdf193cf88..3e079973672d 100644
--- a/arch/arm/boot/dts/sun8i-v3s.dtsi
+++ b/arch/arm/boot/dts/sun8i-v3s.dtsi
@@ -488,6 +488,18 @@ spi0: spi@1c68000 {
#size-cells = <0>;
};

+ csi1: camera@1cb4000 {
+ compatible = "allwinner,sun8i-v3s-csi";
+ reg = <0x01cb4000 0x3000>;
+ interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&ccu CLK_BUS_CSI>,
+ <&ccu CLK_CSI1_SCLK>,
+ <&ccu CLK_DRAM_CSI>;
+ clock-names = "bus", "mod", "ram";
+ resets = <&ccu RST_BUS_CSI>;
+ status = "disabled";
+ };
+
gic: interrupt-controller@1c81000 {
compatible = "arm,gic-400";
reg = <0x01c81000 0x1000>,
--
2.27.0

Icenowy Zheng

unread,
Sep 22, 2020, 9:01:42 PM9/22/20
to Rob Herring, Maxime Ripard, Chen-Yu Tsai, devic...@vger.kernel.org, linux-ar...@lists.infradead.org, linux-...@vger.kernel.org, linux...@googlegroups.com, Icenowy Zheng
The CSI1 controller of V3/V3s/S3/S3L SoCs is used for parallel CSI.

As we're going to add support for Pine64 SCC board, which uses 8-bit
parallel CSI (and the MCLK output), add the pinctrl node of 8-bit
CSI and MCLK to the DTSI file.

Signed-off-by: Icenowy Zheng <ice...@aosc.io>
---
arch/arm/boot/dts/sun8i-v3s.dtsi | 14 ++++++++++++++
1 file changed, 14 insertions(+)

diff --git a/arch/arm/boot/dts/sun8i-v3s.dtsi b/arch/arm/boot/dts/sun8i-v3s.dtsi
index 3e079973672d..19fba1a9115b 100644
--- a/arch/arm/boot/dts/sun8i-v3s.dtsi
+++ b/arch/arm/boot/dts/sun8i-v3s.dtsi
@@ -312,6 +312,20 @@ pio: pinctrl@1c20800 {
interrupt-controller;
#interrupt-cells = <3>;

+ /omit-if-no-ref/
+ csi1_8bit_pins: csi1-8bit-pins {
+ pins = "PE0", "PE2", "PE3", "PE8", "PE9",
+ "PE10", "PE11", "PE12", "PE13", "PE14",
+ "PE15";
+ function = "csi";
+ };
+
+ /omit-if-no-ref/
+ csi1_mclk_pin: csi1-mclk-pin {
+ pins = "PE1";
+ function = "csi";
+ };
+
i2c0_pins: i2c0-pins {
pins = "PB6", "PB7";
function = "i2c0";
--
2.27.0

Icenowy Zheng

unread,
Sep 22, 2020, 9:04:54 PM9/22/20
to Rob Herring, Maxime Ripard, Chen-Yu Tsai, devic...@vger.kernel.org, linux-ar...@lists.infradead.org, linux-...@vger.kernel.org, linux...@googlegroups.com, Icenowy Zheng
I2C1 controller is available at PE bank, usually used for
connecting an I2C-controlled camera sensor.

Add pinctrl node for it.

Signed-off-by: Icenowy Zheng <ice...@aosc.io>
---
arch/arm/boot/dts/sun8i-v3s.dtsi | 6 ++++++
1 file changed, 6 insertions(+)

diff --git a/arch/arm/boot/dts/sun8i-v3s.dtsi b/arch/arm/boot/dts/sun8i-v3s.dtsi
index 19fba1a9115b..bae8fa9e356a 100644
--- a/arch/arm/boot/dts/sun8i-v3s.dtsi
+++ b/arch/arm/boot/dts/sun8i-v3s.dtsi
@@ -331,6 +331,12 @@ i2c0_pins: i2c0-pins {
function = "i2c0";
};

+ /omit-if-no-ref/
+ i2c1_pe_pins: i2c1-pe-pins {
+ pins = "PE21", "PE22";
+ function = "i2c1";
+ };
+
uart0_pb_pins: uart0-pb-pins {
pins = "PB8", "PB9";
function = "uart0";
--
2.27.0

Icenowy Zheng

unread,
Sep 22, 2020, 9:04:57 PM9/22/20
to Rob Herring, Maxime Ripard, Chen-Yu Tsai, devic...@vger.kernel.org, linux-ar...@lists.infradead.org, linux-...@vger.kernel.org, linux...@googlegroups.com, Icenowy Zheng
The CSI1 controller of V3/V3s/S3/S3L SoCs is used for parallel CSI.

As we're going to add support for Pine64 SCC board, which uses 8-bit
parallel CSI (and the MCLK output), add the pinctrl node of 8-bit
CSI and MCLK to the DTSI file.

Signed-off-by: Icenowy Zheng <ice...@aosc.io>
---
arch/arm/boot/dts/sun8i-v3s.dtsi | 14 ++++++++++++++
1 file changed, 14 insertions(+)

diff --git a/arch/arm/boot/dts/sun8i-v3s.dtsi b/arch/arm/boot/dts/sun8i-v3s.dtsi
index 3e079973672d..19fba1a9115b 100644
--- a/arch/arm/boot/dts/sun8i-v3s.dtsi
+++ b/arch/arm/boot/dts/sun8i-v3s.dtsi

Icenowy Zheng

unread,
Sep 22, 2020, 9:04:57 PM9/22/20
to Rob Herring, Maxime Ripard, Chen-Yu Tsai, devic...@vger.kernel.org, linux-ar...@lists.infradead.org, linux-...@vger.kernel.org, linux...@googlegroups.com, Icenowy Zheng
The Pine64 PineCube IP camera is an IP camera with SoChip S3 SoC.

It comes with a main board, an expansion board and a camera.

The main board features a Micro-USB power-only jack, a USB Type-A port,
an Ethernet port connected to the internal PHY of the SoC and a Realtek
RTL8189ES SDIO Wi-Fi module. A RGB LCD connector is reserved on the
board.

The expansion board features a TF slot, a microphone, a speaker
connector with on-board amplifier and a few IR LEDs.

Add support for the kit, with features on the main board and the
expansion board now.

Signed-off-by: Icenowy Zheng <ice...@aosc.io>
---
arch/arm/boot/dts/Makefile | 1 +
arch/arm/boot/dts/sun8i-s3-pinecube.dts | 235 ++++++++++++++++++++++++
2 files changed, 236 insertions(+)
create mode 100644 arch/arm/boot/dts/sun8i-s3-pinecube.dts

diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index e7c59d0c8598..b163c8f1cefc 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -1198,6 +1198,7 @@ dtb-$(CONFIG_MACH_SUN8I) += \
sun8i-r16-parrot.dtb \
sun8i-r40-bananapi-m2-ultra.dtb \
sun8i-s3-lichee-zero-plus.dtb \
+ sun8i-s3-pinecube.dtb \
sun8i-t3-cqa3t-bv3.dtb \
sun8i-v3s-licheepi-zero.dtb \
sun8i-v3s-licheepi-zero-dock.dtb \
diff --git a/arch/arm/boot/dts/sun8i-s3-pinecube.dts b/arch/arm/boot/dts/sun8i-s3-pinecube.dts
new file mode 100644
index 000000000000..9bab6b7f4014
--- /dev/null
+++ b/arch/arm/boot/dts/sun8i-s3-pinecube.dts
@@ -0,0 +1,235 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR X11)
+/*
+ * Copyright 2019 Icenowy Zheng <ice...@aosc.io>
+ */
+
+/dts-v1/;
+#include "sun8i-v3.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "PineCube IP Camera";
+ compatible = "pine64,pinecube", "allwinner,sun8i-s3";
+
+ aliases {
+ serial0 = &uart2;
+ };
+
+ chosen {
+ stdout-path = "serial0:115200n8";
+ };
+
+ leds {
+ compatible = "gpio-leds";
+
+ led1 {
+ label = "pine64:ir:led1";
+ gpios = <&pio 1 10 GPIO_ACTIVE_LOW>; /* PB10 */
+ };
+
+ led2 {
+ label = "pine64:ir:led2";
+ gpios = <&pio 1 12 GPIO_ACTIVE_LOW>; /* PB12 */
+ };
+ };
+
+ reg_vcc5v0: vcc5v0 {
+ compatible = "regulator-fixed";
+ regulator-name = "vcc5v0";
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ };
+
+ reg_vcc_wifi: vcc-wifi {
+ compatible = "regulator-fixed";
+ regulator-name = "vcc-wifi";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ gpio = <&pio 1 2 GPIO_ACTIVE_LOW>; /* PB2 WIFI-EN */
+ vin-supply = <&reg_dcdc3>;
+ startup-delay-us = <200000>;
+ };
+
+ wifi_pwrseq: wifi_pwrseq {
+ compatible = "mmc-pwrseq-simple";
+ reset-gpios = <&pio 1 3 GPIO_ACTIVE_LOW>; /* PB3 WIFI-RST */
+ post-power-on-delay-ms = <200>;
+ };
+};
+
+&csi1 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&csi1_8bit_pins>;
+ status = "okay";
+
+ port {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ csi1_ep: endpoint {
+ remote-endpoint = <&ov5640_ep>;
+ bus-width = <8>;
+ hsync-active = <1>; /* Active high */
+ vsync-active = <0>; /* Active low */
+ data-active = <1>; /* Active high */
+ pclk-sample = <1>; /* Rising */
+ };
+ };
+};
+
+&emac {
+ phy-handle = <&int_mii_phy>;
+ phy-mode = "mii";
+ status = "okay";
+};
+
+&i2c0 {
+ status = "okay";
+
+ axp209: pmic@34 {
+ compatible = "x-powers,axp203",
+ "x-powers,axp209";
+ reg = <0x34>;
+ interrupt-parent = <&gic>;
+ interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-controller;
+ #interrupt-cells = <1>;
+ };
+};
+
+&i2c1 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&i2c1_pe_pins>;
+ status = "okay";
+
+ ov5640: camera@3c {
+ compatible = "ovti,ov5640";
+ reg = <0x3c>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&csi1_mclk_pin>;
+ clocks = <&ccu CLK_CSI1_MCLK>;
+ clock-names = "xclk";
+
+ AVDD-supply = <&reg_ldo3>;
+ DOVDD-supply = <&reg_ldo3>;
+ DVDD-supply = <&reg_ldo4>;
+ reset-gpios = <&pio 4 23 GPIO_ACTIVE_LOW>; /* PE23 */
+ powerdown-gpios = <&pio 4 24 GPIO_ACTIVE_HIGH>; /* PE24 */
+
+ port {
+ ov5640_ep: endpoint {
+ remote-endpoint = <&csi1_ep>;
+ bus-width = <8>;
+ hsync-active = <1>; /* Active high */
+ vsync-active = <0>; /* Active low */
+ data-active = <1>; /* Active high */
+ pclk-sample = <1>; /* Rising */
+ };
+ };
+ };
+};
+
+&lradc {
+ vref-supply = <&reg_ldo2>;
+ status = "okay";
+
+ button-200 {
+ label = "Setup";
+ linux,code = <KEY_SETUP>;
+ channel = <0>;
+ voltage = <190000>;
+ };
+};
+
+&mmc0 {
+ vmmc-supply = <&reg_dcdc3>;
+ bus-width = <4>;
+ cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>;
+ status = "okay";
+};
+
+&mmc1 {
+ vmmc-supply = <&reg_vcc_wifi>;
+ vqmmc-supply = <&reg_dcdc3>;
+ mmc-pwrseq = <&wifi_pwrseq>;
+ bus-width = <4>;
+ non-removable;
+ status = "okay";
+};
+
+&pio {
+ vcc-pd-supply = <&reg_dcdc3>;
+ vcc-pe-supply = <&reg_ldo3>;
+};
+
+#include "axp209.dtsi"
+
+&ac_power_supply {
+ status = "okay";
+};
+
+&reg_dcdc2 {
+ regulator-always-on;
+ regulator-min-microvolt = <1250000>;
+ regulator-max-microvolt = <1250000>;
+ regulator-name = "vdd-sys-cpu-ephy";
+};
+
+&reg_dcdc3 {
+ regulator-always-on;
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-name = "vcc-3v3";
+};
+
+&reg_ldo1 {
+ regulator-name = "vdd-rtc";
+};
+
+&reg_ldo2 {
+ regulator-always-on;
+ regulator-min-microvolt = <3000000>;
+ regulator-max-microvolt = <3000000>;
+ regulator-name = "avcc";
+};
+
+&reg_ldo3 {
+ regulator-min-microvolt = <2800000>;
+ regulator-max-microvolt = <2800000>;
+ regulator-name = "avdd-dovdd-2v8-csi";
+ regulator-soft-start;
+ regulator-ramp-delay = <1600>;
+};
+
+&reg_ldo4 {
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-name = "dvdd-1v8-csi";
+};
+
+&spi0 {
+ status = "okay";
+
+ flash@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "winbond,w25q128", "jedec,spi-nor";
+ reg = <0>;
+ spi-max-frequency = <40000000>;
+ };
+};
+
+&uart2 {
+ status = "okay";
+};
+
+&usb_otg {
+ dr_mode = "host";
+ status = "okay";
+};
+
+&usbphy {
+ usb0_vbus-supply = <&reg_vcc5v0>;
+ status = "okay";
+};
--
2.27.0

Icenowy Zheng

unread,
Sep 22, 2020, 9:04:58 PM9/22/20
to Rob Herring, Maxime Ripard, Chen-Yu Tsai, devic...@vger.kernel.org, linux-ar...@lists.infradead.org, linux-...@vger.kernel.org, linux...@googlegroups.com, Icenowy Zheng
Document board compatible names for Pine64 PineCube IP camera.

Signed-off-by: Icenowy Zheng <ice...@aosc.io>
---
Documentation/devicetree/bindings/arm/sunxi.yaml | 5 +++++
1 file changed, 5 insertions(+)

diff --git a/Documentation/devicetree/bindings/arm/sunxi.yaml b/Documentation/devicetree/bindings/arm/sunxi.yaml
index 5957a22c2e95..584b3fbf6e08 100644
--- a/Documentation/devicetree/bindings/arm/sunxi.yaml
+++ b/Documentation/devicetree/bindings/arm/sunxi.yaml
@@ -631,6 +631,11 @@ properties:
- const: pine64,pine64-plus
- const: allwinner,sun50i-a64

+ - description: Pine64 PineCube
+ items:
+ - const: pine64,pinecube
+ - const: allwinner,sun8i-v3
+
- description: Pine64 PineH64 model A
items:
- const: pine64,pine-h64
--
2.27.0

Maxime Ripard

unread,
Sep 25, 2020, 11:12:54 AM9/25/20
to Icenowy Zheng, Rob Herring, Chen-Yu Tsai, devic...@vger.kernel.org, linux-ar...@lists.infradead.org, linux-...@vger.kernel.org, linux...@googlegroups.com
Hi,

On Wed, Sep 23, 2020 at 08:57:02AM +0800, Icenowy Zheng wrote:
> Pine64 PineCube is an IP camera based on Allwinner S3 chip.
>
> This patchset tries to add support for it.
>
> In order to make sure the system do not hang when camera is brought up,
> a fix to AXP209 driver is needed (sent individually), otherwise the
> system will hang because it changes the voltage of LDO2 when LDO4
> tweaking.

Queued all the patches for 5.11

> Icenowy Zheng (7):
> ARM: dts: sun8i: V3/V3s/S3/S3L: add Ethernet support
> ARM: dts: sun8i: V3/V3s/S3/S3L: add pinctrl for UART2 RX/TX
> ARM: dts: sun8i: V3/V3s/S3/S3L: add CSI1 device node
> ARM: dts: sun8i: V3/V3s/S3/S3L: add pinctrl for 8-bit parallel CSI
> ARM: dts: sun8i: V3/V3s/S3/S3L: add pinctrl for I2C1 at PE bank
> dt-bindings: arm: sunxi: add Pine64 PineCube binding
> ARM: dts: sun8i: s3l: add support for Pine64 PineCube IP camera

However, I guess for the next patches to the v3s DTSI we should just
have a simpler prefix (like v3), it's really taking a lot of characters
here :)

Maxime
signature.asc

Clément Péron

unread,
Oct 3, 2020, 6:28:18 AM10/3/20
to Maxime Ripard, Icenowy Zheng, Rob Herring, Chen-Yu Tsai, devicetree, linux-arm-kernel, linux-kernel, linux-sunxi
Hi,

I was running dtbs_check and found this series introduced new warnings.

DTC arch/arm/boot/dts/sun8i-s3-pinecube.dtb
DTC arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml
CHECK arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml
/arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml: system-control@1c00000:
compatible: ['allwinner,sun8i-v3s-system-control',
'allwinner,sun8i-h3-system-control'] is not valid under any of the
given schemas (Possible causes of the failure):
/arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml: system-control@1c00000:
compatible: Additional items are not allowed
('allwinner,sun8i-h3-system-control' was unexpected)
/arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml: system-control@1c00000:
compatible:0: 'allwinner,sun4i-a10-sram-controller' was expected
/arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml: system-control@1c00000:
compatible:0: 'allwinner,sun4i-a10-system-control' was expected
/arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml: system-control@1c00000:
compatible:0: 'allwinner,sun5i-a13-system-control' was expected
/arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml: system-control@1c00000:
compatible:0: 'allwinner,sun7i-a20-system-control' was expected
/arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml: system-control@1c00000:
compatible:0: 'allwinner,sun8i-a23-system-control' was expected
/arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml: system-control@1c00000:
compatible:0: 'allwinner,sun8i-h3-system-control' was expected
/arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml: system-control@1c00000:
compatible:0: 'allwinner,sun8i-r40-system-control' was expected
/arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml: system-control@1c00000:
compatible:0: 'allwinner,sun50i-a64-sram-controller' was expected
/arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml: system-control@1c00000:
compatible:0: 'allwinner,sun50i-a64-system-control' was expected
/arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml: system-control@1c00000:
compatible:0: 'allwinner,sun50i-h5-system-control' was expected
/arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml: system-control@1c00000:
compatible:0: 'allwinner,sun50i-h6-system-control' was expected
/arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml: system-control@1c00000:
compatible:0: 'allwinner,suniv-f1c100s-system-control' was expected
/arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml: system-control@1c00000:
compatible:1: 'allwinner,sun4i-a10-system-control' was expected
/arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml: system-control@1c00000:
compatible:1: 'allwinner,sun4i-a10-system-control' was expected
/arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml: system-control@1c00000:
compatible:1: 'allwinner,sun50i-a64-system-control' was expected
/arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml: system-control@1c00000:
compatible:1: 'allwinner,sun4i-a10-system-control' was expected

From schema: /Documentation/devicetree/bindings/sram/allwinner,sun4i-a10-system-control.yaml
/arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml: camera@1cb4000: port:
'#address-cells', '#size-cells' do not match any of the regexes:
'pinctrl-[0-9]+'
From schema: /Documentation/devicetree/bindings/media/allwinner,sun6i-a31-csi.yaml

And also some other boards
/arch/arm/boot/dts/sun8i-s3-lichee-zero-plus.dt.yaml:
system-control@1c00000: compatible:
['allwinner,sun8i-v3s-system-control',
'allwinner,sun8i-h3-system-control'] is not valid under any of the
given schemas (Possible causes of the failure):
/arch/arm/boot/dts/sun8i-s3-lichee-zero-plus.dt.yaml:
system-control@1c00000: compatible: Additional items are not allowed
('allwinner,sun8i-h3-system-control' was unexpected)
/arch/arm/boot/dts/sun8i-s3-lichee-zero-plus.dt.yaml:
system-control@1c00000: compatible:0:
'allwinner,sun4i-a10-sram-controller' was expected
/arch/arm/boot/dts/sun8i-s3-lichee-zero-plus.dt.yaml:
system-control@1c00000: compatible:0:
'allwinner,sun4i-a10-system-control' was expected
/arch/arm/boot/dts/sun8i-s3-lichee-zero-plus.dt.yaml:
system-control@1c00000: compatible:0:
'allwinner,sun5i-a13-system-control' was expected
/arch/arm/boot/dts/sun8i-s3-lichee-zero-plus.dt.yaml:
system-control@1c00000: compatible:0:
'allwinner,sun7i-a20-system-control' was expected
/arch/arm/boot/dts/sun8i-s3-lichee-zero-plus.dt.yaml:
system-control@1c00000: compatible:0:
'allwinner,sun8i-a23-system-control' was expected
/arch/arm/boot/dts/sun8i-s3-lichee-zero-plus.dt.yaml:
system-control@1c00000: compatible:0:
'allwinner,sun8i-h3-system-control' was expected
/arch/arm/boot/dts/sun8i-s3-lichee-zero-plus.dt.yaml:
system-control@1c00000: compatible:0:
'allwinner,sun8i-r40-system-control' was expected
/arch/arm/boot/dts/sun8i-s3-lichee-zero-plus.dt.yaml:
system-control@1c00000: compatible:0:
'allwinner,sun50i-a64-sram-controller' was expected
/arch/arm/boot/dts/sun8i-s3-lichee-zero-plus.dt.yaml:
system-control@1c00000: compatible:0:
'allwinner,sun50i-a64-system-control' was expected
/arch/arm/boot/dts/sun8i-s3-lichee-zero-plus.dt.yaml:
system-control@1c00000: compatible:0:
'allwinner,sun50i-h5-system-control' was expected
/arch/arm/boot/dts/sun8i-s3-lichee-zero-plus.dt.yaml:
system-control@1c00000: compatible:0:
'allwinner,sun50i-h6-system-control' was expected
/arch/arm/boot/dts/sun8i-s3-lichee-zero-plus.dt.yaml:
system-control@1c00000: compatible:0:
'allwinner,suniv-f1c100s-system-control' was expected
/arch/arm/boot/dts/sun8i-s3-lichee-zero-plus.dt.yaml:
system-control@1c00000: compatible:1:
'allwinner,sun4i-a10-system-control' was expected
/arch/arm/boot/dts/sun8i-s3-lichee-zero-plus.dt.yaml:
system-control@1c00000: compatible:1:
'allwinner,sun4i-a10-system-control' was expected
/arch/arm/boot/dts/sun8i-s3-lichee-zero-plus.dt.yaml:
system-control@1c00000: compatible:1:
'allwinner,sun50i-a64-system-control' was expected
/arch/arm/boot/dts/sun8i-s3-lichee-zero-plus.dt.yaml:
system-control@1c00000: compatible:1:
'allwinner,sun4i-a10-system-control' was expected

From schema: /Documentation/devicetree/bindings/sram/allwinner,sun4i-a10-system-control.yaml
/arch/arm/boot/dts/sun8i-v3s-licheepi-zero.dt.yaml:
system-control@1c00000: compatible:
['allwinner,sun8i-v3s-system-control',
'allwinner,sun8i-h3-system-control'] is not valid under any of the
given schemas (Possible causes of the failure):
/arch/arm/boot/dts/sun8i-v3s-licheepi-zero.dt.yaml:
system-control@1c00000: compatible: Additional items are not allowed
('allwinner,sun8i-h3-system-control' was unexpected)
/arch/arm/boot/dts/sun8i-v3s-licheepi-zero.dt.yaml:
system-control@1c00000: compatible:0:
'allwinner,sun4i-a10-sram-controller' was expected
/arch/arm/boot/dts/sun8i-v3s-licheepi-zero.dt.yaml:
system-control@1c00000: compatible:0:
'allwinner,sun4i-a10-system-control' was expected
/arch/arm/boot/dts/sun8i-v3s-licheepi-zero.dt.yaml:
system-control@1c00000: compatible:0:
'allwinner,sun5i-a13-system-control' was expected
/arch/arm/boot/dts/sun8i-v3s-licheepi-zero.dt.yaml:
system-control@1c00000: compatible:0:
'allwinner,sun7i-a20-system-control' was expected
/arch/arm/boot/dts/sun8i-v3s-licheepi-zero.dt.yaml:
system-control@1c00000: compatible:0:
'allwinner,sun8i-a23-system-control' was expected
/arch/arm/boot/dts/sun8i-v3s-licheepi-zero.dt.yaml:
system-control@1c00000: compatible:0:
'allwinner,sun8i-h3-system-control' was expected
/arch/arm/boot/dts/sun8i-v3s-licheepi-zero.dt.yaml:
system-control@1c00000: compatible:0:
'allwinner,sun8i-r40-system-control' was expected
/arch/arm/boot/dts/sun8i-v3s-licheepi-zero.dt.yaml:
system-control@1c00000: compatible:0:
'allwinner,sun50i-a64-sram-controller' was expected
/arch/arm/boot/dts/sun8i-v3s-licheepi-zero.dt.yaml:
system-control@1c00000: compatible:0:
'allwinner,sun50i-a64-system-control' was expected
/arch/arm/boot/dts/sun8i-v3s-licheepi-zero.dt.yaml:
system-control@1c00000: compatible:0:
'allwinner,sun50i-h5-system-control' was expected
/arch/arm/boot/dts/sun8i-v3s-licheepi-zero.dt.yaml:
system-control@1c00000: compatible:0:
'allwinner,sun50i-h6-system-control' was expected
/arch/arm/boot/dts/sun8i-v3s-licheepi-zero.dt.yaml:
system-control@1c00000: compatible:0:
'allwinner,suniv-f1c100s-system-control' was expected
/arch/arm/boot/dts/sun8i-v3s-licheepi-zero.dt.yaml:
system-control@1c00000: compatible:1:
'allwinner,sun4i-a10-system-control' was expected
/arch/arm/boot/dts/sun8i-v3s-licheepi-zero.dt.yaml:
system-control@1c00000: compatible:1:
'allwinner,sun4i-a10-system-control' was expected
/arch/arm/boot/dts/sun8i-v3s-licheepi-zero.dt.yaml:
system-control@1c00000: compatible:1:
'allwinner,sun50i-a64-system-control' was expected
/arch/arm/boot/dts/sun8i-v3s-licheepi-zero.dt.yaml:
system-control@1c00000: compatible:1:
'allwinner,sun4i-a10-system-control' was expected

From schema: /Documentation/devicetree/bindings/sram/allwinner,sun4i-a10-system-control.yaml
/arch/arm/boot/dts/sun8i-v3s-licheepi-zero-dock.dt.yaml:
system-control@1c00000: compatible:
['allwinner,sun8i-v3s-system-control',
'allwinner,sun8i-h3-system-control'] is not valid under any of the
given schemas (Possible causes of the failure):
/arch/arm/boot/dts/sun8i-v3s-licheepi-zero-dock.dt.yaml:
system-control@1c00000: compatible: Additional items are not allowed
('allwinner,sun8i-h3-system-control' was unexpected)
/arch/arm/boot/dts/sun8i-v3s-licheepi-zero-dock.dt.yaml:
system-control@1c00000: compatible:0:
'allwinner,sun4i-a10-sram-controller' was expected
/arch/arm/boot/dts/sun8i-v3s-licheepi-zero-dock.dt.yaml:
system-control@1c00000: compatible:0:
'allwinner,sun4i-a10-system-control' was expected
/arch/arm/boot/dts/sun8i-v3s-licheepi-zero-dock.dt.yaml:
system-control@1c00000: compatible:0:
'allwinner,sun5i-a13-system-control' was expected
/arch/arm/boot/dts/sun8i-v3s-licheepi-zero-dock.dt.yaml:
system-control@1c00000: compatible:0:
'allwinner,sun7i-a20-system-control' was expected
/arch/arm/boot/dts/sun8i-v3s-licheepi-zero-dock.dt.yaml:
system-control@1c00000: compatible:0:
'allwinner,sun8i-a23-system-control' was expected
/arch/arm/boot/dts/sun8i-v3s-licheepi-zero-dock.dt.yaml:
system-control@1c00000: compatible:0:
'allwinner,sun8i-h3-system-control' was expected
/arch/arm/boot/dts/sun8i-v3s-licheepi-zero-dock.dt.yaml:
system-control@1c00000: compatible:0:
'allwinner,sun8i-r40-system-control' was expected
/arch/arm/boot/dts/sun8i-v3s-licheepi-zero-dock.dt.yaml:
system-control@1c00000: compatible:0:
'allwinner,sun50i-a64-sram-controller' was expected
/arch/arm/boot/dts/sun8i-v3s-licheepi-zero-dock.dt.yaml:
system-control@1c00000: compatible:0:
'allwinner,sun50i-a64-system-control' was expected
/arch/arm/boot/dts/sun8i-v3s-licheepi-zero-dock.dt.yaml:
system-control@1c00000: compatible:0:
'allwinner,sun50i-h5-system-control' was expected
/arch/arm/boot/dts/sun8i-v3s-licheepi-zero-dock.dt.yaml:
system-control@1c00000: compatible:0:
'allwinner,sun50i-h6-system-control' was expected
/arch/arm/boot/dts/sun8i-v3s-licheepi-zero-dock.dt.yaml:
system-control@1c00000: compatible:0:
'allwinner,suniv-f1c100s-system-control' was expected
/arch/arm/boot/dts/sun8i-v3s-licheepi-zero-dock.dt.yaml:
system-control@1c00000: compatible:1:
'allwinner,sun4i-a10-system-control' was expected
/arch/arm/boot/dts/sun8i-v3s-licheepi-zero-dock.dt.yaml:
system-control@1c00000: compatible:1:
'allwinner,sun4i-a10-system-control' was expected
/arch/arm/boot/dts/sun8i-v3s-licheepi-zero-dock.dt.yaml:
system-control@1c00000: compatible:1:
'allwinner,sun50i-a64-system-control' was expected
/arch/arm/boot/dts/sun8i-v3s-licheepi-zero-dock.dt.yaml:
system-control@1c00000: compatible:1:
'allwinner,sun4i-a10-system-control' was expected

Regards,
Clement
> --
> You received this message because you are subscribed to the Google Groups "linux-sunxi" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to linux-sunxi...@googlegroups.com.
> To view this discussion on the web, visit https://groups.google.com/d/msgid/linux-sunxi/20200925151241.kfmytlff4grswtzh%40gilmour.lan.

Clément Péron

unread,
Oct 3, 2020, 6:31:17 AM10/3/20
to Maxime Ripard, Icenowy Zheng, Rob Herring, Chen-Yu Tsai, devicetree, linux-arm-kernel, linux-kernel, linux-sunxi
> On Fri, 25 Sep 2020 at 17:12, Maxime Ripard <max...@cerno.tech> wrote:
> >
> > Hi,
> >
> > On Wed, Sep 23, 2020 at 08:57:02AM +0800, Icenowy Zheng wrote:
> > > Pine64 PineCube is an IP camera based on Allwinner S3 chip.
> > >
> > > This patchset tries to add support for it.
> > >
> > > In order to make sure the system do not hang when camera is brought up,
> > > a fix to AXP209 driver is needed (sent individually), otherwise the
> > > system will hang because it changes the voltage of LDO2 when LDO4
> > > tweaking.
> >
> > Queued all the patches for 5.11

I was on top of sunxi sunxi/for-next branch

Maybe I'm missing some dt-bindings merged in another tree.

Sorry if it's a false warning.

Regards,
Clement

Icenowy Zheng

unread,
Oct 3, 2020, 6:39:44 AM10/3/20
to Clément Péron, Maxime Ripard, Rob Herring, Chen-Yu Tsai, devicetree, linux-arm-kernel, linux-kernel, linux-sunxi


于 2020年10月3日 GMT+08:00 下午6:28:03, "Clément Péron" <peron...@gmail.com> 写到:
Is this broken schema?

Clément Péron

unread,
Oct 3, 2020, 9:37:48 AM10/3/20
to Icenowy Zheng, Maxime Ripard, Rob Herring, Chen-Yu Tsai, devicetree, linux-arm-kernel, linux-kernel, linux-sunxi
Hi Icenowy,
I think the #address-cells', '#size-cells' are not required here.
I had a quick look at other csi and nobody seems to specify this.

Just FYI This is what I did.
pip3 install git+https://github.com/devicetree-org/dt-schema.git@master
ARCH=arm make sunxi_defconfig
ARCH=arm make -j8 dtbs_check

Regards,
Clement
Reply all
Reply to author
Forward
0 new messages