Skip to contentSkip to conversation

ARM: dts: add dts files for Cubieboard4

PATCH New tyler.baker at linaro.org 2 participants 6 messages Mar 6, 2015 – Mar 9, 2015

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

cover ARM: dts: add dts files for Cubieboard4

From: Tyler Baker <[email protected]>

This series adds basic support for the Cubietech Cubieboard4.

The Cubietech Cubieboard4 is a A80 based development board with 2GB DDR3, 8GB eMMC, Micro SD, HDMI, VGA, 3.5mm audio jack. One USB OTG port and four USB 2.0 ports.

The sun9i-a80-optimus device tree[1] has been used to boot this board for some time now, as the two platforms are very similar. But there are differences, so it deserves it's own device tree. I've tested this series on a Cubieboard4[2][3] and can confirm UART, eMMC, and MMC are working properly.

This patch series is based on arm-soc v4.0-rc2.

[1] http://kernelci.org/boot/sun9i-a80-cubieboard4/
[2] http://lava.kernelci.org/scheduler/job/47969/log_file#L_13_308
[3] http://lava.kernelci.org/scheduler/job/47969/log_file#L_17_11

Tyler Baker (2):
ARM: dts: add cubietech cubieboard4
ARM: dts: add vendor prefix for cubietech

 .../devicetree/bindings/vendor-prefixes.txt        |   1 +
 arch/arm/boot/dts/Makefile                         |   3 +-
 arch/arm/boot/dts/sun9i-a80-cubieboard4.dts        | 100 +++++++++++++++++++++
 3 files changed, 103 insertions(+), 1 deletion(-)
 create mode 100644 arch/arm/boot/dts/sun9i-a80-cubieboard4.dts
Signature · 1 line
2.1.0
#1 lore raw

PATCH 1/2 ARM: dts: add cubietech cubieboard4

From: Tyler Baker <[email protected]>

Add a Cubietech Cubieboard4 device tree and instruct make to build it. This device tree has been derived from the sun9i-a80-optimus.dts as they are very similar in design[1]. Notably, I2C3 is not used on Cubieboard4 and the LED/PWM definitions will need to be updated in the future.

[1] http://dl.cubieboard.org/model/cc-a80/Hardware/CC-A80-HW-V1.1.pdf

---
 arch/arm/boot/dts/Makefile                  |   3 +-
 arch/arm/boot/dts/sun9i-a80-cubieboard4.dts | 100 ++++++++++++++++++++++++++++
 2 files changed, 102 insertions(+), 1 deletion(-)
 create mode 100644 arch/arm/boot/dts/sun9i-a80-cubieboard4.dts
arch/arm/boot/dts/Makefile +2 -1
index 4837044..0f67dab 100644
@@ -553,7 +553,8 @@ dtb-$(CONFIG_MACH_SUN8I) += \
 	sun8i-a23-ippo-q8h-v5.dtb \
 	sun8i-a23-ippo-q8h-v1.2.dtb
 dtb-$(CONFIG_MACH_SUN9I) += \
-	sun9i-a80-optimus.dtb
+	sun9i-a80-optimus.dtb \
+	sun9i-a80-cubieboard4.dtb
 dtb-$(CONFIG_ARCH_TEGRA_2x_SOC) += \
 	tegra20-harmony.dtb \
 	tegra20-iris-512.dtb \
arch/arm/boot/dts/sun9i-a80-cubieboard4.dts new file +100 -0

100 lines not on this page · raw message

Signature · 1 line
2.1.0
#2 lore raw

PATCH 1/2 ARM: dts: add cubietech cubieboard4

Hi Tyler,

Quoted 88 lines · tyler.baker at linaro.org

From: Tyler Baker <[email protected]>

Add a Cubietech Cubieboard4 device tree and instruct make to build it. This device tree has been derived from the sun9i-a80-optimus.dts as they are very similar in design[1]. Notably, I2C3 is not used on Cubieboard4 and the LED/PWM definitions will need to be updated in the future.

[1] http://dl.cubieboard.org/model/cc-a80/Hardware/CC-A80-HW-V1.1.pdf

---
 arch/arm/boot/dts/Makefile                  |   3 +-
 arch/arm/boot/dts/sun9i-a80-cubieboard4.dts | 100 ++++++++++++++++++++++++++++
 2 files changed, 102 insertions(+), 1 deletion(-)
 create mode 100644 arch/arm/boot/dts/sun9i-a80-cubieboard4.dts
arch/arm/boot/dts/Makefile +2 -1
index 4837044..0f67dab 100644
@@ -553,7 +553,8 @@ dtb-$(CONFIG_MACH_SUN8I) += \
 	sun8i-a23-ippo-q8h-v5.dtb \
 	sun8i-a23-ippo-q8h-v1.2.dtb
 dtb-$(CONFIG_MACH_SUN9I) += \
-	sun9i-a80-optimus.dtb
+	sun9i-a80-optimus.dtb \
+	sun9i-a80-cubieboard4.dtb
 dtb-$(CONFIG_ARCH_TEGRA_2x_SOC) += \
 	tegra20-harmony.dtb \
 	tegra20-iris-512.dtb \
arch/arm/boot/dts/sun9i-a80-cubieboard4.dts new file +52 -0
new file mode 100644
index 0000000..b239b39
@@ -0,0 +1,100 @@
+/*
+ * Copyright 2015 Tyler Baker
+ *
+ * Tyler Baker <[email protected]>
+ * Chen-Yu Tsai <[email protected]>
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file is free software; you can redistribute it and/or
+ *     modify it under the terms of the GNU General Public License as
+ *     published by the Free Software Foundation; either version 2 of the
+ *     License, or (at your option) any later version.
+ *
+ *     This file is distributed in the hope that it will be useful,
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/dts-v1/;
+#include "sun9i-a80.dtsi"
+#include "sunxi-common-regulators.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/pinctrl/sun4i-a10.h>
+

arch/arm/boot/dts/sun9i-a80-cubieboard4.dts line 62

Quoted 10 lines
arch/arm/boot/dts/sun9i-a80-cubieboard4.dts new file +10 -0
+/ {
+	model = "Cubietech Cubieboard4";
+	compatible = "cubietech,a80-cubietruck", "allwinner,sun9i-a80";
+
+	aliases {
+		serial0 = &uart0;
+	};
+
+	chosen {
+		bootargs = "earlyprintk console=ttyS0,115200";

It would be great not to use earlyprintk, just in case we have a kernel compiled with earlyprintk support, but for another SoC.

And while we're at it, using stdout-path would allow use to get rid of the bootargs entirely.

arch/arm/boot/dts/sun9i-a80-cubieboard4.dts line 68

Quoted 6 lines
arch/arm/boot/dts/sun9i-a80-cubieboard4.dts new file +6 -0
+	};
+
+};
+
+&pio {
+

This new line is not needed.

Quoted 22 lines
arch/arm/boot/dts/sun9i-a80-cubieboard4.dts new file +22 -0
+	mmc0_cd_pin_cubieboard4: mmc0_cd_pin at 0 {
+		allwinner,pins = "PH18";
+		allwinner,function = "gpio_in";
+		allwinner,drive = <SUN4I_PINCTRL_10_MA>;
+		allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
+	};
+};
+
+&mmc0 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&mmc0_pins>, <&mmc0_cd_pin_cubieboard4>;
+	vmmc-supply = <&reg_vcc3v0>;
+	bus-width = <4>;
+	cd-gpios = <&pio 7 18 GPIO_ACTIVE_HIGH>; /* PH18 */
+	cd-inverted;
+	status = "okay";
+};
+
+&mmc2 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&mmc2_8bit_pins>;
+	vmmc-supply = <&reg_vcc3v0>;

arch/arm/boot/dts/sun9i-a80-cubieboard4.dts line 100

Quoted 10 lines
arch/arm/boot/dts/sun9i-a80-cubieboard4.dts new file +10 -0
+	bus-width = <8>;
+	non-removable;
+	status = "okay";
+};
+
+&uart0 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&uart0_pins_a>;
+	status = "okay";
+};

Looks good otherwise, thanks!

Maxime

Signature · 10 lines
Maxime Ripard, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20150308/f2a2eb90/attachment.sig>
#3 lore raw

PATCH 1/2 ARM: dts: add cubietech cubieboard4

Hi Maxime,

Quoted 86 lines · Maxime Ripard

Hi Tyler,

Quoted 83 lines · tyler.baker at linaro.org

From: Tyler Baker <[email protected]>

Add a Cubietech Cubieboard4 device tree and instruct make to build it. This device tree has been derived from the sun9i-a80-optimus.dts as they are very similar in design[1]. Notably, I2C3 is not used on Cubieboard4 and the LED/PWM definitions will need to be updated in the future.

[1] http://dl.cubieboard.org/model/cc-a80/Hardware/CC-A80-HW-V1.1.pdf

---
 arch/arm/boot/dts/Makefile                  |   3 +-
 arch/arm/boot/dts/sun9i-a80-cubieboard4.dts | 100 ++++++++++++++++++++++++++++
 2 files changed, 102 insertions(+), 1 deletion(-)
 create mode 100644 arch/arm/boot/dts/sun9i-a80-cubieboard4.dts
arch/arm/boot/dts/Makefile +2 -1
index 4837044..0f67dab 100644
@@ -553,7 +553,8 @@ dtb-$(CONFIG_MACH_SUN8I) += \
      sun8i-a23-ippo-q8h-v5.dtb \
      sun8i-a23-ippo-q8h-v1.2.dtb
 dtb-$(CONFIG_MACH_SUN9I) += \
-     sun9i-a80-optimus.dtb
+     sun9i-a80-optimus.dtb \
+     sun9i-a80-cubieboard4.dtb
 dtb-$(CONFIG_ARCH_TEGRA_2x_SOC) += \
      tegra20-harmony.dtb \
      tegra20-iris-512.dtb \
arch/arm/boot/dts/sun9i-a80-cubieboard4.dts new file +47 -0
new file mode 100644
index 0000000..b239b39
@@ -0,0 +1,100 @@
+/*
+ * Copyright 2015 Tyler Baker
+ *
+ * Tyler Baker <[email protected]>
+ * Chen-Yu Tsai <[email protected]>
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file is free software; you can redistribute it and/or
+ *     modify it under the terms of the GNU General Public License as
+ *     published by the Free Software Foundation; either version 2 of the
+ *     License, or (at your option) any later version.
+ *
+ *     This file is distributed in the hope that it will be useful,
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/dts-v1/;
+#include "sun9i-a80.dtsi"
Quoted 8 lines

arch/arm/boot/dts/sun9i-a80-cubieboard4.dts line 55

Quoted 8 lines
arch/arm/boot/dts/sun9i-a80-cubieboard4.dts new file +8 -0
+#include "sunxi-common-regulators.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/pinctrl/sun4i-a10.h>
+
+/ {
+     model = "Cubietech Cubieboard4";
+     compatible = "cubietech,a80-cubietruck", "allwinner,sun9i-a80";

I noticed this should not be a80-cubietruck but instead a80-cubieboard4. Will fix in v1.

Quoted 11 lines

arch/arm/boot/dts/sun9i-a80-cubieboard4.dts line 62

Quoted 7 lines
arch/arm/boot/dts/sun9i-a80-cubieboard4.dts new file +7 -0
+
+     aliases {
+             serial0 = &uart0;
+     };
+
+     chosen {
+             bootargs = "earlyprintk console=ttyS0,115200";

It would be great not to use earlyprintk, just in case we have a kernel compiled with earlyprintk support, but for another SoC.

Quoted 2 lines

And while we're at it, using stdout-path would allow use to get rid of the bootargs entirely.

Great suggestion. I've removed the bootargs, added stdout-path, and have done some testing locally. Working just fine, will be included in v1.

Quoted 9 lines

arch/arm/boot/dts/sun9i-a80-cubieboard4.dts line 68

Quoted 7 lines
arch/arm/boot/dts/sun9i-a80-cubieboard4.dts new file +6 -0
+     };
+
+};
+
+&pio {
+

This new line is not needed.

Ack.

Quoted 27 lines
Quoted 27 lines
arch/arm/boot/dts/sun9i-a80-cubieboard4.dts new file +26 -0
+     mmc0_cd_pin_cubieboard4: mmc0_cd_pin at 0 {
+             allwinner,pins = "PH18";
+             allwinner,function = "gpio_in";
+             allwinner,drive = <SUN4I_PINCTRL_10_MA>;
+             allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
+     };
+};
+
+&mmc0 {
+     pinctrl-names = "default";
+     pinctrl-0 = <&mmc0_pins>, <&mmc0_cd_pin_cubieboard4>;
+     vmmc-supply = <&reg_vcc3v0>;
+     bus-width = <4>;
+     cd-gpios = <&pio 7 18 GPIO_ACTIVE_HIGH>; /* PH18 */
+     cd-inverted;
+     status = "okay";
+};
+
+&mmc2 {
+     pinctrl-names = "default";
+     pinctrl-0 = <&mmc2_8bit_pins>;
+     vmmc-supply = <&reg_vcc3v0>;
+     bus-width = <8>;
+     non-removable;
+     status = "okay";
+};
Quoted 8 lines

arch/arm/boot/dts/sun9i-a80-cubieboard4.dts line 100

Quoted 6 lines
arch/arm/boot/dts/sun9i-a80-cubieboard4.dts new file +6 -0
+
+&uart0 {
+     pinctrl-names = "default";
+     pinctrl-0 = <&uart0_pins_a>;
+     status = "okay";
+};

Looks good otherwise, thanks!

Thanks for the review!

Quoted 7 lines

Maxime

--
Maxime Ripard, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

Tyler

#4 lore raw

PATCH 2/2 ARM: dts: add vendor prefix for cubietech

In reply to tyler.baker at linaro.org

From: Tyler Baker <[email protected]>

Add a cubietech vendor prefix, as it is missing. The cubietruck, cubieboard2, and cubieboard all already reference this prefix.

---
 Documentation/devicetree/bindings/vendor-prefixes.txt | 1 +
 1 file changed, 1 insertion(+)
Documentation/devicetree/bindings/vendor-prefixes.txt +1 -0
index aeb5bb5..58364cf 100644
@@ -45,6 +45,7 @@ cnxt	Conexant Systems, Inc.
 cortina	Cortina Systems, Inc.
 cosmic	Cosmic Circuits
 crystalfontz	Crystalfontz America, Inc.
+cubietech	Cubietech, Ltd.
 dallas	Maxim Integrated Products (formerly Dallas Semiconductor)
 davicom	DAVICOM Semiconductor, Inc.
 denx	Denx Software Engineering
Signature · 1 line
2.1.0
#5 lore raw

PATCH 2/2 ARM: dts: add vendor prefix for cubietech

Quoted 6 lines · tyler.baker at linaro.org

From: Tyler Baker <[email protected]>

Add a cubietech vendor prefix, as it is missing. The cubietruck, cubieboard2, and cubieboard all already reference this prefix.

Applied, thanks!

Maxime

Signature · 10 lines
Maxime Ripard, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20150308/06a82ebb/attachment.sig>