Received: by 2002:a05:6358:3188:b0:123:57c1:9b43 with SMTP id q8csp20344615rwd; Thu, 29 Jun 2023 00:39:12 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ4DDnnKbQCRRHBJRFtjvcwORKA8yClouBxr3oq5BYoI21tNVJshTj+SMxo3NrhiBVoVYsNB X-Received: by 2002:a05:6a20:a103:b0:127:8784:8e5b with SMTP id q3-20020a056a20a10300b0012787848e5bmr8852194pzk.31.1688024352334; Thu, 29 Jun 2023 00:39:12 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1688024352; cv=none; d=google.com; s=arc-20160816; b=f8pfDisBV2WYR5tJ0kH9RDSxSxU7ETMSp6vDSW4CczPFB+ommNUGvUbZX1oml+ZcEP /2oTUkiL6NV8s0u4HsvV23ATt41OV8bDaCyt2Jcoho5IsMPfdIZPBMv0LpdyOTZFTabb mXUz4zfnul3KtfNYPyX/krI/1KAg+di9dfSSh6XweyDsYX+wF3cQpAJMmPL0RI6rsxQN Tvalbv3Rapm1oURb+UdQiIAHi6NtWzm/2FOtG81ap0eVyv972KzsOdg6GMZziWinOuQB Q7JdCCODFl0sWMNWcpD0sEygPJ68/aRpKaUixGK12P3fLbsfkNhUQfF2UdEpDwMuPQ6k 723g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to:from :references:cc:to:content-language:subject:user-agent:mime-version :date:message-id; bh=fRIWmrh4xt2xwc1VVWf7ugTgsChHSpD2Wc2kBvHw9M8=; fh=aqWf2Sx7GNlviQK1fe16xv6pqqM3VHY3rDz5NdjfV+Y=; b=WapTFbZU51h0qc5wrZELhfM2SEYPazwIuYVAbhvZwZKeFED3aTtCCjLCP8bYNm26BK 8d8iBM5omo4l2WI1KBSq7tb5V4ULTLvdtLgqXDIl5+3uIrZyRZua2WN2sYE/OsBhHGsZ wtmgRxEFC3UxB7D+9Tj6DvicrzHg2GEEh+xS0d/CKEQjIVOJ1ZpRFQpzA3SbLE43X8Qq TZEwMjsDfIzAbNdJvS6SZbCu4E/DhjrxpcOI47LHq3HZDckgFjc6V+iPXYHBF8lTq8nT fo5WaCTygT6Uu969oxrRw8vS5k7R7d8tMuHWzWcu2lGvFFzqbsEAOJ2Zz8SRxvJORWAS JXIw== 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 z12-20020a170902708c00b001ac94b7f2f0si9744416plk.523.2023.06.29.00.39.00; Thu, 29 Jun 2023 00:39:12 -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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232076AbjF2GqZ (ORCPT + 99 others); Thu, 29 Jun 2023 02:46:25 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44048 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232306AbjF2Gpu (ORCPT ); Thu, 29 Jun 2023 02:45:50 -0400 Received: from fd01.gateway.ufhost.com (fd01.gateway.ufhost.com [61.152.239.71]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 39A10187; Wed, 28 Jun 2023 23:45:44 -0700 (PDT) Received: from EXMBX165.cuchost.com (unknown [175.102.18.54]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client CN "EXMBX165", Issuer "EXMBX165" (not verified)) by fd01.gateway.ufhost.com (Postfix) with ESMTP id 2682F817A; Thu, 29 Jun 2023 14:45:41 +0800 (CST) Received: from EXMBX061.cuchost.com (172.16.6.61) by EXMBX165.cuchost.com (172.16.6.75) with Microsoft SMTP Server (TLS) id 15.0.1497.42; Thu, 29 Jun 2023 14:45:41 +0800 Received: from [192.168.125.128] (183.27.97.206) by EXMBX061.cuchost.com (172.16.6.61) with Microsoft SMTP Server (TLS) id 15.0.1497.42; Thu, 29 Jun 2023 14:45:40 +0800 Message-ID: <2270fd7f-1751-066a-0da5-e35cdd59fd2f@starfivetech.com> Date: Thu, 29 Jun 2023 14:42:39 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.12.0 Subject: Re: [PATCH v5 2/7] dt-bindings: soc: starfive: Add StarFive syscon module Content-Language: en-US To: Conor Dooley CC: Krzysztof Kozlowski , , , "Michael Turquette" , Stephen Boyd , "Rob Herring" , Philipp Zabel , "Conor Dooley" , Emil Renner Berthing , Paul Walmsley , Palmer Dabbelt , Albert Ou , Hal Feng , William Qiu , , References: <20230613125852.211636-1-xingyu.wu@starfivetech.com> <20230613125852.211636-3-xingyu.wu@starfivetech.com> <7e2d6bfe-5687-97c5-778b-c02e9c0894af@linaro.org> <20230628-affix-maverick-84a08905f05b@spud> From: Xingyu Wu In-Reply-To: <20230628-affix-maverick-84a08905f05b@spud> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-Originating-IP: [183.27.97.206] X-ClientProxiedBy: EXCAS066.cuchost.com (172.16.6.26) To EXMBX061.cuchost.com (172.16.6.61) X-YovoleRuleAgent: yovoleflag X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,NICE_REPLY_A, RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS,T_SCC_BODY_TEXT_LINE 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 2023/6/29 1:34, Conor Dooley wrote: > On Wed, Jun 28, 2023 at 02:44:10PM +0800, Xingyu Wu wrote: >> On 2023/6/14 2:31, Krzysztof Kozlowski wrote: >> > On 13/06/2023 14:58, Xingyu Wu wrote: >> >> From: William Qiu >> >> >> >> Add documentation to describe StarFive System Controller Registers. >> >> >> >> Co-developed-by: Xingyu Wu >> >> Signed-off-by: Xingyu Wu >> >> Signed-off-by: William Qiu >> >> --- >> >> .../soc/starfive/starfive,jh7110-syscon.yaml | 62 +++++++++++++++++++ >> >> MAINTAINERS | 7 +++ >> >> 2 files changed, 69 insertions(+) >> >> create mode 100644 Documentation/devicetree/bindings/soc/starfive/starfive,jh7110-syscon.yaml >> >> >> >> diff --git a/Documentation/devicetree/bindings/soc/starfive/starfive,jh7110-syscon.yaml b/Documentation/devicetree/bindings/soc/starfive/starfive,jh7110-syscon.yaml >> >> new file mode 100644 >> >> index 000000000000..a81190f8a54d >> >> --- /dev/null >> >> +++ b/Documentation/devicetree/bindings/soc/starfive/starfive,jh7110-syscon.yaml >> >> @@ -0,0 +1,62 @@ >> >> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) >> >> +%YAML 1.2 >> >> +--- >> >> +$id: http://devicetree.org/schemas/soc/starfive/starfive,jh7110-syscon.yaml# >> >> +$schema: http://devicetree.org/meta-schemas/core.yaml# >> >> + >> >> +title: StarFive JH7110 SoC system controller >> >> + >> >> +maintainers: >> >> + - William Qiu >> >> + >> >> +description: | >> >> + The StarFive JH7110 SoC system controller provides register information such >> >> + as offset, mask and shift to configure related modules such as MMC and PCIe. >> >> + >> >> +properties: >> >> + compatible: >> >> + oneOf: >> >> + - items: >> >> + - const: starfive,jh7110-sys-syscon >> >> + - const: syscon >> >> + - const: simple-mfd >> >> + - items: >> >> + - enum: >> >> + - starfive,jh7110-aon-syscon >> >> + - starfive,jh7110-stg-syscon >> >> + - const: syscon >> >> + >> >> + reg: >> >> + maxItems: 1 >> >> + >> >> + clock-controller: >> >> + $ref: /schemas/clock/starfive,jh7110-pll.yaml# >> >> + type: object >> >> + >> >> + "#power-domain-cells": >> >> + const: 1 >> >> + >> >> +required: >> >> + - compatible >> >> + - reg >> >> + >> >> +allOf: >> >> + - if: >> >> + properties: >> >> + compatible: >> >> + contains: >> >> + const: starfive,jh7110-aon-syscon >> >> + then: >> >> + required: >> >> + - "#power-domain-cells" >> > >> > Where did you implement the results of the discussion that only some >> > devices can have power and clock controller? >> > >> > According to your code all of above - sys, aon and stg - have clock and >> > power controllers. If not, then the code is not correct, so please do >> > not respond with what is where (like you did last time) but actually >> > implement what you say. >> > >> >> Hi Krzysztof, I need to modify the code to implement it. >> If I drop the 'clock-controller' and '"#power-domain-cells"' in properites, and change to this: >> >> --- a/Documentation/devicetree/bindings/soc/starfive/starfive,jh7110-syscon.yaml >> +++ b/Documentation/devicetree/bindings/soc/starfive/starfive,jh7110-syscon.yaml >> @@ -29,28 +29,33 @@ properties: >> reg: >> maxItems: 1 >> >> - clock-controller: >> - $ref: /schemas/clock/starfive,jh7110-pll.yaml# >> - type: object >> - >> - "#power-domain-cells": >> - const: 1 >> - >> required: >> - compatible >> - reg >> >> allOf: >> + - if: >> + properties: >> + compatible: >> + contains: >> + const: starfive,jh7110-sys-syscon >> + then: >> + properties: >> + clock-controller: >> + $ref: /schemas/clock/starfive,jh7110-pll.yaml# >> + type: object > > Why do this? > Why not define the property has you have been doing, but only allow it > on the syscons that support it? > See the section starting at L205 of example-schema.yaml. > >> + >> - if: >> properties: >> compatible: >> contains: >> const: starfive,jh7110-aon-syscon >> then: >> - required: >> - - "#power-domain-cells" >> + properties: >> + "#power-domain-cells": >> + const: 1 >> > >> -additionalProperties: false >> +additionalProperties: true > > Why do you need this? > Allowing "additionalProperties: true" sounds like you've got some prblem > that you are trying to hide... > >> Would it be better to show that sys-syscon only has clock-controller and aon-syscon is power controller? > > You should only permit the properties where they are valid, yes. > Yeah, following your advice, I modified the codes and there are two options: --- a/Documentation/devicetree/bindings/soc/starfive/starfive,jh7110-syscon.yaml +++ b/Documentation/devicetree/bindings/soc/starfive/starfive,jh7110-syscon.yaml @@ -41,6 +41,16 @@ required: - reg allOf: + - if: + properties: + compatible: + contains: + const: starfive,jh7110-sys-syscon + then: + required: + - clock-controller + properties: + "#power-domain-cells": false - if: properties: compatible: contains: const: starfive,jh7110-aon-syscon then: required: - "#power-domain-cells" + properties: + clock-controller: false + - if: + properties: + compatible: + contains: + const: starfive,jh7110-stg-syscon + then: + properties: + clock-controller: false + "#power-domain-cells": false additionalProperties: false Or : --- a/Documentation/devicetree/bindings/soc/starfive/starfive,jh7110-syscon.yaml +++ b/Documentation/devicetree/bindings/soc/starfive/starfive,jh7110-syscon.yaml @@ -41,6 +41,17 @@ required: - reg allOf: + - if: + properties: + compatible: + contains: + const: starfive,jh7110-sys-syscon + then: + required: + - clock-controller + else: + properties: + clock-controller: false - if: properties: compatible: contains: const: starfive,jh7110-aon-syscon then: required: - "#power-domain-cells" + else: + properties: + "#power-domain-cells": false additionalProperties: false Which one is better? Thanks. Best regards, Xingyu Wu