Received: by 2002:a05:6358:d09b:b0:dc:cd0c:909e with SMTP id jc27csp6075863rwb; Mon, 14 Nov 2022 14:00:44 -0800 (PST) X-Google-Smtp-Source: AA0mqf6kdWXZNC27Y5a79dp1lLZWtDV/KXQp4Kt5cbfRlxpUI9NrswSwOzXneYKrkADa8a/DBLR4 X-Received: by 2002:a17:90a:6d8f:b0:214:2ee7:3dc with SMTP id a15-20020a17090a6d8f00b002142ee703dcmr15287500pjk.105.1668463244378; Mon, 14 Nov 2022 14:00:44 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1668463244; cv=none; d=google.com; s=arc-20160816; b=JcT1u3ut7FP4y1he12ElTsnG7FNVK8t8D7D+l/V8zc9RWYTVk7d9KexrOLydVP93a5 Dni11+FvbxiYvRP2uFI085wSXKcSs6g27BVZ+DqQY45St5JlxijrEuAteFZ7nn2jqNZP 1qMFxcKvVW8R+bXUEQHIRUtPqJ6+uN8m4dKGv6sy7kq02+bUdaQ4+Z3gv6TaEA1TPMlz IefpiWtkUb0lUAl9rjlA5xHDL7ERKktq01bB+tGj6UkdqTk/bEu6vi3TEMAm6A6Q/b4w pL3MA1CUga41D2jrAhWrOQ6X6cjlWVp5LQtNoBaOsxZ8lwNhfnrTCQKc9c84RF4Sqo/z W7fw== 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 :references:in-reply-to:message-id:cc:to:subject:from:date; bh=zeLRCIEcNY2/zSqjXgOBuDQnjvLj34GNjrC1ROG4IcE=; b=KU3ZOQsbvT72tQOEltu8RMvQVt5UmgdKxkkvTUucNbm1yY99eUti+uD0oZX4JzTVGL djFKUJfBmeRMBOiEx1nFGFRWTfoA8sQzyBHcdP9E1zT4EVmcTugtxN0Yb3o/x6sUcX46 MjZNcL1P5TVoaeoC741Pjuzzewoga+Fz1x9eaW321+UvdJpv8Eumlk+WMa2cyg2OJiuc UJ6ONeM4o9xmXqsEDcl9bLQMysjeHzNScPjCEIgJPq1UxKjTw5ng9vozrXifEOo78bEo +TUPP8bPMTbFqpS+c5w+FZxPy9oeGS3zvo0nWpx25GvY9M5YPhvCUc2RcUtjA+zs0jOj dn+A== 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 Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id 14-20020a630d4e000000b0046b121a3246si10323688pgn.842.2022.11.14.14.00.33; Mon, 14 Nov 2022 14:00:44 -0800 (PST) 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237153AbiKNVA4 convert rfc822-to-8bit (ORCPT + 88 others); Mon, 14 Nov 2022 16:00:56 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40102 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237059AbiKNVAy (ORCPT ); Mon, 14 Nov 2022 16:00:54 -0500 Received: from relay04.th.seeweb.it (relay04.th.seeweb.it [IPv6:2001:4b7a:2000:18::165]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DB71710A5 for ; Mon, 14 Nov 2022 13:00:52 -0800 (PST) Received: from [192.168.2.144] (bband-dyn193.178-41-216.t-com.sk [178.41.216.193]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (2048 bits)) (No client certificate requested) by m-r1.th.seeweb.it (Postfix) with ESMTPSA id 2FF9C1F68C; Mon, 14 Nov 2022 22:00:49 +0100 (CET) Date: Mon, 14 Nov 2022 22:00:42 +0100 From: Martin Botka Subject: Re: [PATCH V2 2/2] arm64: dts: Add basic support for BIQU CB1 To: Jernej =?iso-8859-2?q?=A9krabec?= Cc: martin.botka1@gmail.com, ~postmarketos/upstreaming@lists.sr.ht, Konrad Dybcio , AngeloGioacchino Del Regno , Marijn Suijten , Jami Kettunen , Paul Bouchara , Yenda , Rob Herring , Krzysztof Kozlowski , Chen-Yu Tsai , Samuel Holland , Andre Przywara , Maxime Ripard , Andrew Lunn , Conley Lee , devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, linux-kernel@vger.kernel.org Message-Id: <6PVCLR.2VYE5Q51SD7C2@somainline.org> In-Reply-To: <37920504.10thIPus4b@jernej-laptop> References: <20221114172018.1876608-1-martin.botka@somainline.org> <3191151.oiGErgHkdL@jernej-laptop> <37920504.10thIPus4b@jernej-laptop> X-Mailer: geary/40.0 MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-2; format=flowed Content-Transfer-Encoding: 8BIT X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,SPF_HELO_NONE, SPF_PASS autolearn=unavailable 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 Mon, Nov 14 2022 at 09:47:58 PM +01:00:00, Jernej ?krabec wrote: > Dne ponedeljek, 14. november 2022 ob 21:38:08 CET je Martin Botka > napisal(a): >> On Mon, Nov 14 2022 at 09:16:29 PM +01:00:00, Jernej ?krabec >> >> wrote: >> > Hi Martin, >> > >> > Dne ponedeljek, 14. november 2022 ob 18:20:16 CET je Martin Botka >> > >> > napisal(a): >> >> CB1 is Compute Module style board that plugs into Rpi board >> style >> >> >> >> adapter or >> >> >> >> Manta 3D printer boards (M4P/M8P). >> >> >> >> The board has: >> >> H616 SoC >> >> 1GB of RAM >> >> AXP313A PMIC >> >> >> >> And the actual boards that CB1 plugs in are just extension to it >> >> >> >> with ports >> >> >> >> and thus are not split in DT. >> >> >> >> Boards have: >> >> 4x (3x for Manta boards) USB and 1 USB OTG. >> >> SDcard slot for loading images. >> >> Ethernet port wired to the internal PHY. >> >> 2x HDMI 2.0. >> >> Power and Status LEDs. >> >> >> >> Currently working: >> >> Booting >> >> USB >> >> UART >> >> >> >> Signed-off-by: Martin Botka >> >> --- >> >> Changes in V2: >> >> Add proper board compatible >> >> Add regulator prefix for vcc5v >> >> Drop okay status from PMIC >> >> Drop standby_param >> >> >> >> arch/arm64/boot/dts/allwinner/Makefile | 1 + >> >> .../dts/allwinner/sun50i-h616-biqu-cb1.dts | 186 >> >> >> >> ++++++++++++++++++ >> >> >> >> 2 files changed, 187 insertions(+) >> >> create mode 100644 >> >> >> >> arch/arm64/boot/dts/allwinner/sun50i-h616-biqu-cb1.dts >> >> >> >> diff --git a/arch/arm64/boot/dts/allwinner/Makefile >> >> b/arch/arm64/boot/dts/allwinner/Makefile index >> >> >> >> 6a96494a2e0a..223f1be73541 >> >> >> >> 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-biqu-cb1.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-biqu-cb1.dts >> >> b/arch/arm64/boot/dts/allwinner/sun50i-h616-biqu-cb1.dts new >> file >> >> >> >> mode >> >> >> >> 100644 >> >> index 000000000000..297536d7629a >> >> --- /dev/null >> >> +++ b/arch/arm64/boot/dts/allwinner/sun50i-h616-biqu-cb1.dts >> >> @@ -0,0 +1,186 @@ >> >> +// SPDX-License-Identifier: (GPL-2.0+ or MIT) >> >> +/* >> >> + * Copyright (C) 2022 Arm Ltd. >> > >> > I suppose Arm Ltd. has nothing to do with this board? Put yours >> > copyrights >> > there. >> >> Correct. Was a left over from Opi Zero 2 with just changed year. >> Will >> correct in V3 with the rest of the changes >> >> >> + */ >> >> + >> >> +/dts-v1/; >> >> + >> >> +#include "sun50i-h616.dtsi" >> >> + >> >> +#include >> >> +#include >> >> +#include >> >> + >> >> +/ { >> >> + model = "BIQU CB1"; >> >> + compatible = "biqu,cb1", "allwinner,sun50i-h616"; >> >> + >> >> + aliases { >> >> + serial0 = &uart0; >> >> + }; >> >> + >> >> + chosen { >> >> + stdout-path = "serial0:115200n8"; >> >> + }; >> >> + >> >> + leds { >> >> + compatible = "gpio-leds"; >> >> + >> >> + led-0 { >> >> + function = LED_FUNCTION_POWER; >> >> + color = ; >> >> + gpios = <&pio 2 12 GPIO_ACTIVE_HIGH>; /* >> > >> > PC12 */ >> > >> >> + default-state = "on"; >> >> + }; >> >> + >> >> + led-1 { >> >> + function = LED_FUNCTION_STATUS; >> >> + color = ; >> >> + gpios = <&pio 2 13 GPIO_ACTIVE_HIGH>; /* >> > >> > PC13 */ >> > >> >> + }; >> >> + }; >> >> + >> >> + reg_vcc5v: regulator_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_usb1_vbus: regulator-usb1-vbus { >> >> + compatible = "regulator-fixed"; >> >> + regulator-name = "usb1-vbus"; >> >> + regulator-min-microvolt = <5000000>; >> >> + regulator-max-microvolt = <5000000>; >> >> + vin-supply = <®_vcc5v>; >> >> + enable-active-high; >> >> + gpio = <&pio 2 16 GPIO_ACTIVE_HIGH>; /* PC16 */ >> >> + }; >> >> +}; >> >> + >> >> +&ehci0 { >> >> + status = "okay"; >> >> +}; >> >> + >> >> +&ehci1 { >> >> + status = "okay"; >> >> +}; >> >> + >> >> +&ehci2 { >> >> + status = "okay"; >> >> +}; >> >> + >> >> +&ehci3 { >> >> + status = "okay"; >> >> +}; >> >> + >> >> +&mmc0 { >> >> + vmmc-supply = <®_dldo1>; >> >> + cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */ >> >> + no-1-8-v; >> >> + bus-width = <4>; >> >> + status = "disabled"; >> >> +}; >> >> + >> >> +&ohci0 { >> >> + status = "okay"; >> >> +}; >> >> + >> >> +&ohci1 { >> >> + status = "okay"; >> >> +}; >> >> + >> >> +&ohci2 { >> >> + status = "okay"; >> >> +}; >> >> + >> >> +&ohci3 { >> >> + status = "okay"; >> >> +}; >> >> + >> >> +&r_i2c { >> >> + status = "okay"; >> >> + >> >> + axp1530: pmic@36 { >> >> + compatible = "x-powers,axp1530"; >> > >> > I see that you send driver for this PMIC separately. Next time >> please >> > mention >> > that this series depends on another, otherwise checks will fail. >> Ping >> > us here >> > once PMIC driver is merged to unblock this. >> > >> > Anyway, RSB is prefered. Can you switch to it? >> >> RSB does initialize but as soon as I try to give it the PMIC via >> RSB it >> doesnt really wanna work so thats a no sadly. > > It's possible that you have to update this table: > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/ > drivers/bus/sunxi-rsb.c?h=v6.1-rc5#n528 > > If still doesn't work, you have to remove RSB support in PMIC driver. > > Is there datasheet for this PMIC? From what i tried to find there isnt. Maybe i did not look hard enough but i do not have one. All i go from here is the downstream kernel. Biqu itself released datasheets for AXP305 and AXP313A. Where the AXP313A is actually used on the board and uses the AXP1530 driver thats found in downstream which did include RSB support. So it looks like to me that AXP313A is just a rebrand of AXP1530. And all other references to downstream kernels i found about AXP1530 or AXP313A used I2C to communicate with the chip. So in this state i would be happy to drop the RSB support from the driver as there seems to be no use for it and leave I2C in. This would be done in V2 alongside any other requested changes > > Best regards, > Jernej > >> >> >> + reg = <0x36>; >> >> + wakeup-source; >> >> + >> >> + regulators{ >> >> + reg_dcdc1: dcdc1 { >> >> + regulator-name = "axp1530- > dcdc1"; >> >> + regulator-min-microvolt = >> > >> > <500000>; >> > >> >> + regulator-max-microvolt = >> > >> > <3400000>; >> > >> >> + regulator-step-delay-us = <25>; >> >> + regulator-final-delay-us = <50>; >> >> + regulator-always-on; >> >> + }; >> >> + >> >> + reg_dcdc2: dcdc2 { >> >> + regulator-name = "axp1530- > dcdc2"; >> >> + regulator-min-microvolt = >> > >> > <500000>; >> > >> >> + regulator-max-microvolt = >> > >> > <1540000>; >> > >> >> + regulator-step-delay-us = <25>; >> >> + regulator-final-delay-us = <50>; >> >> + regulator-ramp-delay = <200>; >> >> + regulator-always-on; >> >> + }; >> >> + >> >> + reg_dcdc3: dcdc3 { >> >> + regulator-name = "axp1530- > dcdc3"; >> >> + regulator-min-microvolt = >> > >> > <500000>; >> > >> >> + regulator-max-microvolt = >> > >> > <1840000>; >> > >> >> + regulator-step-delay-us = <25>; >> >> + regulator-final-delay-us = <50>; >> >> + regulator-always-on; >> >> + }; >> >> + >> >> + reg_aldo1: ldo1 { >> >> + regulator-name = "axp1530- > aldo1"; >> >> + regulator-min-microvolt = >> > >> > <1800000>; >> > >> >> + regulator-max-microvolt = >> > >> > <1800000>; >> > >> >> + regulator-step-delay-us = <25>; >> >> + regulator-final-delay-us = <50>; >> >> + regulator-always-on; >> >> + }; >> >> + >> >> + reg_dldo1: ldo2 { >> >> + regulator-name = "axp1530- > dldo1"; >> >> + regulator-min-microvolt = >> > >> > <3300000>; >> > >> >> + regulator-max-microvolt = >> > >> > <3300000>; >> > >> >> + regulator-step-delay-us = <25>; >> >> + regulator-final-delay-us = <50>; >> >> + regulator-always-on; >> >> + }; >> >> + }; >> >> + }; >> >> +}; >> >> + >> >> +&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. >> >> + */ >> > >> > Above text is verbatim copy from OrangePi Zero2 and I'm not sure >> if >> > it is >> > fully accurate for this board too. Looking at board photo, it >> surely >> > looks >> > like this board has same USB design as Zero2. But if that's true, >> you >> > shouldn't enable OHCI0 and EHCI0 nodes. >> >> Correct. But M8P has a dip switch that enables or disables usbotg. >> As for if it does anything its hard to say. >> >> > Is there any board schematic publicly available for this board? >> >> This is one of the issues. Im in contact with BIQU and asking for >> the >> schematics. >> I hope we can get them released ASAP as it would help me as well. >> >> > Best regards, >> > Jernej >> > >> >> + dr_mode = "peripheral"; >> >> + status = "okay"; >> >> +}; >> >> + >> >> +&usbphy { >> >> + usb1_vbus-supply = <®_usb1_vbus>; >> >> + status = "okay"; >> >> +}; >> >> Best Regards, >> Martin > > > >