Add board support for ICnova A20 SomPi compute module on
ICnova ADB4006 development board.
v3:
- drop stray blank lines at end of files
- separate patch for bindings
- update licensing to "GPL-2.0 OR MIT"
- fix typo: ICNova -> ICnova
v2:
- use short licensing header
- remove deprecated elements from led nodes
- disable csi power supply
- add missing pins in usbphy node
- split dts into SoM dtsi and carrier board dts
v1 of this patch was sent to the uboot mailing list [1].
[1] https://lists.denx.de/pipermail/u-boot/2023-April/514605.html
Ludwig Kormann (2):
dt-bindings: arm: sunxi: add ICnova A20 ADB4006 binding
arm: dts: sunxi: Add ICnova A20 ADB4006 board
.../devicetree/bindings/arm/sunxi.yaml | 6 +
arch/arm/boot/dts/Makefile | 1 +
.../boot/dts/sun7i-a20-icnova-a20-adb4006.dts | 137 ++++++++++++++++++
arch/arm/boot/dts/sun7i-a20-icnova-a20.dtsi | 62 ++++++++
4 files changed, 206 insertions(+)
create mode 100644 arch/arm/boot/dts/sun7i-a20-icnova-a20-adb4006.dts
create mode 100644 arch/arm/boot/dts/sun7i-a20-icnova-a20.dtsi
--
2.30.2
Add board support for ICnova A20 SomPi compute module on
ICnova ADB4006 development board.
Specification:
SoM
- Processor: Allwinner A20 Cortex-A7 Dual Core at 1GHz
- 512MB DDR3 RAM
- Fast Ethernet (Phy: Realtek RTL8201CP)
ADB4006
- I2C
- 2x USB 2.0
- 1x Fast Ethernet port
- 1x SATA
- 2x buttons (PWRON, Boot)
- 2x LEDS
- serial console
- HDMI
- µSD-Card slot
- Audio Line-In / Line-Out
- GPIO pinheaders
https://wiki.in-circuit.de/index.php5?title=ICnova_ADB4006
https://wiki.in-circuit.de/index.php5?title=ICnova_A20_SODIMM
Reviewed-by: Andre Przywara <[email protected]>
Signed-off-by: Ludwig Kormann <[email protected]>
---
arch/arm/boot/dts/Makefile | 1 +
.../boot/dts/sun7i-a20-icnova-a20-adb4006.dts | 137 ++++++++++++++++++
arch/arm/boot/dts/sun7i-a20-icnova-a20.dtsi | 62 ++++++++
3 files changed, 200 insertions(+)
create mode 100644 arch/arm/boot/dts/sun7i-a20-icnova-a20-adb4006.dts
create mode 100644 arch/arm/boot/dts/sun7i-a20-icnova-a20.dtsi
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index 3cc32722c394..b6b408417261 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -1321,6 +1321,7 @@ dtb-$(CONFIG_MACH_SUN7I) += \
sun7i-a20-hummingbird.dtb \
sun7i-a20-itead-ibox.dtb \
sun7i-a20-i12-tvbox.dtb \
+ sun7i-a20-icnova-a20-adb4006.dtb \
sun7i-a20-icnova-swac.dtb \
sun7i-a20-lamobo-r1.dtb \
sun7i-a20-linutronix-testbox-v2.dtb \
diff --git a/arch/arm/boot/dts/sun7i-a20-icnova-a20-adb4006.dts b/arch/arm/boot/dts/sun7i-a20-icnova-a20-adb4006.dts
new file mode 100644
index 000000000000..577ead1d02a0
--- /dev/null
+++ b/arch/arm/boot/dts/sun7i-a20-icnova-a20-adb4006.dts
@@ -0,0 +1,137 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+// Copyright (C) 2023 In-Circuit GmbH
+
+/dts-v1/;
+
+#include "sun7i-a20-icnova-a20.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/leds/common.h>
+
+/ {
+ model = "In-Circuit ICnova A20 ADB4006";
+ compatible = "incircuit,icnova-a20-adb4006", "incircuit,icnova-a20",
+ "allwinner,sun7i-a20";
+
+ aliases {
+ serial0 = &uart0;
+ };
+
+ chosen {
+ stdout-path = "serial0:115200n8";
+ };
+
+ hdmi-connector {
+ compatible = "hdmi-connector";
+ type = "a";
+
+ port {
+ hdmi_con_in: endpoint {
+ remote-endpoint = <&hdmi_out_con>;
+ };
+ };
+ };
+
+ leds {
+ compatible = "gpio-leds";
+
+ led-0 {
+ function = LED_FUNCTION_POWER;
+ color = <LED_COLOR_ID_YELLOW>;
+ gpios = <&pio 7 21 GPIO_ACTIVE_HIGH>; /* PH21 */
+ default-state = "on";
+ };
+
+ led-1 {
+ function = LED_FUNCTION_HEARTBEAT;
+ color = <LED_COLOR_ID_RED>;
+ gpios = <&pio 7 20 GPIO_ACTIVE_HIGH>; /* PH20 */
+ linux,default-trigger = "heartbeat";
+ };
+ };
+};
+
+&ahci {
+ target-supply = <®_ahci_5v>;
+ status = "okay";
+};
+
+&codec {
+ status = "okay";
+};
+
+&de {
+ status = "okay";
+};
+
+&ehci0 {
+ status = "okay";
+};
+
+&ehci1 {
+ status = "okay";
+};
+
+&hdmi {
+ status = "okay";
+};
+
+&hdmi_out {
+ hdmi_out_con: endpoint {
+ remote-endpoint = <&hdmi_con_in>;
+ };
+};
+
+&mmc0 {
+ vmmc-supply = <®_vcc3v3>;
+ bus-width = <4>;
+ cd-gpios = <&pio 7 1 GPIO_ACTIVE_LOW>; /* PH1 */
+ status = "okay";
+};
+
+&ohci0 {
+ status = "okay";
+};
+
+&ohci1 {
+ status = "okay";
+};
+
+&otg_sram {
+ status = "okay";
+};
+
+®_ahci_5v {
+ status = "okay";
+};
+
+&ac_power_supply {
+ status = "okay";
+};
+
+®_usb1_vbus {
+ status = "okay";
+};
+
+®_usb2_vbus {
+ status = "okay";
+};
+
+&uart0 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&uart0_pb_pins>;
+ status = "okay";
+};
+
+&usb_otg {
+ dr_mode = "otg";
+ status = "okay";
+};
+
+&usbphy {
+ usb0_id_det-gpios = <&pio 7 4 GPIO_ACTIVE_HIGH>; /* PH4 */
+ usb0_vbus_det-gpios = <&pio 7 5 GPIO_ACTIVE_HIGH>; /* PH5 */
+ usb1_vbus-supply = <®_usb1_vbus>;
+ usb2_vbus-supply = <®_usb2_vbus>;
+ status = "okay";
+};
diff --git a/arch/arm/boot/dts/sun7i-a20-icnova-a20.dtsi b/arch/arm/boot/dts/sun7i-a20-icnova-a20.dtsi
new file mode 100644
index 000000000000..46616c6bc899
--- /dev/null
+++ b/arch/arm/boot/dts/sun7i-a20-icnova-a20.dtsi
@@ -0,0 +1,62 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+// Copyright (C) 2023 In-Circuit GmbH
+
+#include "sun7i-a20.dtsi"
+#include "sunxi-common-regulators.dtsi"
+
+#include <dt-bindings/interrupt-controller/irq.h>
+
+&cpu0 {
+ cpu-supply = <®_dcdc2>;
+};
+
+&gmac {
+ pinctrl-names = "default";
+ pinctrl-0 = <&gmac_mii_pins>;
+ phy-handle = <&phy1>;
+ phy-mode = "mii";
+ status = "okay";
+};
+
+&i2c0 {
+ status = "okay";
+
+ axp209: pmic@34 {
+ reg = <0x34>;
+ interrupt-parent = <&nmi_intc>;
+ interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
+ };
+};
+
+&gmac_mdio {
+ phy1: ethernet-phy@1 {
+ reg = <1>;
+ };
+};
+
+#include "axp209.dtsi"
+
+®_dcdc2 {
+ regulator-always-on;
+ regulator-min-microvolt = <1000000>;
+ regulator-max-microvolt = <1400000>;
+ 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";
+};
--
2.30.2
Hello,
thanks for the reviews so far!
Is there anything I can do / need to do for my patch series for it to
get merged before -rc1?
The patch series was based on the "for-next" branch in jernej's tree,
but it seems that it was too late for the "dt-for-6.4" merge.
So I'm just trying to understand in general what the best way in this
situation would be:
- wait if someone else takes the patch series before -rc1
- wait for -rc1 and rebase, rework, send a new version of the patch
series (because of the planned restructuring of the ARM dts directory)
- wait for -rc3 (?) and rebase & rework the patch series for jernej's
tree for the "dt-for-6.5" branch
Thanks for your help.
kind regards
Ludwig Kormann
Am 20.04.23 um 12:24 schrieb Ludwig Kormann:
> Add board support for ICnova A20 SomPi compute module on
> ICnova ADB4006 development board.
>
> v3:
> - drop stray blank lines at end of files
> - separate patch for bindings
> - update licensing to "GPL-2.0 OR MIT"
> - fix typo: ICNova -> ICnova
>
> v2:
> - use short licensing header
> - remove deprecated elements from led nodes
> - disable csi power supply
> - add missing pins in usbphy node
> - split dts into SoM dtsi and carrier board dts
>
> v1 of this patch was sent to the uboot mailing list [1].
>
> [1] https://lists.denx.de/pipermail/u-boot/2023-April/514605.html
>
> Ludwig Kormann (2):
> dt-bindings: arm: sunxi: add ICnova A20 ADB4006 binding
> arm: dts: sunxi: Add ICnova A20 ADB4006 board
>
> .../devicetree/bindings/arm/sunxi.yaml | 6 +
> arch/arm/boot/dts/Makefile | 1 +
> .../boot/dts/sun7i-a20-icnova-a20-adb4006.dts | 137 ++++++++++++++++++
> arch/arm/boot/dts/sun7i-a20-icnova-a20.dtsi | 62 ++++++++
> 4 files changed, 206 insertions(+)
> create mode 100644 arch/arm/boot/dts/sun7i-a20-icnova-a20-adb4006.dts
> create mode 100644 arch/arm/boot/dts/sun7i-a20-icnova-a20.dtsi
>
On Tue, 2 May 2023 10:06:20 +0200
Ludwig Kormann <[email protected]> wrote:
Hi,
> Hello,
>
> thanks for the reviews so far!
>
> Is there anything I can do / need to do for my patch series for it to
> get merged before -rc1?
The cutoff date for most board DT patches to get into a release is
around -rc5/-rc6 of the *previous* release: patches should live in
linux-next for a while. Also most pull requests need to "trickle up" the
stream first (from the sunxi tree to the SoC tree, then into mainline).
So -rc1 is out of reach now.
> The patch series was based on the "for-next" branch in jernej's tree,
> but it seems that it was too late for the "dt-for-6.4" merge.
Yes.
> So I'm just trying to understand in general what the best way in this
> situation would be:
> - wait if someone else takes the patch series before -rc1
> - wait for -rc1 and rebase, rework, send a new version of the patch
> series (because of the planned restructuring of the ARM dts directory)
Yes, this is the way to go. The maintainers will probably take care of
any minor conflicts (like in the Makefile), so (the upcoming) -rc1
should be the base tree. For new DT files the conflict potential should
be minimal anyway.
Just make sure to run "make dt_binding_check" and "make dtbs_check"
again, because the rules might have been updated meanwhile.
Cheers,
Andre
> - wait for -rc3 (?) and rebase & rework the patch series for jernej's
> tree for the "dt-for-6.5" branch
>
> Thanks for your help.
>
> kind regards
> Ludwig Kormann
>
>
> Am 20.04.23 um 12:24 schrieb Ludwig Kormann:
> > Add board support for ICnova A20 SomPi compute module on
> > ICnova ADB4006 development board.
> >
> > v3:
> > - drop stray blank lines at end of files
> > - separate patch for bindings
> > - update licensing to "GPL-2.0 OR MIT"
> > - fix typo: ICNova -> ICnova
> >
> > v2:
> > - use short licensing header
> > - remove deprecated elements from led nodes
> > - disable csi power supply
> > - add missing pins in usbphy node
> > - split dts into SoM dtsi and carrier board dts
> >
> > v1 of this patch was sent to the uboot mailing list [1].
> >
> > [1] https://lists.denx.de/pipermail/u-boot/2023-April/514605.html
> >
> > Ludwig Kormann (2):
> > dt-bindings: arm: sunxi: add ICnova A20 ADB4006 binding
> > arm: dts: sunxi: Add ICnova A20 ADB4006 board
> >
> > .../devicetree/bindings/arm/sunxi.yaml | 6 +
> > arch/arm/boot/dts/Makefile | 1 +
> > .../boot/dts/sun7i-a20-icnova-a20-adb4006.dts | 137 ++++++++++++++++++
> > arch/arm/boot/dts/sun7i-a20-icnova-a20.dtsi | 62 ++++++++
> > 4 files changed, 206 insertions(+)
> > create mode 100644 arch/arm/boot/dts/sun7i-a20-icnova-a20-adb4006.dts
> > create mode 100644 arch/arm/boot/dts/sun7i-a20-icnova-a20.dtsi
> >
On 02/05/2023 10:06, Ludwig Kormann wrote:
> Hello,
>
> thanks for the reviews so far!
>
> Is there anything I can do / need to do for my patch series for it to
> get merged before -rc1?
It's merge window now, so no, it cannot get merged before rc1.
Best regards,
Krzysztof