Received: by 2002:a05:6359:6284:b0:131:369:b2a3 with SMTP id se4csp1127266rwb; Sat, 5 Aug 2023 07:53:40 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFkDn5QzRsEblLCpekTfgBrgYIG8XGCs/9b8ClkTLxX9VEgAw+3d6ANtgRbr1qlFtA+hNQu X-Received: by 2002:a17:906:cc53:b0:99b:ebf9:90f2 with SMTP id mm19-20020a170906cc5300b0099bebf990f2mr3755541ejb.45.1691247220598; Sat, 05 Aug 2023 07:53:40 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1691247220; cv=none; d=google.com; s=arc-20160816; b=BXbgoBuNnd2k7YKCJYXv+30AJsZREFb7sLhsjytlN/6f4N8VYjctTK0IJSDmZCkit4 G+k9pJyT3YkUoXaujCUhStVR+YAqi35X3biLpODEMefx1TMFYR6ITuAoF3wBo3H2X0ud BRDExOEgXValz8o5wSUlQPYdtBnHipGXTLKq3/72W07WWYSyELbj2vh0Fw2TWYV8VzqY TwlaCNkgg9Muu6eu8PBWAOiq8nW7uL02WK4W2pIOo2vaKwtBpF3XgprEHT15/ASM879P n20XHJWuqB/lJDMCxVkkTiStnq2oLoCsXe06lCIPAjDwM/JW89YZwZH3Y+rVoW8bx60T iVsg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :organization:references:in-reply-to:message-id:subject:cc:to:from :date; bh=RaUNneF0frd95VToEk/m2mS9r6q2b7nVc6hJNlAWOz4=; fh=D8IOGNHohrJclPfSt30pWm2nI9bVH6bxp4DFBdWF6ss=; b=YMxDxEc7QZqXiqQVsSx0OcOfXIA1hDPSAgtG3D60KWZNtOj/ddPHGVaBYsI/Dmc68T dSr9eEjtKlMzJbvxCDyhtyBdBjAqQ0dWmCyYEo6Yghgkb+5BJRCipJbR1HL9A96GjsoF DmWmQomZv2xdECaO8Q5nVZIWcjptazndIaGFK7fV+vE4KSpSbd4QJZ96kb4RFWRRre49 MJVl93yL4HbCV6bn34bDOZlQX6003XaPipst71N943l0h6v4scwtbiHI+Biru2xxjacc KjA7oBUiHOfwxoKVQoUUimf7OutGd+FZ75bHLrYFLUpHwfg+0mSBpUPGDBM1/vDr3dZZ SDbA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id i10-20020a170906264a00b009930d4e327dsi3280609ejc.880.2023.08.05.07.53.16; Sat, 05 Aug 2023 07:53:40 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229715AbjHEOeV (ORCPT + 99 others); Sat, 5 Aug 2023 10:34:21 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49248 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229464AbjHEOeT (ORCPT ); Sat, 5 Aug 2023 10:34:19 -0400 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 2F50810DC; Sat, 5 Aug 2023 07:34:18 -0700 (PDT) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id B815B1FB; Sat, 5 Aug 2023 07:35:00 -0700 (PDT) Received: from slackpad.lan (unknown [172.31.20.19]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 3EA543F59C; Sat, 5 Aug 2023 07:34:16 -0700 (PDT) Date: Sat, 5 Aug 2023 15:33:14 +0100 From: Andre Przywara To: Matthew Croughan Cc: Rob Herring , Krzysztof Kozlowski , Conor Dooley , Chen-Yu Tsai , Jernej Skrabec , Samuel Holland , Krzysztof Kozlowski , devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, linux-kernel@vger.kernel.org Subject: Re: [PATCH v5 2/2] arm64: dts: allwinner: h616: Add Mango Pi MQ-Quad DTS Message-ID: <20230805153314.457f03a6@slackpad.lan> In-Reply-To: <20230805044558.279473-4-matthew.croughan@nix.how> References: <20230805044558.279473-2-matthew.croughan@nix.how> <20230805044558.279473-4-matthew.croughan@nix.how> Organization: Arm Ltd. X-Mailer: Claws Mail 4.1.1 (GTK 3.24.31; x86_64-slackware-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Sat, 5 Aug 2023 05:42:39 +0100 Matthew Croughan wrote: Hi Matthew, thanks for the update, some small thing below: > Mango Pi MQ Quad is a H616 based SBC, add basic support for the board > and its peripherals > > Signed-off-by: Matthew Croughan > > Reviewed-by: Krzysztof Kozlowski > --- > arch/arm64/boot/dts/allwinner/Makefile | 1 + > .../allwinner/sun50i-h616-mangopi-mq-quad.dts | 185 ++++++++++++++++++ > 2 files changed, 186 insertions(+) > create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-h616-mangopi-mq-quad.dts > > diff --git a/arch/arm64/boot/dts/allwinner/Makefile b/arch/arm64/boot/dts/allwinner/Makefile > index 6a96494a2e0a..06c5b97dbfc3 100644 > --- a/arch/arm64/boot/dts/allwinner/Makefile > +++ b/arch/arm64/boot/dts/allwinner/Makefile > @@ -38,5 +38,6 @@ dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-pine-h64.dtb > dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-pine-h64-model-b.dtb > dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-tanix-tx6.dtb > dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-tanix-tx6-mini.dtb > +dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h616-mangopi-mq-quad.dtb > dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h616-orangepi-zero2.dtb > dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h616-x96-mate.dtb > diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616-mangopi-mq-quad.dts b/arch/arm64/boot/dts/allwinner/sun50i-h616-mangopi-mq-quad.dts > new file mode 100644 > index 000000000000..549f85decd85 > --- /dev/null > +++ b/arch/arm64/boot/dts/allwinner/sun50i-h616-mangopi-mq-quad.dts > @@ -0,0 +1,185 @@ > +/* SPDX-License-Identifier: (GPL-2.0+ OR MIT) > + * Copyright (C) 2020 Arm Ltd. > + * > + * Copyright (C) 2023 Matthew Croughan > + */ > + > +/dts-v1/; > + > +#include "sun50i-h616.dtsi" > + > +#include > +#include > +#include > + > +/ { > + model = "MangoPi MQ-Quad"; > + compatible = "widora,mangopi-mq-quad", "allwinner,sun50i-h616"; > + > + aliases { > + serial0 = &uart0; > + }; > + > + chosen { > + stdout-path = "serial0:115200n8"; > + }; > + > + leds { > + compatible = "gpio-leds"; > + > + led-0 { > + function = LED_FUNCTION_STATUS; > + color = ; > + gpios = <&pio 2 13 GPIO_ACTIVE_HIGH>; /* PC13 */ > + }; > + }; > + > + reg_vcc5v: vcc5v { > + /* board wide 5V supply directly from the USB-C socket */ > + compatible = "regulator-fixed"; > + regulator-name = "vcc-5v"; > + regulator-min-microvolt = <5000000>; > + regulator-max-microvolt = <5000000>; > + regulator-always-on; > + }; > + > + reg_vcc3v3: vcc3v3 { > + /* board wide 3V3 supply directly from SY8008 regulator */ > + compatible = "regulator-fixed"; > + regulator-name = "vcc-3v3"; > + regulator-min-microvolt = <3300000>; > + regulator-max-microvolt = <3300000>; > + regulator-always-on; > + }; > + > + wifi_pwrseq: wifi-pwrseq { > + compatible = "mmc-pwrseq-simple"; > + reset-gpios = <&pio 6 18 GPIO_ACTIVE_LOW>; /* PG18 */ > + }; > +}; > + > +&ehci1 { > + status = "okay"; > +}; > + > +&pio { > + vcc-pc-supply = <®_vcc3v3>; > + vcc-pg-supply = <®_vcc3v3>; > + vcc-pi-supply = <®_vcc3v3>; > +}; > + > +/* USB 2 & 3 are on headers only. */ > + > +&mmc0 { > + vmmc-supply = <®_vcc3v3>; > + cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */ > + bus-width = <4>; > + status = "okay"; > +}; > + > +&mmc1 { > + bus-width = <4>; > + mmc-pwrseq = <&wifi_pwrseq>; > + non-removable; > + vmmc-supply = <®_vcc3v3>; > + vqmmc-supply = <®_vcc3v3>; > + pinctrl-0 = <&mmc1_pins>; > + pinctrl-names = "default"; > + status = "okay"; > + > + rtl8723ds: wifi@1 { > + reg = <1>; > + interrupt-parent = <&pio>; > + interrupts = <6 15 IRQ_TYPE_LEVEL_LOW>; /* PG15 */ > + interrupt-names = "host-wake"; > + }; > +}; > + > + > +&uart1 { > + uart-has-rtscts; > + pinctrl-0 = <&uart1_pins>, <&uart1_rts_cts_pins>; > + pinctrl-names = "default"; > + status = "okay"; > + > + bluetooth { > + compatible = "realtek,rtl8723ds-bt"; > + device-wake-gpios = <&pio 6 17 GPIO_ACTIVE_HIGH>; /* PG17 */ > + enable-gpios = <&pio 6 19 GPIO_ACTIVE_HIGH>; /* PG19 */ > + host-wake-gpios = <&pio 6 16 GPIO_ACTIVE_HIGH>; /* PG16 */ > + }; > +}; > + > +&ohci1 { > + status = "okay"; > +}; > + > +&r_i2c { > + status = "okay"; > + > + axp313a: pmic@36 { > + compatible = "x-powers,axp313a"; > + reg = <0x36>; You need "#interrupt-cells = <1>;" and "interrupt-controller;" here, even if the interrupt is not connected. Otherwise the DT validation will fail. And just for the records, this requires the binding patch to make interrupts optional for the AXP313a as well [1]. The rest looks fine now, so with these two properties added: Reviewed-by: Andre Przywara Cheers, Andre [1] https://lore.kernel.org/linux-devicetree/20230802141829.522595-1-andre.przywara@arm.com/ > + regulators { > + /* > + * ALDO1 is feeding both VCC-PLL and VCC-DCXO, always-on is required, > + * as removing power would cut the 1.8v supply for the RAM > + */ > + reg_aldo1: aldo1 { > + regulator-always-on; > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <1800000>; > + regulator-name = "vcc-1v8"; > + }; > + > + reg_dcdc1: dcdc1 { > + regulator-always-on; > + regulator-min-microvolt = <810000>; > + regulator-max-microvolt = <990000>; > + regulator-name = "vdd-gpu-sys"; > + }; > + > + reg_dcdc2: dcdc2 { > + regulator-always-on; > + regulator-min-microvolt = <810000>; > + regulator-max-microvolt = <1100000>; > + regulator-name = "vdd-cpu"; > + }; > + > + reg_dcdc3: dcdc3 { > + regulator-always-on; > + regulator-min-microvolt = <1500000>; > + regulator-max-microvolt = <1500000>; > + regulator-name = "vdd-dram"; > + }; > + > + }; > + }; > +}; > + > +&uart0 { > + pinctrl-names = "default"; > + pinctrl-0 = <&uart0_ph_pins>; > + status = "okay"; > +}; > + > +&usbotg { > + /* > + * PHY0 pins are connected to a USB-C socket, but a role switch > + * is not implemented: both CC pins are pulled to GND. > + * The VBUS pins power the device, so a fixed peripheral mode > + * is the best choice. > + * The board can be powered via GPIOs, in this case port0 *can* > + * act as a host (with a cable/adapter ignoring CC), as VBUS is > + * then provided by the GPIOs. Any user of this setup would > + * need to adjust the DT accordingly: dr_mode set to "host", > + * enabling OHCI0 and EHCI0. > + */ > + dr_mode = "peripheral"; > + status = "okay"; > +}; > + > +&usbphy { > + usb1_vbus-supply = <®_vcc5v>; > + status = "okay"; > +};