Message ID | 20230621185949.2068-2-quic_amelende@quicinc.com |
---|---|
State | New |
Headers |
Return-Path: <linux-kernel-owner@vger.kernel.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp4586456vqr; Wed, 21 Jun 2023 12:15:23 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5HZ/vXdnySBj1yaw1ys2AzW4JMkLy5Xr/bATTfYCHNfMIR6Rtvld8K9D516ujlROqtIQsm X-Received: by 2002:a05:6a20:1454:b0:123:100e:c8bc with SMTP id a20-20020a056a20145400b00123100ec8bcmr3058876pzi.0.1687374923556; Wed, 21 Jun 2023 12:15:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1687374923; cv=none; d=google.com; s=arc-20160816; b=NoJWVL0ZgYqoV+uLbmq4rby0aauLmT+ZObA6b4pn0A7O+9QVgkKCZq9jWDit6ddQAU Aof2af5xes6oThD0WVTuwEN/yAFutcoU0CEyQwgf4TmPuzi+26+julpgoxM4Cw+1XR8M k8WwC9itFHdhuiyrDBxhJ6doCx6JqeHOboAv+k5ND1QPdmkmSU+U/7TMj5QUV9DAhXnT so9JStz+oTuvw0vJdNrf2e9JVmx7VH/1ZJye9R54xIhDTjcAYWlqAm3NqQO3xL1N2r67 80JRMROkXEApagKkWH7ekP+CaZG1e+UHsjX1007pMgTAkxEdYVUjpjvq5mJkJUBorfqu X4FA== 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:date:subject:cc:to:from :dkim-signature; bh=sO2ZxVVfZ3zPNA/y3HOFoZoblai6aytQdi00nfSiPfk=; b=BPMIyGPl/7JaKQfHv/5zVaQ2R7IVUIIEDzVJc/cMAlW+luJ05/8WvsIQdPppFaQoo3 HJa3OgYCSPLNLwtYXOEMua5mPWEcA0cZ88Ad1xhAb6xRYEvafZzJ1hCDE+jbUjagObWB HwXOEW+Qu3ExBuHmg8vlH21THuu4xlZ696W89Kb83wmuBB+b2G8f884Xf5hMADb2z16v irb63fP38PgOas3ZwR8grZ9XzdF2uvgatszKpbcZQ1N9Obec0M9RQ9b5xbDQWRtNKD4W 9mCSIbsIpH7lAmf8LFL3GaWhZ/SJX3FHmPu0RDxWZNH6bu5IMXTqVO3jb1yD+nv2IpmK HNJQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b="oDdLi/Lz"; 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=pass (p=NONE sp=NONE dis=NONE) header.from=quicinc.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id i2-20020a639d02000000b0054fd88c3598si4656683pgd.35.2023.06.21.12.15.09; Wed, 21 Jun 2023 12:15:23 -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; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b="oDdLi/Lz"; 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=pass (p=NONE sp=NONE dis=NONE) header.from=quicinc.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231660AbjFUTBM (ORCPT <rfc822;maxin.john@gmail.com> + 99 others); Wed, 21 Jun 2023 15:01:12 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44008 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231634AbjFUTBI (ORCPT <rfc822;linux-kernel@vger.kernel.org>); Wed, 21 Jun 2023 15:01:08 -0400 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 60015193; Wed, 21 Jun 2023 12:01:05 -0700 (PDT) Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 35LHuCGj014414; Wed, 21 Jun 2023 19:00:57 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-transfer-encoding : content-type; s=qcppdkim1; bh=sO2ZxVVfZ3zPNA/y3HOFoZoblai6aytQdi00nfSiPfk=; b=oDdLi/Lz+oXUD7qF7ephhqnfEkZKnHC13gD3ra99oFfLYHUTWb2Rzs612zr5Oxz1ioKD K/lK7kzS5FDMujDAklwHuyA5pUKr5ZhV/nEOSlSOfaJFPoEoEcGtNOO8QxeB49b3yOEB iwYbsiqNq0c6wiZqRkgxZS1+Cn7nPsb88AWvY5H8dwt0qSB9EFGn0yzbiTn2jKX2sOPB oHLJBXhHmzBIaKERIBZ2aR4Xb+8na+nfUONRD98/mwM5JPRDHeZWm298BGkb5IOT8Bgb LynwlWb/M8F321U9GfWxSawCmCP2u13B99W4YmiYbj0xB6U6k3COsqD1Amc95COlktFP Zw== Received: from nalasppmta03.qualcomm.com (Global_NAT1.qualcomm.com [129.46.96.20]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3rc0sk10gm-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 21 Jun 2023 19:00:56 +0000 Received: from nalasex01a.na.qualcomm.com (nalasex01a.na.qualcomm.com [10.47.209.196]) by NALASPPMTA03.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id 35LJ0tAT031292 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 21 Jun 2023 19:00:55 GMT Received: from hu-amelende-lv.qualcomm.com (10.49.16.6) by nalasex01a.na.qualcomm.com (10.47.209.196) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.42; Wed, 21 Jun 2023 12:00:55 -0700 From: Anjelique Melendez <quic_amelende@quicinc.com> To: <pavel@ucw.cz>, <lee@kernel.org>, <thierry.reding@gmail.com>, <robh+dt@kernel.org>, <krzysztof.kozlowski+dt@linaro.org>, <conor+dt@kernel.org>, <agross@kernel.org>, <andersson@kernel.org> CC: <konrad.dybcio@linaro.org>, <u.kleine-koenig@pengutronix.de>, <linux-leds@vger.kernel.org>, <devicetree@vger.kernel.org>, <linux-kernel@vger.kernel.org>, <linux-arm-msm@vger.kernel.org>, <linux-pwm@vger.kernel.org>, Anjelique Melendez <quic_amelende@quicinc.com> Subject: [PATCH 1/7] dt-bindings: soc: qcom: Add qcom-pbs bindings Date: Wed, 21 Jun 2023 11:59:45 -0700 Message-ID: <20230621185949.2068-2-quic_amelende@quicinc.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230621185949.2068-1-quic_amelende@quicinc.com> References: <20230621185949.2068-1-quic_amelende@quicinc.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-Originating-IP: [10.49.16.6] X-ClientProxiedBy: nalasex01b.na.qualcomm.com (10.47.209.197) To nalasex01a.na.qualcomm.com (10.47.209.196) X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-GUID: 1Cp1etGDSHFBpEL8P1lGRhrSt7VPbeHN X-Proofpoint-ORIG-GUID: 1Cp1etGDSHFBpEL8P1lGRhrSt7VPbeHN X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.591,FMLib:17.11.176.26 definitions=2023-06-21_11,2023-06-16_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 mlxscore=0 phishscore=0 impostorscore=0 mlxlogscore=999 priorityscore=1501 malwarescore=0 adultscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2305260000 definitions=main-2306210158 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED 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: <linux-kernel.vger.kernel.org> X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1769340847829334836?= X-GMAIL-MSGID: =?utf-8?q?1769340847829334836?= |
Series |
Add support for LUT PPG
|
|
Commit Message
Anjelique Melendez
June 21, 2023, 6:59 p.m. UTC
Add binding for the Qualcomm Programmable Boot Sequencer device.
Signed-off-by: Anjelique Melendez <quic_amelende@quicinc.com>
---
.../bindings/soc/qcom/qcom-pbs.yaml | 41 +++++++++++++++++++
1 file changed, 41 insertions(+)
create mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom-pbs.yaml
Comments
On Wed, 21 Jun 2023 11:59:45 -0700, Anjelique Melendez wrote: > Add binding for the Qualcomm Programmable Boot Sequencer device. > > Signed-off-by: Anjelique Melendez <quic_amelende@quicinc.com> > --- > .../bindings/soc/qcom/qcom-pbs.yaml | 41 +++++++++++++++++++ > 1 file changed, 41 insertions(+) > create mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom-pbs.yaml > My bot found errors running 'make DT_CHECKER_FLAGS=-m dt_binding_check' on your patch (DT_CHECKER_FLAGS is new in v5.13): yamllint warnings/errors: ./Documentation/devicetree/bindings/soc/qcom/qcom-pbs.yaml:26:2: [warning] wrong indentation: expected 2 but found 1 (indentation) dtschema/dtc warnings/errors: doc reference errors (make refcheckdocs): See https://patchwork.ozlabs.org/project/devicetree-bindings/patch/20230621185949.2068-2-quic_amelende@quicinc.com The base for the series is generally the latest rc1. A different dependency should be noted in *this* patch. If you already ran 'make dt_binding_check' and didn't see the above error(s), then make sure 'yamllint' is installed and dt-schema is up to date: pip3 install dtschema --upgrade Please check and re-submit after running the above command yourself. Note that DT_SCHEMA_FILES can be set to your schema file to speed up checking your schema. However, it must be unset to test all examples with your schema.
On 21/06/2023 20:59, Anjelique Melendez wrote: > Add binding for the Qualcomm Programmable Boot Sequencer device. > > Signed-off-by: Anjelique Melendez <quic_amelende@quicinc.com> > --- > .../bindings/soc/qcom/qcom-pbs.yaml | 41 +++++++++++++++++++ > 1 file changed, 41 insertions(+) > create mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom-pbs.yaml Except missing testing... few more comments: > > diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom-pbs.yaml b/Documentation/devicetree/bindings/soc/qcom/qcom-pbs.yaml > new file mode 100644 > index 000000000000..0a89c334f95c > --- /dev/null > +++ b/Documentation/devicetree/bindings/soc/qcom/qcom-pbs.yaml Filename matching compatibles, so qcom,pbs > @@ -0,0 +1,41 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/soc/qcom/qcom-pbs.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Qualcomm Technologies, Inc. PBS Qualcomm PBS foo bar a bit more than just one word. E.g. expand PBS acronym > + > +maintainers: > + - Anjelique Melendez <quic_amelende@quicinc.com> > + > +description: | > + Qualcomm PBS (programmable boot sequencer) supports triggering sequences > + for clients upon request. I don't understand what's this. What is "triggering sequences"? What sequences? > + > +properties: > + compatible: > + const: qcom,pbs Missing SoC specific comaptibles. > + > + reg: > + description: | > + Base address of the PBS peripheral. Drop description, it's obvious. > + maxItems: 1 > + Binding looks very incomplete... > +required: > + - compatible > + - reg > + > +additionalProperties: false > + > +examples: > + - | > + pmic { > + #address-cells = <1>; > + #size-cells = <0>; > + > + qcom,pbs@7400 { That's not a proper node name. Do you see anywhere such node? Please, do not work on downstream code, but on mainline. > + compatible = "qcom,pbs"; > + reg = <0x7400>; > + }; > + }; Best regards, Krzysztof
On Wed, Jun 21, 2023 at 11:59:45AM -0700, Anjelique Melendez wrote: > Add binding for the Qualcomm Programmable Boot Sequencer device. > > Signed-off-by: Anjelique Melendez <quic_amelende@quicinc.com> > --- > .../bindings/soc/qcom/qcom-pbs.yaml | 41 +++++++++++++++++++ > 1 file changed, 41 insertions(+) > create mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom-pbs.yaml > > diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom-pbs.yaml b/Documentation/devicetree/bindings/soc/qcom/qcom-pbs.yaml > new file mode 100644 > index 000000000000..0a89c334f95c > --- /dev/null > +++ b/Documentation/devicetree/bindings/soc/qcom/qcom-pbs.yaml > @@ -0,0 +1,41 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/soc/qcom/qcom-pbs.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Qualcomm Technologies, Inc. PBS > + > +maintainers: > + - Anjelique Melendez <quic_amelende@quicinc.com> > + > +description: | > + Qualcomm PBS (programmable boot sequencer) supports triggering sequences > + for clients upon request. > + > +properties: > + compatible: > + const: qcom,pbs > + > + reg: > + description: | > + Base address of the PBS peripheral. > + maxItems: 1 > + > +required: > + - compatible > + - reg > + > +additionalProperties: false > + > +examples: > + - | > + pmic { > + #address-cells = <1>; > + #size-cells = <0>; > + > + qcom,pbs@7400 { > + compatible = "qcom,pbs"; > + reg = <0x7400>; > + }; Why do you need a child node for this? Is there more than 1 instance in a PMIC? Every sub-function of a PMIC doesn't have to have a DT node. Rob
On 6/26/2023 6:58 AM, Rob Herring wrote: > On Wed, Jun 21, 2023 at 11:59:45AM -0700, Anjelique Melendez wrote: >> Add binding for the Qualcomm Programmable Boot Sequencer device. >> >> Signed-off-by: Anjelique Melendez <quic_amelende@quicinc.com> >> --- >> .../bindings/soc/qcom/qcom-pbs.yaml | 41 +++++++++++++++++++ >> 1 file changed, 41 insertions(+) >> create mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom-pbs.yaml >> >> diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom-pbs.yaml b/Documentation/devicetree/bindings/soc/qcom/qcom-pbs.yaml >> new file mode 100644 >> index 000000000000..0a89c334f95c >> --- /dev/null >> +++ b/Documentation/devicetree/bindings/soc/qcom/qcom-pbs.yaml >> @@ -0,0 +1,41 @@ >> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) >> +%YAML 1.2 >> +--- >> +$id: http://devicetree.org/schemas/soc/qcom/qcom-pbs.yaml# >> +$schema: http://devicetree.org/meta-schemas/core.yaml# >> + >> +title: Qualcomm Technologies, Inc. PBS >> + >> +maintainers: >> + - Anjelique Melendez <quic_amelende@quicinc.com> >> + >> +description: | >> + Qualcomm PBS (programmable boot sequencer) supports triggering sequences >> + for clients upon request. >> + >> +properties: >> + compatible: >> + const: qcom,pbs >> + >> + reg: >> + description: | >> + Base address of the PBS peripheral. >> + maxItems: 1 >> + >> +required: >> + - compatible >> + - reg >> + >> +additionalProperties: false >> + >> +examples: >> + - | >> + pmic { >> + #address-cells = <1>; >> + #size-cells = <0>; >> + >> + qcom,pbs@7400 { >> + compatible = "qcom,pbs"; >> + reg = <0x7400>; >> + }; > > Why do you need a child node for this? Is there more than 1 instance in > a PMIC? Every sub-function of a PMIC doesn't have to have a DT node. > We currently have another downstream driver (which is planned to get upstreamed) which also needs a handle to a pbs device in order to properly trigger events. > Rob
On 29/06/2023 04:19, Anjelique Melendez wrote: > > > On 6/26/2023 6:58 AM, Rob Herring wrote: >> On Wed, Jun 21, 2023 at 11:59:45AM -0700, Anjelique Melendez wrote: >>> Add binding for the Qualcomm Programmable Boot Sequencer device. >>> >>> Signed-off-by: Anjelique Melendez <quic_amelende@quicinc.com> >>> --- >>> .../bindings/soc/qcom/qcom-pbs.yaml | 41 +++++++++++++++++++ >>> 1 file changed, 41 insertions(+) >>> create mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom-pbs.yaml >>> >>> diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom-pbs.yaml b/Documentation/devicetree/bindings/soc/qcom/qcom-pbs.yaml >>> new file mode 100644 >>> index 000000000000..0a89c334f95c >>> --- /dev/null >>> +++ b/Documentation/devicetree/bindings/soc/qcom/qcom-pbs.yaml >>> @@ -0,0 +1,41 @@ >>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) >>> +%YAML 1.2 >>> +--- >>> +$id: http://devicetree.org/schemas/soc/qcom/qcom-pbs.yaml# >>> +$schema: http://devicetree.org/meta-schemas/core.yaml# >>> + >>> +title: Qualcomm Technologies, Inc. PBS >>> + >>> +maintainers: >>> + - Anjelique Melendez <quic_amelende@quicinc.com> >>> + >>> +description: | >>> + Qualcomm PBS (programmable boot sequencer) supports triggering sequences >>> + for clients upon request. >>> + >>> +properties: >>> + compatible: >>> + const: qcom,pbs >>> + >>> + reg: >>> + description: | >>> + Base address of the PBS peripheral. >>> + maxItems: 1 >>> + >>> +required: >>> + - compatible >>> + - reg >>> + >>> +additionalProperties: false >>> + >>> +examples: >>> + - | >>> + pmic { >>> + #address-cells = <1>; >>> + #size-cells = <0>; >>> + >>> + qcom,pbs@7400 { >>> + compatible = "qcom,pbs"; >>> + reg = <0x7400>; >>> + }; >> >> Why do you need a child node for this? Is there more than 1 instance in >> a PMIC? Every sub-function of a PMIC doesn't have to have a DT node. >> > > We currently have another downstream driver (which is planned to get upstreamed) > which also needs a handle to a pbs device in order to properly trigger events. Does it have to be a separate driver? Or is it a part of the LPG driver, just being artificially split away? > >> Rob > > >
On 6/29/2023 1:45 AM, Dmitry Baryshkov wrote: > On 29/06/2023 04:19, Anjelique Melendez wrote: >> >> >> On 6/26/2023 6:58 AM, Rob Herring wrote: >>> On Wed, Jun 21, 2023 at 11:59:45AM -0700, Anjelique Melendez wrote: >>>> Add binding for the Qualcomm Programmable Boot Sequencer device. >>>> >>>> Signed-off-by: Anjelique Melendez <quic_amelende@quicinc.com> >>>> --- >>>> .../bindings/soc/qcom/qcom-pbs.yaml | 41 +++++++++++++++++++ >>>> 1 file changed, 41 insertions(+) >>>> create mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom-pbs.yaml >>>> >>>> diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom-pbs.yaml b/Documentation/devicetree/bindings/soc/qcom/qcom-pbs.yaml >>>> new file mode 100644 >>>> index 000000000000..0a89c334f95c >>>> --- /dev/null >>>> +++ b/Documentation/devicetree/bindings/soc/qcom/qcom-pbs.yaml >>>> @@ -0,0 +1,41 @@ >>>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) >>>> +%YAML 1.2 >>>> +--- >>>> +$id: http://devicetree.org/schemas/soc/qcom/qcom-pbs.yaml# >>>> +$schema: http://devicetree.org/meta-schemas/core.yaml# >>>> + >>>> +title: Qualcomm Technologies, Inc. PBS >>>> + >>>> +maintainers: >>>> + - Anjelique Melendez <quic_amelende@quicinc.com> >>>> + >>>> +description: | >>>> + Qualcomm PBS (programmable boot sequencer) supports triggering sequences >>>> + for clients upon request. >>>> + >>>> +properties: >>>> + compatible: >>>> + const: qcom,pbs >>>> + >>>> + reg: >>>> + description: | >>>> + Base address of the PBS peripheral. >>>> + maxItems: 1 >>>> + >>>> +required: >>>> + - compatible >>>> + - reg >>>> + >>>> +additionalProperties: false >>>> + >>>> +examples: >>>> + - | >>>> + pmic { >>>> + #address-cells = <1>; >>>> + #size-cells = <0>; >>>> + >>>> + qcom,pbs@7400 { >>>> + compatible = "qcom,pbs"; >>>> + reg = <0x7400>; >>>> + }; >>> >>> Why do you need a child node for this? Is there more than 1 instance in >>> a PMIC? Every sub-function of a PMIC doesn't have to have a DT node. >>> >> >> We currently have another downstream driver (which is planned to get upstreamed) >> which also needs a handle to a pbs device in order to properly trigger events. > > Does it have to be a separate driver? Or is it a part of the LPG driver, just being artificially split away? Sure, I just discussed with team and we are ok with removing this as a separate driver. Will have that for next version. > >> >>> Rob >> >> >> >
On 30/06/2023 00:53, Anjelique Melendez wrote: > > > On 6/29/2023 1:45 AM, Dmitry Baryshkov wrote: >> On 29/06/2023 04:19, Anjelique Melendez wrote: >>> >>> >>> On 6/26/2023 6:58 AM, Rob Herring wrote: >>>> On Wed, Jun 21, 2023 at 11:59:45AM -0700, Anjelique Melendez wrote: >>>>> Add binding for the Qualcomm Programmable Boot Sequencer device. >>>>> >>>>> Signed-off-by: Anjelique Melendez <quic_amelende@quicinc.com> >>>>> --- >>>>> .../bindings/soc/qcom/qcom-pbs.yaml | 41 +++++++++++++++++++ >>>>> 1 file changed, 41 insertions(+) >>>>> create mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom-pbs.yaml >>>>> >>>>> diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom-pbs.yaml b/Documentation/devicetree/bindings/soc/qcom/qcom-pbs.yaml >>>>> new file mode 100644 >>>>> index 000000000000..0a89c334f95c >>>>> --- /dev/null >>>>> +++ b/Documentation/devicetree/bindings/soc/qcom/qcom-pbs.yaml >>>>> @@ -0,0 +1,41 @@ >>>>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) >>>>> +%YAML 1.2 >>>>> +--- >>>>> +$id: http://devicetree.org/schemas/soc/qcom/qcom-pbs.yaml# >>>>> +$schema: http://devicetree.org/meta-schemas/core.yaml# >>>>> + >>>>> +title: Qualcomm Technologies, Inc. PBS >>>>> + >>>>> +maintainers: >>>>> + - Anjelique Melendez <quic_amelende@quicinc.com> >>>>> + >>>>> +description: | >>>>> + Qualcomm PBS (programmable boot sequencer) supports triggering sequences >>>>> + for clients upon request. >>>>> + >>>>> +properties: >>>>> + compatible: >>>>> + const: qcom,pbs >>>>> + >>>>> + reg: >>>>> + description: | >>>>> + Base address of the PBS peripheral. >>>>> + maxItems: 1 >>>>> + >>>>> +required: >>>>> + - compatible >>>>> + - reg >>>>> + >>>>> +additionalProperties: false >>>>> + >>>>> +examples: >>>>> + - | >>>>> + pmic { >>>>> + #address-cells = <1>; >>>>> + #size-cells = <0>; >>>>> + >>>>> + qcom,pbs@7400 { >>>>> + compatible = "qcom,pbs"; >>>>> + reg = <0x7400>; >>>>> + }; >>>> >>>> Why do you need a child node for this? Is there more than 1 instance in >>>> a PMIC? Every sub-function of a PMIC doesn't have to have a DT node. >>>> >>> >>> We currently have another downstream driver (which is planned to get upstreamed) >>> which also needs a handle to a pbs device in order to properly trigger events. >> >> Does it have to be a separate driver? Or is it a part of the LPG driver, just being artificially split away? > > Sure, I just discussed with team and we are ok with removing this as a separate driver. Will have that > for next version. I saw that the PBS can also be used with the haptics device. Will it talk to the LPG driver? >> >>> >>>> Rob >>> >>> >>> >>
On 29/06/2023 03:19, Anjelique Melendez wrote: >>> +examples: >>> + - | >>> + pmic { >>> + #address-cells = <1>; >>> + #size-cells = <0>; >>> + >>> + qcom,pbs@7400 { >>> + compatible = "qcom,pbs"; >>> + reg = <0x7400>; >>> + }; >> >> Why do you need a child node for this? Is there more than 1 instance in >> a PMIC? Every sub-function of a PMIC doesn't have to have a DT node. >> > > We currently have another downstream driver (which is planned to get upstreamed) > which also needs a handle to a pbs device in order to properly trigger events. I don't see how does it answer Rob's concerns. Neither mine about incomplete binding. You don't need pbs node here for that. Anyway, whatever you have downstream also does not justify any changes. Either upstream these so we can see it or drop this binding. Best regards, Krzysztof
On 7/1/2023 4:03 AM, Krzysztof Kozlowski wrote: > On 29/06/2023 03:19, Anjelique Melendez wrote: > >>>> +examples: >>>> + - | >>>> + pmic { >>>> + #address-cells = <1>; >>>> + #size-cells = <0>; >>>> + >>>> + qcom,pbs@7400 { >>>> + compatible = "qcom,pbs"; >>>> + reg = <0x7400>; >>>> + }; >>> >>> Why do you need a child node for this? Is there more than 1 instance in >>> a PMIC? Every sub-function of a PMIC doesn't have to have a DT node. >>> >> >> We currently have another downstream driver (which is planned to get upstreamed) >> which also needs a handle to a pbs device in order to properly trigger events. > > I don't see how does it answer Rob's concerns. Neither mine about > incomplete binding. You don't need pbs node here for that. > > Anyway, whatever you have downstream also does not justify any changes. > Either upstream these so we can see it or drop this binding. > > Best regards, > Krzysztof > On PMI632, peripherals are partitioned over 2 different SIDs (https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm64/boot/dts/qcom/pmi632.dtsi?h=v6.5-rc1#n42 and https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm64/boot/dts/qcom/pmi632.dtsi?h=v6.5-rc1#n149). Unfortunately, the pbs peripheral and the lpg peripherals are on different PMI632 devices and therefore have different regmaps. If we get rid of the pbs node we need to get a handle to the proper regmap. I see two possible options, we could either introduce a new client property which points to a peripheral on the same device as pbs. i.e. led-controller { compatible = "qcom,pmi632-lpg"; #address-cells = <1>; #size-cells = <0>; #pwm-cells = <2>; nvmem-names = "lpg_chan_sdam"; nvmem = <&pmi632_sdam7>; qcom,pbs-phandle = <&pmi632_gpios>; ..... }; Then when client is probing could do something like the following to get the regmap dn = of_parse_phandle(node, "qcom,pbs-phandle", 0); pdev = of_find_device_by_node(dn); pbs_regmap = dev_get_regmap(&pdev->dev->parent, NULL); Or we could use the nvmem phandle and just have something like this in client's probe dn = of_parse_phandle(node, "nvmem", 0); pdev = of_find_device_by_node(dn); pbs_regmap = dev_get_regmap(&pdev->dev->parent, NULL); Let me know what your thoughts are on this. Thanks, Anjelique
On 11/07/2023 05:52, Anjelique Melendez wrote: > > > On 7/1/2023 4:03 AM, Krzysztof Kozlowski wrote: >> On 29/06/2023 03:19, Anjelique Melendez wrote: >> >>>>> +examples: >>>>> + - | >>>>> + pmic { >>>>> + #address-cells = <1>; >>>>> + #size-cells = <0>; >>>>> + >>>>> + qcom,pbs@7400 { >>>>> + compatible = "qcom,pbs"; >>>>> + reg = <0x7400>; >>>>> + }; >>>> >>>> Why do you need a child node for this? Is there more than 1 instance in >>>> a PMIC? Every sub-function of a PMIC doesn't have to have a DT node. >>>> >>> >>> We currently have another downstream driver (which is planned to get upstreamed) >>> which also needs a handle to a pbs device in order to properly trigger events. >> >> I don't see how does it answer Rob's concerns. Neither mine about >> incomplete binding. You don't need pbs node here for that. >> >> Anyway, whatever you have downstream also does not justify any changes. >> Either upstream these so we can see it or drop this binding. >> >> Best regards, >> Krzysztof >> > > On PMI632, peripherals are partitioned over 2 different SIDs > (https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm64/boot/dts/qcom/pmi632.dtsi?h=v6.5-rc1#n42 > and https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm64/boot/dts/qcom/pmi632.dtsi?h=v6.5-rc1#n149). > Unfortunately, the pbs peripheral and the lpg peripherals are on different > PMI632 devices and therefore have different regmaps. > > If we get rid of the pbs node we need to get a handle to the proper regmap. > I see two possible options, we could either introduce a new client property > which points to a peripheral on the same device as pbs. > > i.e. > led-controller { > compatible = "qcom,pmi632-lpg"; > #address-cells = <1>; > #size-cells = <0>; > #pwm-cells = <2>; > nvmem-names = "lpg_chan_sdam"; > nvmem = <&pmi632_sdam7>; > qcom,pbs-phandle = <&pmi632_gpios>; > ..... > }; > Then when client is probing could do something like the following to get the regmap > > dn = of_parse_phandle(node, "qcom,pbs-phandle", 0); > pdev = of_find_device_by_node(dn); > pbs_regmap = dev_get_regmap(&pdev->dev->parent, NULL); > > > > Or we could use the nvmem phandle and just have something like this in client's probe > > dn = of_parse_phandle(node, "nvmem", 0); > pdev = of_find_device_by_node(dn); > pbs_regmap = dev_get_regmap(&pdev->dev->parent, NULL); > > > > Let me know what your thoughts are on this. Rob asked you - "Is there more than 1 instance in a PMIC?" - and you did not answer positively, just mentioned something about drivers in downstream, which do not matter. So is the answer for that question: yes, you have two instances of the same PMIC differing by presence of PBS and other features"? Best regards, Krzysztof
On 7/10/2023 10:58 PM, Krzysztof Kozlowski wrote: > On 11/07/2023 05:52, Anjelique Melendez wrote: >> >> >> On 7/1/2023 4:03 AM, Krzysztof Kozlowski wrote: >>> On 29/06/2023 03:19, Anjelique Melendez wrote: >>> >>>>>> +examples: >>>>>> + - | >>>>>> + pmic { >>>>>> + #address-cells = <1>; >>>>>> + #size-cells = <0>; >>>>>> + >>>>>> + qcom,pbs@7400 { >>>>>> + compatible = "qcom,pbs"; >>>>>> + reg = <0x7400>; >>>>>> + }; >>>>> >>>>> Why do you need a child node for this? Is there more than 1 instance in >>>>> a PMIC? Every sub-function of a PMIC doesn't have to have a DT node. >>>>> >>>> >>>> We currently have another downstream driver (which is planned to get upstreamed) >>>> which also needs a handle to a pbs device in order to properly trigger events. >>> >>> I don't see how does it answer Rob's concerns. Neither mine about >>> incomplete binding. You don't need pbs node here for that. >>> >>> Anyway, whatever you have downstream also does not justify any changes. >>> Either upstream these so we can see it or drop this binding. >>> >>> Best regards, >>> Krzysztof >>> >> >> On PMI632, peripherals are partitioned over 2 different SIDs >> (https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm64/boot/dts/qcom/pmi632.dtsi?h=v6.5-rc1#n42 >> and https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm64/boot/dts/qcom/pmi632.dtsi?h=v6.5-rc1#n149). >> Unfortunately, the pbs peripheral and the lpg peripherals are on different >> PMI632 devices and therefore have different regmaps. >> >> If we get rid of the pbs node we need to get a handle to the proper regmap. >> I see two possible options, we could either introduce a new client property >> which points to a peripheral on the same device as pbs. >> >> i.e. >> led-controller { >> compatible = "qcom,pmi632-lpg"; >> #address-cells = <1>; >> #size-cells = <0>; >> #pwm-cells = <2>; >> nvmem-names = "lpg_chan_sdam"; >> nvmem = <&pmi632_sdam7>; >> qcom,pbs-phandle = <&pmi632_gpios>; >> ..... >> }; >> Then when client is probing could do something like the following to get the regmap >> >> dn = of_parse_phandle(node, "qcom,pbs-phandle", 0); >> pdev = of_find_device_by_node(dn); >> pbs_regmap = dev_get_regmap(&pdev->dev->parent, NULL); >> >> >> >> Or we could use the nvmem phandle and just have something like this in client's probe >> >> dn = of_parse_phandle(node, "nvmem", 0); >> pdev = of_find_device_by_node(dn); >> pbs_regmap = dev_get_regmap(&pdev->dev->parent, NULL); >> >> >> >> Let me know what your thoughts are on this. > > Rob asked you - "Is there more than 1 instance in a PMIC?" - and you did > not answer positively, just mentioned something about drivers in > downstream, which do not matter. So is the answer for that question: > yes, you have two instances of the same PMIC differing by presence of > PBS and other features"? > Sorry that was a misunderstanding on my part. Yes, answer to Rob's question should have been "We have two instances of PMI632, where one instance holds the pbs peripheral and the other holds the lpg peripherals. The child node for pbs is needed so lpg client can access the PMI632 regmap which contains the pbs peripheral." Thanks, Anjelique
On 11/07/2023 22:12, Anjelique Melendez wrote: >>> >>> On PMI632, peripherals are partitioned over 2 different SIDs >>> (https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm64/boot/dts/qcom/pmi632.dtsi?h=v6.5-rc1#n42 >>> and https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm64/boot/dts/qcom/pmi632.dtsi?h=v6.5-rc1#n149). >>> Unfortunately, the pbs peripheral and the lpg peripherals are on different >>> PMI632 devices and therefore have different regmaps. >>> >>> If we get rid of the pbs node we need to get a handle to the proper regmap. >>> I see two possible options, we could either introduce a new client property >>> which points to a peripheral on the same device as pbs. >>> >>> i.e. >>> led-controller { >>> compatible = "qcom,pmi632-lpg"; >>> #address-cells = <1>; >>> #size-cells = <0>; >>> #pwm-cells = <2>; >>> nvmem-names = "lpg_chan_sdam"; >>> nvmem = <&pmi632_sdam7>; >>> qcom,pbs-phandle = <&pmi632_gpios>; >>> ..... >>> }; >>> Then when client is probing could do something like the following to get the regmap >>> >>> dn = of_parse_phandle(node, "qcom,pbs-phandle", 0); >>> pdev = of_find_device_by_node(dn); >>> pbs_regmap = dev_get_regmap(&pdev->dev->parent, NULL); >>> >>> >>> >>> Or we could use the nvmem phandle and just have something like this in client's probe >>> >>> dn = of_parse_phandle(node, "nvmem", 0); >>> pdev = of_find_device_by_node(dn); >>> pbs_regmap = dev_get_regmap(&pdev->dev->parent, NULL); >>> >>> >>> >>> Let me know what your thoughts are on this. >> >> Rob asked you - "Is there more than 1 instance in a PMIC?" - and you did >> not answer positively, just mentioned something about drivers in >> downstream, which do not matter. So is the answer for that question: >> yes, you have two instances of the same PMIC differing by presence of >> PBS and other features"? >> > Sorry that was a misunderstanding on my part. > Yes, answer to Rob's question should have been "We have two instances of PMI632, > where one instance holds the pbs peripheral and the other holds the lpg > peripherals. The child node for pbs is needed so lpg client can access > the PMI632 regmap which contains the pbs peripheral." I guess I miss here something. What is "LPG client"? I don't understand why this LPG client needs existence of PBS node, to be able to get the regmap. PBS is a child of PMIC, so it can get regmap from the parent. What's more, which DT property passes the regmap from PMIC to LPG client? Best regards, Krzysztof
On Wed, 12 Jul 2023 at 17:22, Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> wrote: > > On 11/07/2023 22:12, Anjelique Melendez wrote: > > >>> > >>> On PMI632, peripherals are partitioned over 2 different SIDs > >>> (https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm64/boot/dts/qcom/pmi632.dtsi?h=v6.5-rc1#n42 > >>> and https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm64/boot/dts/qcom/pmi632.dtsi?h=v6.5-rc1#n149). > >>> Unfortunately, the pbs peripheral and the lpg peripherals are on different > >>> PMI632 devices and therefore have different regmaps. > >>> > >>> If we get rid of the pbs node we need to get a handle to the proper regmap. > >>> I see two possible options, we could either introduce a new client property > >>> which points to a peripheral on the same device as pbs. > >>> > >>> i.e. > >>> led-controller { > >>> compatible = "qcom,pmi632-lpg"; > >>> #address-cells = <1>; > >>> #size-cells = <0>; > >>> #pwm-cells = <2>; > >>> nvmem-names = "lpg_chan_sdam"; > >>> nvmem = <&pmi632_sdam7>; > >>> qcom,pbs-phandle = <&pmi632_gpios>; > >>> ..... > >>> }; > >>> Then when client is probing could do something like the following to get the regmap > >>> > >>> dn = of_parse_phandle(node, "qcom,pbs-phandle", 0); > >>> pdev = of_find_device_by_node(dn); > >>> pbs_regmap = dev_get_regmap(&pdev->dev->parent, NULL); > >>> > >>> > >>> > >>> Or we could use the nvmem phandle and just have something like this in client's probe > >>> > >>> dn = of_parse_phandle(node, "nvmem", 0); > >>> pdev = of_find_device_by_node(dn); > >>> pbs_regmap = dev_get_regmap(&pdev->dev->parent, NULL); > >>> > >>> > >>> > >>> Let me know what your thoughts are on this. > >> > >> Rob asked you - "Is there more than 1 instance in a PMIC?" - and you did > >> not answer positively, just mentioned something about drivers in > >> downstream, which do not matter. So is the answer for that question: > >> yes, you have two instances of the same PMIC differing by presence of > >> PBS and other features"? > >> > > Sorry that was a misunderstanding on my part. > > Yes, answer to Rob's question should have been "We have two instances of PMI632, > > where one instance holds the pbs peripheral and the other holds the lpg > > peripherals. The child node for pbs is needed so lpg client can access > > the PMI632 regmap which contains the pbs peripheral." > > I guess I miss here something. What is "LPG client"? I don't understand > why this LPG client needs existence of PBS node, to be able to get the > regmap. > > PBS is a child of PMIC, so it can get regmap from the parent. What's > more, which DT property passes the regmap from PMIC to LPG client? There are some PMICs which claim two SPMI SIDs. For such PMICs, each SID is a separate device, so it is not directly possible to get the regmap of the other SID.
On 12/07/2023 16:35, Dmitry Baryshkov wrote: >>>> Rob asked you - "Is there more than 1 instance in a PMIC?" - and you did >>>> not answer positively, just mentioned something about drivers in >>>> downstream, which do not matter. So is the answer for that question: >>>> yes, you have two instances of the same PMIC differing by presence of >>>> PBS and other features"? >>>> >>> Sorry that was a misunderstanding on my part. >>> Yes, answer to Rob's question should have been "We have two instances of PMI632, >>> where one instance holds the pbs peripheral and the other holds the lpg >>> peripherals. The child node for pbs is needed so lpg client can access >>> the PMI632 regmap which contains the pbs peripheral." >> >> I guess I miss here something. What is "LPG client"? I don't understand >> why this LPG client needs existence of PBS node, to be able to get the >> regmap. >> >> PBS is a child of PMIC, so it can get regmap from the parent. What's >> more, which DT property passes the regmap from PMIC to LPG client? > > There are some PMICs which claim two SPMI SIDs. For such PMICs, each > SID is a separate device, so it is not directly possible to get the > regmap of the other SID. OK, maybe after implementing all the review changes - including dropping that singleton pattern - this will be clearer. Please send new version and we will discuss it from there. Thank you. Best regards, Krzysztof
On 7/12/2023 1:11 PM, Krzysztof Kozlowski wrote: > On 12/07/2023 16:35, Dmitry Baryshkov wrote: >>>>> Rob asked you - "Is there more than 1 instance in a PMIC?" - and you did >>>>> not answer positively, just mentioned something about drivers in >>>>> downstream, which do not matter. So is the answer for that question: >>>>> yes, you have two instances of the same PMIC differing by presence of >>>>> PBS and other features"? >>>>> >>>> Sorry that was a misunderstanding on my part. >>>> Yes, answer to Rob's question should have been "We have two instances of PMI632, >>>> where one instance holds the pbs peripheral and the other holds the lpg >>>> peripherals. The child node for pbs is needed so lpg client can access >>>> the PMI632 regmap which contains the pbs peripheral." >>> >>> I guess I miss here something. What is "LPG client"? I don't understand >>> why this LPG client needs existence of PBS node, to be able to get the >>> regmap. >>> >>> PBS is a child of PMIC, so it can get regmap from the parent. What's >>> more, which DT property passes the regmap from PMIC to LPG client? >> >> There are some PMICs which claim two SPMI SIDs. For such PMICs, each >> SID is a separate device, so it is not directly possible to get the >> regmap of the other SID. > > OK, maybe after implementing all the review changes - including dropping > that singleton pattern - this will be clearer. Please send new version > and we will discuss it from there. > Sure, will work on getting that new version sent but I did just have clarifying question. When you say "dropping that singleton pattern" are you referring to dropping the PBS node? Want to make sure we are all on the same page with what the next version will include :) Thanks, Anjelique
On 14/07/2023 22:32, Anjelique Melendez wrote: > > > On 7/12/2023 1:11 PM, Krzysztof Kozlowski wrote: >> On 12/07/2023 16:35, Dmitry Baryshkov wrote: >>>>>> Rob asked you - "Is there more than 1 instance in a PMIC?" - and you did >>>>>> not answer positively, just mentioned something about drivers in >>>>>> downstream, which do not matter. So is the answer for that question: >>>>>> yes, you have two instances of the same PMIC differing by presence of >>>>>> PBS and other features"? >>>>>> >>>>> Sorry that was a misunderstanding on my part. >>>>> Yes, answer to Rob's question should have been "We have two instances of PMI632, >>>>> where one instance holds the pbs peripheral and the other holds the lpg >>>>> peripherals. The child node for pbs is needed so lpg client can access >>>>> the PMI632 regmap which contains the pbs peripheral." >>>> >>>> I guess I miss here something. What is "LPG client"? I don't understand >>>> why this LPG client needs existence of PBS node, to be able to get the >>>> regmap. >>>> >>>> PBS is a child of PMIC, so it can get regmap from the parent. What's >>>> more, which DT property passes the regmap from PMIC to LPG client? >>> >>> There are some PMICs which claim two SPMI SIDs. For such PMICs, each >>> SID is a separate device, so it is not directly possible to get the >>> regmap of the other SID. >> >> OK, maybe after implementing all the review changes - including dropping >> that singleton pattern - this will be clearer. Please send new version >> and we will discuss it from there. >> > Sure, will work on getting that new version sent but I did just have clarifying question. > When you say "dropping that singleton pattern" are you referring to dropping the > PBS node? > Want to make sure we are all on the same page with what the next version will include :) I was referring to my comments on driver, that you should not have file-scope variable and get_pbs_client_device() iterating over global list. It isn't singleton, actually, but the pattern in coding is very similar to singleton approach. Best regards, Krzysztof
diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom-pbs.yaml b/Documentation/devicetree/bindings/soc/qcom/qcom-pbs.yaml new file mode 100644 index 000000000000..0a89c334f95c --- /dev/null +++ b/Documentation/devicetree/bindings/soc/qcom/qcom-pbs.yaml @@ -0,0 +1,41 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/soc/qcom/qcom-pbs.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Qualcomm Technologies, Inc. PBS + +maintainers: + - Anjelique Melendez <quic_amelende@quicinc.com> + +description: | + Qualcomm PBS (programmable boot sequencer) supports triggering sequences + for clients upon request. + +properties: + compatible: + const: qcom,pbs + + reg: + description: | + Base address of the PBS peripheral. + maxItems: 1 + +required: + - compatible + - reg + +additionalProperties: false + +examples: + - | + pmic { + #address-cells = <1>; + #size-cells = <0>; + + qcom,pbs@7400 { + compatible = "qcom,pbs"; + reg = <0x7400>; + }; + };