Received: by 2002:a05:7412:37c9:b0:e2:908c:2ebd with SMTP id jz9csp878841rdb; Tue, 19 Sep 2023 12:58:15 -0700 (PDT) X-Google-Smtp-Source: AGHT+IE9lUMVv4Poz+9owE8OAGRBJVhK9R6/DwvR/tQAL9L1I03E65txfepxSSL/qBteXdCR5Nn/ X-Received: by 2002:a05:6358:3381:b0:135:46d9:12f7 with SMTP id i1-20020a056358338100b0013546d912f7mr963464rwd.26.1695153495091; Tue, 19 Sep 2023 12:58:15 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1695153495; cv=none; d=google.com; s=arc-20160816; b=tUjHZLKLuCGZ0/AXYaUZxAvN7OvlqCuW/R5E9NdjsmjSrsViJ1EFTcWmtmR8ZtPDwk E7n+8Ko6ACKO5wC2rPZ8ceMrUM6ZKUPz+cSjiUC+mb262X68DhpzH3GyXL8QZf+ta83l SU/3q1zNjAj7XNPtWlJKDXFAM+0BLts6SNu890HHZEWuK6srXRIK3aWLSJoyxCXlkupw 3H0SezP3MLuxNPjjRI2jm6ZLKWqz/CTkN5O+3NQB5TAQRRwAXazfkaWAire+pxKmJpxl KO6rHKTRODB44B4iEj4Ez+Pfqy91ZYAz1LkUSYFNZ5bjEqx99xwK28qW74Aseq9jpYJY m4qA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature; bh=hw+ZtaSWJmoBVm/7gbKWOSvFtd9rhbbmH8I4RYolU7I=; fh=a33CHhCAZQlFHJo/5D2j/8TRkb0Wp8aKNGU4Rdcyka0=; b=s5t36E1p6v0FlkqRwwuKOXtpQ3EcaH7MtWy3ztjD/uyieNTcDI2lwFLOlR7S61wVhk /pfCJ652vo7ezZOrAl6FQ/PvIUIVZyoD7C+6lWBqNs2bAahchyjuNNn0Iv6YHNM44yMP PSKSiZJfwofRS9dnAoLePfcd+C0a3rXjgbH5nfgr5U4xXa0pBicsfvfyRXdwc7LeWPQx H5HSUihYugOOyTZEDonEYFh1AgnyW9BlZZeGgG4uNBkAPkuoJjSkvdmRgpdtvzf5cOM5 J/xK50P8yOJJxQWF19ZyckSX0KarLJK18NZ5sifB024X95Ug79UwmF6ibpevM8MWQlZm /g8A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=Q4dlbFfT; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:8 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from fry.vger.email (fry.vger.email. [2620:137:e000::3:8]) by mx.google.com with ESMTPS id l184-20020a6391c1000000b00578acf1e8a3si1949127pge.576.2023.09.19.12.58.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 19 Sep 2023 12:58:15 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:8 as permitted sender) client-ip=2620:137:e000::3:8; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=Q4dlbFfT; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:8 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by fry.vger.email (Postfix) with ESMTP id 591318263EBE; Tue, 19 Sep 2023 12:58:06 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at fry.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232717AbjIST6C (ORCPT + 99 others); Tue, 19 Sep 2023 15:58:02 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48852 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232036AbjIST6B (ORCPT ); Tue, 19 Sep 2023 15:58:01 -0400 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C59D29D for ; Tue, 19 Sep 2023 12:57:54 -0700 (PDT) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 596BDC433C7; Tue, 19 Sep 2023 19:57:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1695153474; bh=xHCh98iOkChUThPKdLQGQweaVZPtykZ08GJEQBsDwbo=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=Q4dlbFfTh4KP61zpzZex9vqa15C6MwxIvBmC0o/U0M098yBH/0QFSec5l0mI3L2+x TaeBviCfDfUL/ZCXXrQkehJIyyZIB3I6/uWWut7gpQxcy5ttTaHPzwsCbqT+AT6/1x 64i+djh5xqlBVZsbYkEubDoqBk8NcUKtlBteCeGenDn9ZY7JP/bXfCkh1Lk6j9Ahp5 klf1x8Q8N+UwXIRtgdEk0yU7RnL9L0gdER15F4qV4MF9Ewu/1s2lmS7pvH20cui3PG UdrFtr16rms8Y4MUxoLa8PkQ0dqT9+qSr97dTN3j5AqXhCJPcXUjxzq9dYthiylS6h Q5cdC9DO5hH+g== Received: (nullmailer pid 93910 invoked by uid 1000); Tue, 19 Sep 2023 19:57:52 -0000 Date: Tue, 19 Sep 2023 14:57:52 -0500 From: Rob Herring To: Chen-Yu Tsai Cc: Lee Jones , Krzysztof Kozlowski , Conor Dooley , Matthias Brugger , AngeloGioacchino Del Regno , Mark Brown , Zhiyong Tao , devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org Subject: Re: [PATCH v3 05/12] regulator: dt-bindings: mt6358: Add MT6366 PMIC Message-ID: <20230919195752.GA85007-robh@kernel.org> References: <20230919104357.3971512-1-wenst@chromium.org> <20230919104357.3971512-6-wenst@chromium.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20230919104357.3971512-6-wenst@chromium.org> X-Spam-Status: No, score=-1.2 required=5.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,MAILING_LIST_MULTI, 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 fry.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (fry.vger.email [0.0.0.0]); Tue, 19 Sep 2023 12:58:06 -0700 (PDT) On Tue, Sep 19, 2023 at 06:43:48PM +0800, Chen-Yu Tsai wrote: > From: Zhiyong Tao > > The MediaTek MT6366 PMIC is similar to the MT6358 PMIC. It is designed > to be paired with the MediaTek MT8186 SoC. It has 9 buck regulators and > 29 LDO regulators, not counting ones that feed internally and basically > have no controls. The regulators are named after their intended usage > for the SoC and system design, thus not named generically as ldoX or > dcdcX, but as vcn33 or vgpu. > > The differences compared to the MT6358 are minimal: > - Regulators removed: VCAMA1, VCAMA2, VCAMD, VCAMIO, VLDO28 > - Regulators added: VM18, VMDDR, VSRAM_CORE > > Add a binding document describing all the regulators and their supplies. > > Signed-off-by: Zhiyong Tao > [wens@chromium.org: major rework and added commit message] > Signed-off-by: Chen-Yu Tsai > --- > Changes since v2: > - Merged all the propertyPatterns together; the if-then sections now > only block out invalid properties > > Changes since v1: > - Replaced underscores in supply names to hyphens > - Merged with MT6358 regulator binding > - Added MT6358 fallback compatible to MT6366 regulator > > Changes since Zhiyong's last version (v4) [1]: > - simplified regulator names > - added descriptions to regulators > - removed bogus regulators (*_sshub) > - merged vcn33-wifi and vcn33-bt as vcn33 > - added missing regulators (vm18, vmddr, vsram-core) > - cut down examples to a handful of cases and made them complete > - expanded commit message a lot > > [1] https://lore.kernel.org/linux-arm-kernel/20220823123745.14061-1-zhiyong.tao@mediatek.com/ > > .../regulator/mediatek,mt6358-regulator.yaml | 120 +++++++++++++++--- > 1 file changed, 104 insertions(+), 16 deletions(-) > > diff --git a/Documentation/devicetree/bindings/regulator/mediatek,mt6358-regulator.yaml b/Documentation/devicetree/bindings/regulator/mediatek,mt6358-regulator.yaml > index c5f336318ec2..05e381899d08 100644 > --- a/Documentation/devicetree/bindings/regulator/mediatek,mt6358-regulator.yaml > +++ b/Documentation/devicetree/bindings/regulator/mediatek,mt6358-regulator.yaml > @@ -16,14 +16,18 @@ description: > > properties: > compatible: > - const: mediatek,mt6358-regulator > + oneOf: > + - const: mediatek,mt6358-regulator > + - items: > + - const: mediatek,mt6366-regulator > + - const: mediatek,mt6358-regulator Would the mt6366 regulator driver(s) function with the mt6358 driver unchanged? If not, then not really much point in having the fallback. > > vsys-ldo1-supply: > description: Supply for LDOs vfe28, vxo22, vcn28, vaux18, vaud28, vsim1, vusb, vbif28 > vsys-ldo2-supply: > - description: Supply for LDOs vldo28, vio28, vmc, vmch, vsim2 > + description: Supply for LDOs vldo28 (MT6358 only), vio28, vmc, vmch, vsim2 > vsys-ldo3-supply: > - description: Supply for LDOs vcn33, vcama1, vcama2, vemc, vibr > + description: Supply for LDOs vcn33, vcama[12] (MT6358 only), vemc, vibr > vsys-vcore-supply: > description: Supply for buck regulator vcore > vsys-vdram1-supply: > @@ -43,18 +47,20 @@ properties: > vsys-vs2-supply: > description: Supply for buck regulator vs2 > vs1-ldo1-supply: > - description: Supply for LDOs vrf18, vefuse, vcn18, vcamio, vio18 > + description: > + Supply for LDOs vrf18, vefuse, vcn18, vcamio (MT6358 only), vio18, vm18 (MT6366 only) > vs2-ldo1-supply: > - description: Supply for LDOs vdram2 > + description: Supply for LDOs vdram2, vmddr (MT6366 only) > vs2-ldo2-supply: > description: Supply for LDOs vrf12, va12 > vs2-ldo3-supply: > - description: Supply for LDOs vsram-gpu, vsram-others, vsram-proc11, vsram-proc12 > + description: > + Supply for LDOs vsram-core (MT6366 only), vsram-gpu, vsram-others, vsram-proc11, vsram-proc12 > vs2-ldo4-supply: > description: Supply for LDO vcamd > > patternProperties: > - "^buck_v(core|dram1|gpu|modem|pa|proc1[12]|s[12])$": > + "^(buck_)?v(core|dram1|gpu|modem|pa|proc1[12]|s[12])$": > description: Buck regulators > type: object > $ref: regulator.yaml# > @@ -69,7 +75,7 @@ patternProperties: > enum: [0, 1] > unevaluatedProperties: false > > - "^ldo_v(a|rf)12$": > + "^(ldo_)?v(a|rf)12$": > description: LDOs with fixed 1.2V output and 0~100/10mV tuning > type: object > $ref: regulator.yaml# > @@ -77,15 +83,16 @@ patternProperties: > regulator-allowed-modes: false > unevaluatedProperties: false > > - "^ldo_v((aux|cn|io|rf)18|camio)$": > - description: LDOs with fixed 1.8V output and 0~100/10mV tuning > + "^(ldo_)?v((aux|cn|io|rf)18|camio)$": > + description: > + LDOs with fixed 1.8V output and 0~100/10mV tuning (vcn18 on MT6366 has variable output) > type: object > $ref: regulator.yaml# > properties: > regulator-allowed-modes: false > unevaluatedProperties: false > > - "^ldo_vxo22$": > + "^(ldo_)?vxo22$": > description: LDOs with fixed 2.2V output and 0~100/10mV tuning > type: object > $ref: regulator.yaml# > @@ -93,7 +100,7 @@ patternProperties: > regulator-allowed-modes: false > unevaluatedProperties: false > > - "^ldo_v(aud|bif|cn|fe|io)28$": > + "^(ldo_)?v(aud|bif|cn|fe|io)28$": > description: LDOs with fixed 2.8V output and 0~100/10mV tuning > type: object > $ref: regulator.yaml# > @@ -101,7 +108,7 @@ patternProperties: > regulator-allowed-modes: false > unevaluatedProperties: false > > - "^ldo_vusb$": > + "^(ldo_)?vusb$": > description: LDOs with fixed 3.0V output and 0~100/10mV tuning > type: object > $ref: regulator.yaml# > @@ -109,7 +116,7 @@ patternProperties: > regulator-allowed-modes: false > unevaluatedProperties: false > > - "^ldo_vsram_(gpu|others|proc1[12])$": > + "^(ldo_)?vsram[_-](core|gpu|others|proc1[12])$": > description: LDOs with variable output > type: object > $ref: regulator.yaml# > @@ -117,7 +124,7 @@ patternProperties: > regulator-allowed-modes: false > unevaluatedProperties: false > > - "^ldo_v(cama[12]|camd|cn33|dram2|efuse|emc|ibr|ldo28|mc|mch|sim[12])$": > + "^(ldo_)?v(cama[12]|camd|cn33|dram2|efuse|emc|ibr|ldo28|m18|mc|mch|mddr|sim[12])$": > description: LDOs with variable output and 0~100/10mV tuning > type: object > $ref: regulator.yaml# > @@ -130,11 +137,50 @@ required: > > additionalProperties: false > > +allOf: > + - if: > + properties: > + compatible: > + const: mediatek,mt6358-regulator > + then: > + patternProperties: > + # Old regulator node name scheme (with prefix and underscores) only > + # ([^y-] is used to avoid matching -supply > + "^(? + "^ldo_vsram-": false > + # vsram_core regulator doesn't exist on MT6358 > + "^ldo_vsram[-_]core$": false > + > + properties: > + # vm18 and vmddr regulators don't exist on MT6358 > + ldo_vm18: false > + ldo_vmddr: false > + > + - if: > + properties: > + compatible: > + contains: > + const: mediatek,mt6366-regulator > + then: > + patternProperties: > + # Prefer cleaned up regulator node names > + "^(buck|ldo)_": false > + # Don't allow underscores > + "^vsram_": false > + # vcam* regulators don't exist on MT6366 > + "^vcam": false > + > + properties: > + # vldo28 regulator doesn't exist on MT6366 > + vldo28: false > + # vs2_ldo4 supply pin doesn't exist on MT6366 > + vs2-ldo4-supply: false > + > examples: > - | > #include > > - regulator { > + mt6358-regulator { regulator or regulators is preferred. > compatible = "mediatek,mt6358-regulator"; > > buck_vgpu { > @@ -156,4 +202,46 @@ examples: > }; > }; > > + mt6366-regulator { > + compatible = "mediatek,mt6366-regulator", "mediatek,mt6358-regulator"; > + > + vdram1 { > + regulator-name = "pp1125_emi_vdd2"; > + regulator-min-microvolt = <1125000>; > + regulator-max-microvolt = <1125000>; > + regulator-ramp-delay = <12500>; > + regulator-enable-ramp-delay = <0>; > + regulator-allowed-modes = + MT6397_BUCK_MODE_FORCE_PWM>; > + regulator-always-on; > + }; > + > + vproc11 { > + regulator-name = "ppvar_dvdd_proc_bc_mt6366"; > + regulator-min-microvolt = <600000>; > + regulator-max-microvolt = <1200000>; > + regulator-ramp-delay = <6250>; > + regulator-enable-ramp-delay = <200>; > + regulator-allowed-modes = + MT6397_BUCK_MODE_FORCE_PWM>; > + regulator-always-on; > + }; > + > + vmddr { > + regulator-name = "pm0750_emi_vmddr"; > + regulator-min-microvolt = <700000>; > + regulator-max-microvolt = <750000>; > + regulator-enable-ramp-delay = <325>; > + regulator-always-on; > + }; > + > + vsram-proc11 { > + regulator-name = "pp0900_dvdd_sram_bc"; > + regulator-min-microvolt = <850000>; > + regulator-max-microvolt = <1120000>; > + regulator-ramp-delay = <6250>; > + regulator-enable-ramp-delay = <240>; > + regulator-always-on; > + }; > + }; > ... > -- > 2.42.0.459.ge4e396fd5e-goog >