Re: [PATCH v2 4/4] arm: dts: add 8devices Habanero DVK

From: Robert Marko
Date: Mon Jan 25 2021 - 07:10:42 EST


On Fri, Jan 22, 2021 at 7:56 PM Bjorn Andersson
<bjorn.andersson@xxxxxxxxxx> wrote:
>
> On Fri 02 Oct 12:41 CDT 2020, Robert Marko wrote:
>
> > On Wed, Sep 9, 2020 at 9:56 PM Robert Marko <robert.marko@xxxxxxxxxx> wrote:
> > >
> > > 8devices Habanero DVK is a dual-band SoM development kit based on Qualcomm
> > > IPQ4019 + QCA8075 platform.
> > >
> > > Specs are:
> > > CPU: QCA IPQ4019
> > > RAM: DDR3L 512MB
> > > Storage: 32MB SPI-NOR and optional Parallel SLC NAND(Some boards ship with it and some without)
> > > WLAN1: 2.4 GHz built into IPQ4019 (802.11n) 2x2
> > > WLAN2: 5 GHz built into IPO4019 (802.11ac Wawe-2) 2x2
> > > Ethernet: 5x Gbit LAN (QCA 8075)
> > > USB: 1x USB 2.0 and 1x USB 3.0 (Both built into IPQ4019)
> > > MicroSD slot (Uses SD controller built into IPQ4019)
> > > SDIO3.0/EMMC slot (Uses the same SD controller)
> > > Mini PCI-E Gen 2.0 slot (Built into IPQ4019)
> > > 5x LEDs (4 GPIO controllable)
> > > 2x Pushbutton (1 is connected to GPIO, other to SoC reset)
> > > LCD ZIF socket (Uses the LCD controller built into IPQ4019 which has no driver support)
> > > 1x UART 115200 rate on J18
> > >
> > > 2x breakout development headers
> > > 12V DC Jack for power
> > > DIP switch for bootstrap configuration
> > >
> > > Signed-off-by: Robert Marko <robert.marko@xxxxxxxxxx>
> > > Cc: Luka Perkov <luka.perkov@xxxxxxxxxx>
> > > ---
> > > Changes since v1:
> > > * Drop include that does not exist
> > >
> > > arch/arm/boot/dts/Makefile | 1 +
> > > .../boot/dts/qcom-ipq4019-habanero-dvk.dts | 304 ++++++++++++++++++
> > > 2 files changed, 305 insertions(+)
> > > create mode 100644 arch/arm/boot/dts/qcom-ipq4019-habanero-dvk.dts
> > >
> > > diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
> > > index 246d82fc5fcd..004262e0d699 100644
> > > --- a/arch/arm/boot/dts/Makefile
> > > +++ b/arch/arm/boot/dts/Makefile
> > > @@ -898,6 +898,7 @@ dtb-$(CONFIG_ARCH_QCOM) += \
> > > qcom-ipq4019-ap.dk04.1-c3.dtb \
> > > qcom-ipq4019-ap.dk07.1-c1.dtb \
> > > qcom-ipq4019-ap.dk07.1-c2.dtb \
> > > + qcom-ipq4019-habanero-dvk.dtb \
> > > qcom-ipq8064-ap148.dtb \
> > > qcom-ipq8064-rb3011.dtb \
> > > qcom-msm8660-surf.dtb \
> > > diff --git a/arch/arm/boot/dts/qcom-ipq4019-habanero-dvk.dts b/arch/arm/boot/dts/qcom-ipq4019-habanero-dvk.dts
> > > new file mode 100644
> > > index 000000000000..fe054adda0a7
> > > --- /dev/null
> > > +++ b/arch/arm/boot/dts/qcom-ipq4019-habanero-dvk.dts
> > > @@ -0,0 +1,304 @@
> > > +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
> > > +/* Copyright (c) 2019, Robert Marko <robimarko@xxxxxxxxx> */
> > > +
> > > +#include "qcom-ipq4019.dtsi"
> > > +#include <dt-bindings/gpio/gpio.h>
> > > +#include <dt-bindings/input/input.h>
> > > +
> > > +/ {
> > > + model = "8devices Habanero DVK";
> > > + compatible = "8dev,habanero-dvk";
> > > +
> > > + keys {
> > > + compatible = "gpio-keys";
> > > +
> > > + reset {
> > > + label = "reset";
> > > + gpios = <&tlmm 8 GPIO_ACTIVE_LOW>;
> > > + linux,code = <KEY_RESTART>;
> > > + };
> > > + };
> > > +
> > > + leds {
> > > + compatible = "gpio-leds";
> > > +
> > > + led_status: status {
> > > + label = "habanero-dvk:green:status";
> > > + gpios = <&tlmm 37 GPIO_ACTIVE_HIGH>;
> > > + panic-indicator;
> > > + };
> > > +
> > > + led_upgrade: upgrade {
> > > + label = "habanero-dvk:green:upgrade";
> > > + gpios = <&tlmm 40 GPIO_ACTIVE_HIGH>;
> > > + };
> > > +
> > > + wlan2g {
> > > + label = "habanero-dvk:green:wlan2g";
> > > + gpios = <&tlmm 46 GPIO_ACTIVE_HIGH>;
> > > + linux,default-trigger = "phy0tpt";
> > > + };
> > > +
> > > + wlan5g {
> > > + label = "habanero-dvk:green:wlan5g";
> > > + gpios = <&tlmm 48 GPIO_ACTIVE_HIGH>;
> > > + linux,default-trigger = "phy1tpt";
> > > + };
> > > + };
> > > +};
> > > +
> > > +&vqmmc {
> > > + status = "okay";
> > > +};
> > > +
> > > +&sdhci {
> > > + status = "okay";
> > > +
> > > + pinctrl-0 = <&sd_pins>;
> > > + pinctrl-names = "default";
> > > + cd-gpios = <&tlmm 22 GPIO_ACTIVE_LOW>;
> > > + vqmmc-supply = <&vqmmc>;
> > > +};
> > > +
> > > +&qpic_bam {
> > > + status = "okay";
> > > +};
> > > +
> > > +&tlmm {
> > > + mdio_pins: mdio_pinmux {
> > > + mux_1 {
> > > + pins = "gpio6";
> > > + function = "mdio";
> > > + bias-pull-up;
> > > + };
> > > +
> > > + mux_2 {
> > > + pins = "gpio7";
> > > + function = "mdc";
> > > + bias-pull-up;
> > > + };
> > > + };
> > > +
> > > + serial_pins: serial_pinmux {
> > > + mux {
> > > + pins = "gpio16", "gpio17";
> > > + function = "blsp_uart0";
> > > + bias-disable;
> > > + };
> > > + };
> > > +
> > > + spi_0_pins: spi_0_pinmux {
> > > + pinmux {
> > > + function = "blsp_spi0";
> > > + pins = "gpio13", "gpio14", "gpio15";
> > > + drive-strength = <12>;
> > > + bias-disable;
> > > + };
> > > +
> > > + pinmux_cs {
> > > + function = "gpio";
> > > + pins = "gpio12";
> > > + drive-strength = <2>;
> > > + bias-disable;
> > > + output-high;
> > > + };
> > > + };
> > > +
> > > + nand_pins: nand_pins {
> > > + pullups {
> > > + pins = "gpio52", "gpio53", "gpio58", "gpio59";
> > > + function = "qpic";
> > > + bias-pull-up;
> > > + };
> > > +
> > > + pulldowns {
> > > + pins = "gpio54", "gpio55", "gpio56", "gpio57",
> > > + "gpio60", "gpio62", "gpio63", "gpio64",
> > > + "gpio65", "gpio66", "gpio67", "gpio68",
> > > + "gpio69";
> > > + function = "qpic";
> > > + bias-pull-down;
> > > + };
> > > + };
> > > +
> > > + sd_pins: sd_pins {
> > > + pinmux {
> > > + function = "sdio";
> > > + pins = "gpio23", "gpio24", "gpio25", "gpio26",
> > > + "gpio28", "gpio29", "gpio30", "gpio31";
> > > + drive-strength = <10>;
> > > + };
> > > +
> > > + pinmux_sd_clk {
> > > + function = "sdio";
> > > + pins = "gpio27";
> > > + drive-strength = <16>;
> > > + };
> > > +
> > > + pinmux_sd7 {
> > > + function = "sdio";
> > > + pins = "gpio32";
> > > + drive-strength = <10>;
> > > + bias-disable;
> > > + };
> > > + };
> > > +};
> > > +
> > > +&watchdog {
> > > + status = "okay";
> > > +};
> > > +
> > > +&prng {
> > > + status = "okay";
> > > +};
> > > +
> > > +&blsp_dma {
> > > + status = "okay";
> > > +};
> > > +
> > > +&blsp1_spi1 {
> > > + status = "okay";
> > > +
> > > + pinctrl-0 = <&spi_0_pins>;
> > > + pinctrl-names = "default";
> > > + cs-gpios = <&tlmm 12 GPIO_ACTIVE_HIGH>;
> > > +
> > > + flash@0 {
> > > + compatible = "jedec,spi-nor";
> > > + spi-max-frequency = <24000000>;
> > > + reg = <0>;
> > > +
> > > + partitions {
> > > + compatible = "fixed-partitions";
> > > + #address-cells = <1>;
> > > + #size-cells = <1>;
> > > +
> > > + partition@0 {
> > > + label = "SBL1";
> > > + reg = <0x00000000 0x00040000>;
> > > + read-only;
> > > + };
> > > + partition@40000 {
> > > + label = "MIBIB";
> > > + reg = <0x00040000 0x00020000>;
> > > + read-only;
> > > + };
> > > + partition@60000 {
> > > + label = "QSEE";
> > > + reg = <0x00060000 0x00060000>;
> > > + read-only;
> > > + };
> > > + partition@c0000 {
> > > + label = "CDT";
> > > + reg = <0x000c0000 0x00010000>;
> > > + read-only;
> > > + };
> > > + partition@d0000 {
> > > + label = "DDRPARAMS";
> > > + reg = <0x000d0000 0x00010000>;
> > > + read-only;
> > > + };
> > > + partition@e0000 {
> > > + label = "APPSBLENV"; /* uboot env */
> > > + reg = <0x000e0000 0x00010000>;
> > > + read-only;
> > > + };
> > > + partition@f0000 {
> > > + label = "APPSBL"; /* uboot */
> > > + reg = <0x000f0000 0x00080000>;
> > > + read-only;
> > > + };
> > > + partition@170000 {
> > > + label = "ART";
> > > + reg = <0x00170000 0x00010000>;
> > > + read-only;
> > > + };
> > > + partition@180000 {
> > > + label = "cfg";
> > > + reg = <0x00180000 0x00040000>;
> > > + };
> > > + partition@1c0000 {
> > > + label = "firmware";
> > > + compatible = "denx,fit";
> > > + reg = <0x001c0000 0x01e40000>;
> > > + };
> > > + };
> > > + };
> > > +};
> > > +
> > > +/* Some DVK boards ship without NAND */
> > > +&nand {
> > > + status = "okay";
> > > +
> > > + pinctrl-0 = <&nand_pins>;
> > > + pinctrl-names = "default";
> > > +};
> > > +
> > > +&blsp1_uart1 {
> > > + status = "okay";
> > > +
> > > + pinctrl-0 = <&serial_pins>;
> > > + pinctrl-names = "default";
> > > +};
> > > +
> > > +&cryptobam {
> > > + status = "okay";
> > > +};
> > > +
> > > +&crypto {
> > > + status = "okay";
> > > +};
> > > +
> > > +&mdio {
> > > + status = "okay";
> > > +
> > > + pinctrl-0 = <&mdio_pins>;
> > > + pinctrl-names = "default";
> > > +};
> > > +
> > > +&pcie0 {
> > > + status = "okay";
> > > +
> > > + perst-gpio = <&tlmm 38 GPIO_ACTIVE_LOW>;
> > > + wake-gpio = <&tlmm 50 GPIO_ACTIVE_LOW>;
> > > +
> > > + /* Free slot for use */
> > > + bridge@0,0 {
> > > + reg = <0x00000000 0 0 0 0>;
> > > + #address-cells = <3>;
> > > + #size-cells = <2>;
> > > + ranges;
> > > + };
> > > +};
> > > +
> > > +&wifi0 {
> > > + status = "okay";
> > > +
> > > + qcom,ath10k-calibration-variant = "8devices-Habanero";
> > > +};
> > > +
> > > +&wifi1 {
> > > + status = "okay";
> > > +
> > > + qcom,ath10k-calibration-variant = "8devices-Habanero";
> > > +};
> > > +
> > > +&usb3_ss_phy {
> > > + status = "okay";
> > > +};
> > > +
> > > +&usb3_hs_phy {
> > > + status = "okay";
> > > +};
> > > +
> > > +&usb3 {
> > > + status = "okay";
> > > +};
> > > +
> > > +&usb2_hs_phy {
> > > + status = "okay";
> > > +};
> > > +
> > > +&usb2 {
> > > + status = "okay";
> > > +};
> > > --
> > > 2.26.2
> > >
> >
> > Hi,
> > Is there an issue with the patch preventing the review?
> >
>
> Found this in my inbox and I don't know why I never replied to you,
> perhaps because kernel test robot says it doesn't build...
>
> I tried to apply it now but there's no "vqmmc" so it doesn't build :/
>
>
> If you're still interested in this I'd be happy to merge it if you can
> fix up the vqmmc - and if respinning it I would appreciate if you could
> sort the nodes alphabetically.
>
> Regards,
> Bjorn

Hi,
This patch series depends on:
https://patchwork.kernel.org/patch/11765789/
https://patchwork.kernel.org/patch/11760437/

USB nodes appear to finally be picked for the Qcom tree while the VQMMC LDO
is still pending.

I am still interested in this and was planning to send the updated
versions anyway soon.
I Will respin these and reorder the nodes.

Regards,
Robert