From: Enric Balletbo i Serra <enric.balletbo@collabora.com>
To: Rob Herring <robh@kernel.org>,
Enric Balletbo Serra <eballetbo@gmail.com>
Cc: "devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
"Heiko Stübner" <heiko@sntech.de>,
linux-kernel <linux-kernel@vger.kernel.org>,
"Doug Anderson" <dianders@chromium.org>,
"open list:ARM/Rockchip SoC..."
<linux-rockchip@lists.infradead.org>,
"Collabora Kernel ML" <kernel@collabora.com>,
"Linux ARM" <linux-arm-kernel@lists.infradead.org>,
"Caesar Wang" <wxt@rock-chips.com>
Subject: Re: [PATCH v3] dt-bindings: power: rockchip: Convert to json-schema
Date: Sun, 11 Oct 2020 11:01:52 +0200 [thread overview]
Message-ID: <2623f12e-aca6-59ea-5f5e-0cd61a229004@collabora.com> (raw)
In-Reply-To: <CAL_JsqL7ej3o_qzb7r+Nmdp=YkuYciqRYYcFo4Z21OGOvkn-3A@mail.gmail.com>
Hi Rob,
On 8/10/20 21:47, Rob Herring wrote:
> On Wed, Oct 7, 2020 at 3:57 PM Enric Balletbo Serra <eballetbo@gmail.com> wrote:
>>
>> Hi Rob,
>>
>> Missatge de Rob Herring <robh@kernel.org> del dia dc., 7 d’oct. 2020 a
>> les 17:12:
>>>
>>> On Mon, Sep 21, 2020 at 11:29:51AM +0200, Enric Balletbo i Serra wrote:
>>>> Convert the soc/rockchip/power_domain.txt binding document to json-schema
>>>> and move to the power bindings directory.
>>>>
>>>> Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
>>>> ---
>>>>
>>>> Changes in v3:
>>>> - Fixed tab errors found by bot
>>>>
>>>> Changes in v2:
>>>> - Fixed a warning that says that 'syscon' should not be used alone.
>>>> - Use patternProperties to define a new level for power-domains.
>>>> - Add const values for power-domain-cells, address-cells, etc.
>>>>
>>>> .../power/rockchip,power-controller.yaml | 207 ++++++++++++++++++
>>>> .../bindings/soc/rockchip/power_domain.txt | 136 ------------
>>>> 2 files changed, 207 insertions(+), 136 deletions(-)
>>>> create mode 100644 Documentation/devicetree/bindings/power/rockchip,power-controller.yaml
>>>> delete mode 100644 Documentation/devicetree/bindings/soc/rockchip/power_domain.txt
>>>>
>>>> diff --git a/Documentation/devicetree/bindings/power/rockchip,power-controller.yaml b/Documentation/devicetree/bindings/power/rockchip,power-controller.yaml
>>>> new file mode 100644
>>>> index 000000000000..b23ea37e2a08
>>>> --- /dev/null
>>>> +++ b/Documentation/devicetree/bindings/power/rockchip,power-controller.yaml
>>>> @@ -0,0 +1,207 @@
>>>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
>>>> +%YAML 1.2
>>>> +---
>>>> +$id: http://devicetree.org/schemas/power/rockchip,power-controller.yaml#
>>>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>>>> +
>>>> +title: Rockchip Power Domains
>>>> +
>>>> +maintainers:
>>>> + - Caesar Wang <wxt@rock-chips.com>
>>>> + - Heiko Stuebner <heiko@sntech.de>
>>>> +
>>>> +description: |
>>>> + Rockchip processors include support for multiple power domains which can be
>>>> + powered up/down by software based on different application scenes to save power.
>>>> +
>>>> + Power domains contained within power-controller node are generic power domain
>>>> + providers documented in Documentation/devicetree/bindings/power/power-domain.yaml.
>>>> +
>>>> + IP cores belonging to a power domain should contain a 'power-domains'
>>>> + property that is a phandle for the power domain node representing the domain.
>>>> +
>>>> +properties:
>>>> + $nodename:
>>>> + const: power-controller
>>>> +
>>>> + compatible:
>>>> + enum:
>>>> + - rockchip,px30-power-controller
>>>> + - rockchip,rk3036-power-controller
>>>> + - rockchip,rk3066-power-controller
>>>> + - rockchip,rk3128-power-controller
>>>> + - rockchip,rk3188-power-controller
>>>> + - rockchip,rk3228-power-controller
>>>> + - rockchip,rk3288-power-controller
>>>> + - rockchip,rk3328-power-controller
>>>> + - rockchip,rk3366-power-controller
>>>> + - rockchip,rk3368-power-controller
>>>> + - rockchip,rk3399-power-controller
>>>> +
>>>> + '#power-domain-cells':
>>>> + const: 1
>>>> +
>>>> + '#address-cells':
>>>> + const: 1
>>>> +
>>>> + '#size-cells':
>>>> + const: 0
>>>> +
>>>> +patternProperties:
>>>> + "^power-domain@[0-9]+$":
>>>
>>> unit-addresses are hex.
>>>
>>>> + type: object
>>>> + description: |
>>>> + Represents the power domains within the power controller node as documented
>>>> + in Documentation/devicetree/bindings/power/power-domain.yaml.
>>>> +
>>>> + properties:
>>>> +
>>>> + '#power-domain-cells':
>>>> + description:
>>>> + Must be 0 for nodes representing a single PM domain and 1 for nodes
>>>> + providing multiple PM domains.
>>>> +
>>>> + '#address-cells':
>>>> + const: 1
>>>> +
>>>> + '#size-cells':
>>>> + const: 0
>>>> +
>>>> + reg:
>>>> + description: |
>>>> + Power domain index. Valid values are defined in:
>>>> + "include/dt-bindings/power/px30-power.h" - for PX30 type power domain.
>>>> + "include/dt-bindings/power/rk3036-power.h" - for RK3036 type power domain.
>>>> + "include/dt-bindings/power/rk3066-power.h" - for RK3066 type power domain.
>>>> + "include/dt-bindings/power/rk3128-power.h" - for RK3128 type power domain.
>>>> + "include/dt-bindings/power/rk3188-power.h" - for RK3188 type power domain.
>>>> + "include/dt-bindings/power/rk3228-power.h" - for RK3228 type power domain.
>>>> + "include/dt-bindings/power/rk3288-power.h" - for RK3288 type power domain.
>>>> + "include/dt-bindings/power/rk3328-power.h" - for RK3328 type power domain.
>>>> + "include/dt-bindings/power/rk3366-power.h" - for RK3366 type power domain.
>>>> + "include/dt-bindings/power/rk3368-power.h" - for RK3368 type power domain.
>>>> + "include/dt-bindings/power/rk3399-power.h" - for RK3399 type power domain.
>>>> + maxItems: 1
>>>
>>> Range of values?
>>>
>>>> +
>>>> + clocks:
>>>> + description: |
>>>> + A number of phandles to clocks that need to be enabled while power domain
>>>> + switches state.
>>>
>>> Can you at least put a range of how many clocks?
>>>
>>>> +
>>>> + pm_qos:
>>>> + description: |
>>>> + A number of phandles to qos blocks which need to be saved and restored
>>>> + while power domain switches state.
>>>
>>> And here.
>>>
>>>> +
>>>> + required:
>>>> + - reg
>>>
>>> additionalProperties: false
>>>
>>> Which in turn means the nested power domains will throw an error, so you
>>> can do:
>>>
>>> patternProperties:
>>> "^power-domain@[0-9a-f]+$":
>>> $ref: '#/patternProperties/^power-domain@[0-9a-f]+$'
>>>
>>
>> When I tried this I got the following error:
>>
>> rockchip,power-controller.yaml:
>> patternProperties:^power-domain@[0-9a-f]+$:patternProperties:^power-domain@[0-9a-f]+$:$ref:
>> '#/patternProperties/^power-domain@[0-9a-f]+$' is not a
>> 'uri-reference'
>>
>> Not sure if is my environment or I am still doing something silly, can
>> you confirm that this works for you? It doesn't seem to be any binding
>> doing this actually.
>
> I think the regex would have to be escaped to be a valid URI:
>
> $ref: '%23/patternProperties/%5Epower-domain@%5B0-9a-f%5D+%24'
>
> That's not the most readable nor am I sure it would get translated
> back to the right path, so it's probably going to be best to just
> define the child nodes even if duplicated.
>
Ok, I'll define the child node then. Thank you for your support.
Cheers,
Enric
> Rob
>
next prev parent reply other threads:[~2020-10-11 9:02 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-09-21 9:29 Enric Balletbo i Serra
2020-10-07 15:11 ` Rob Herring
2020-10-07 20:57 ` Enric Balletbo Serra
2020-10-08 19:47 ` Rob Herring
2020-10-11 9:01 ` Enric Balletbo i Serra [this message]
2020-10-11 9:56 ` Enric Balletbo i Serra
2020-10-11 10:03 ` Enric Balletbo i Serra
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=2623f12e-aca6-59ea-5f5e-0cd61a229004@collabora.com \
--to=enric.balletbo@collabora.com \
--cc=devicetree@vger.kernel.org \
--cc=dianders@chromium.org \
--cc=eballetbo@gmail.com \
--cc=heiko@sntech.de \
--cc=kernel@collabora.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-rockchip@lists.infradead.org \
--cc=robh@kernel.org \
--cc=wxt@rock-chips.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®