Received: by 2002:a05:6a10:413:0:0:0:0 with SMTP id 19csp803914pxp; Fri, 11 Mar 2022 15:35:20 -0800 (PST) X-Google-Smtp-Source: ABdhPJxEDJNu1w/xBY3zM4guwPqYP8nNVwRz/3ct02CFzKOh9JDHU0Y2lmaQfWmR+3k+l8zbggCw X-Received: by 2002:a17:903:244b:b0:151:d869:3b1f with SMTP id l11-20020a170903244b00b00151d8693b1fmr12999021pls.155.1647041720022; Fri, 11 Mar 2022 15:35:20 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1647041720; cv=none; d=google.com; s=arc-20160816; b=GTkImf8AjIIOhnFNCwUYmxtPb8CKBGfIutU0EOuZvK6qXkX5zc9zGr8e0mpOmZf5l3 4SCY6WUD0/ZsbGit0sia08BiUuI0MFYOzJdMcGzJEWcwTwHY14/YOJpbeaqSSiIuStA4 0Muysyj3cnO8KrxD3XOR54fAcw1RD7ZGoZmHyMOddC/OMwxRkQpOOcoTncqT8EipgZvd AEuzbcjmOs5T87b0bTXA9g1hFalcWBfFX4Md58CC7geVmUQINvCBFvvXsw/llJqIFgOy d7gGG2WGh/8gi0d1M0LLuEFlHIuBIBp8hvMhITHrR9TiFveU6b6BMQHkwVgR2OJ7r6tG Dubw== 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=vlRDm1/qlmoS4ath4JNE82LhPNtQtJeGB8j4u4VXee4=; b=NB1uDUs86tZSNI/rDtgmXKnx5gaNRsHOWu0RMZUj7mwnB6GcgLUub1UutHfgf95edI N+nFw00XrlpJCQn6V9AIaoEjBITWaUFnQl+sWRMLY8LKe2f6p2hVZ30dE2RBqt+NXFEz xSXL48HQ8nWFo0NWfZaKNK96JgNtgthKKULH94ny3xWRAofvuAvZZIE+j8J3JG6Fq+Yi 78Oorrl8GPCSk/+g0Hc3PdVxfbFsEeWWM5mYDK9eaPXNzJt2NZWYne/83z5D+BZ3iDMc D802JqI9/SqP7k79SiCYYaY/jc4qAxbFFLjoRy7FebH6+p0PJAqbdjtqsPhVLHebhgZv +QrQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@mailerdienst.de header.s=20200217 header.b="xjM/FwIl"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [2620:137:e000::1:18]) by mx.google.com with ESMTPS id bk11-20020a056a02028b00b00376c11ff054si9408537pgb.215.2022.03.11.15.35.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 11 Mar 2022 15:35:20 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) client-ip=2620:137:e000::1:18; Authentication-Results: mx.google.com; dkim=pass header.i=@mailerdienst.de header.s=20200217 header.b="xjM/FwIl"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id BF8F5277494; Fri, 11 Mar 2022 14:45:42 -0800 (PST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229687AbiCKWqJ (ORCPT + 99 others); Fri, 11 Mar 2022 17:46:09 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49184 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229713AbiCKWpm (ORCPT ); Fri, 11 Mar 2022 17:45:42 -0500 Received: from mxout2.routing.net (mxout2.routing.net [IPv6:2a03:2900:1:a::b]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CD73327DF84; Fri, 11 Mar 2022 14:21:22 -0800 (PST) Received: from mxbox1.masterlogin.de (unknown [192.168.10.88]) by mxout2.routing.net (Postfix) with ESMTP id BA9F75FFC0; Fri, 11 Mar 2022 21:04:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mailerdienst.de; s=20200217; t=1647032661; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=vlRDm1/qlmoS4ath4JNE82LhPNtQtJeGB8j4u4VXee4=; b=xjM/FwIlV+yErQQdN8yzt34/8C7l7wM63B73LIsvYlLVXz+nq2Y7iP091blEDrMow4ASMo JvTwWhbPGFdF6mL7H1pTfTaLS1wA/yTYmzOmfhw8CIKsotjIthD+yCnH4U+rrv6Hxk6wgH QcVuB9Y2yxqN0xN4jAwL3nkidnae/3E= Received: from localhost.localdomain (fttx-pool-217.61.144.196.bambit.de [217.61.144.196]) by mxbox1.masterlogin.de (Postfix) with ESMTPSA id 9970E406D6; Fri, 11 Mar 2022 21:04:18 +0000 (UTC) From: Frank Wunderlich To: devicetree@vger.kernel.org Cc: Frank Wunderlich , Damien Le Moal , Rob Herring , Krzysztof Kozlowski , Viresh Kumar , Shiraz Hashim , soc@kernel.org, Andrew Lunn , Gregory Clement , Sebastian Hesselbarth , Russell King , Heiko Stuebner , Peter Geis , Michael Riesch , Hans de Goede , Jens Axboe , linux-ide@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org Subject: [PATCH v6 1/6] dt-bindings: ata: ahci-platform: Convert DT bindings to yaml Date: Fri, 11 Mar 2022 22:03:52 +0100 Message-Id: <20220311210357.222830-2-linux@fw-web.de> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220311210357.222830-1-linux@fw-web.de> References: <20220311210357.222830-1-linux@fw-web.de> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Mail-ID: e647ae1a-ec31-4ea6-a12a-3efc7d81d2e6 X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,RDNS_NONE, SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=no 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 From: Frank Wunderlich Create a yaml file for dtbs_check from the old txt binding. Signed-off-by: Frank Wunderlich --- v6: - fix indentation of examples - add compatible marvell,berlin2-ahci - change maximum of ports-implemented - add select to exclude qcom compatibles - drop marvell,armada-380-ahci it is not handled in the ahci-platform.c but ahci_mvebu.c and incompatible due to missing phys/target-supply v5: - change subject - drop brcm,iproc-ahci from standalone enum - fix reg address in example 2 - move clocknames next to clocks, regnames to reg - drop interrupts description - drop newline from dma-coherent - drop max-items from ports-implemented - min2max in child phys - fix identation for compatible and sata-common - add additionalProperties=false for subnodes - pipe for paragraphs and newline after title - add maximum for ports-implemented (found only 0x1 as its value) - add phy-names to sata-ports v4: - fix min vs. max - fix indention of examples - move up sata-common.yaml - reorder compatible - add descriptions/maxitems - fix compatible-structure - fix typo in example achi vs. ahci - add clock-names and reg-names - fix ns2 errors in separate patch v3: - add conversion to sata-series - fix some errors in dt_binding_check and dtbs_check - move to unevaluated properties = false arch/arm/boot/dts/qcom-apq8064.dtsi had caused errors for clock-count --- have not added reviewed-by from v5 because i have changed patch too much --- .../devicetree/bindings/ata/ahci-platform.txt | 79 -------- .../bindings/ata/ahci-platform.yaml | 182 ++++++++++++++++++ 2 files changed, 182 insertions(+), 79 deletions(-) delete mode 100644 Documentation/devicetree/bindings/ata/ahci-platform.txt create mode 100644 Documentation/devicetree/bindings/ata/ahci-platform.yaml diff --git a/Documentation/devicetree/bindings/ata/ahci-platform.txt b/Documentation/devicetree/bindings/ata/ahci-platform.txt deleted file mode 100644 index 77091a277642..000000000000 --- a/Documentation/devicetree/bindings/ata/ahci-platform.txt +++ /dev/null @@ -1,79 +0,0 @@ -* AHCI SATA Controller - -SATA nodes are defined to describe on-chip Serial ATA controllers. -Each SATA controller should have its own node. - -It is possible, but not required, to represent each port as a sub-node. -It allows to enable each port independently when dealing with multiple -PHYs. - -Required properties: -- compatible : compatible string, one of: - - "brcm,iproc-ahci" - - "hisilicon,hisi-ahci" - - "cavium,octeon-7130-ahci" - - "ibm,476gtr-ahci" - - "marvell,armada-380-ahci" - - "marvell,armada-3700-ahci" - - "snps,dwc-ahci" - - "snps,spear-ahci" - - "generic-ahci" -- interrupts : -- reg : - -Please note that when using "generic-ahci" you must also specify a SoC specific -compatible: - compatible = "manufacturer,soc-model-ahci", "generic-ahci"; - -Optional properties: -- dma-coherent : Present if dma operations are coherent -- clocks : a list of phandle + clock specifier pairs -- resets : a list of phandle + reset specifier pairs -- target-supply : regulator for SATA target power -- phy-supply : regulator for PHY power -- phys : reference to the SATA PHY node -- phy-names : must be "sata-phy" -- ahci-supply : regulator for AHCI controller -- ports-implemented : Mask that indicates which ports that the HBA supports - are available for software to use. Useful if PORTS_IMPL - is not programmed by the BIOS, which is true with - some embedded SOC's. - -Required properties when using sub-nodes: -- #address-cells : number of cells to encode an address -- #size-cells : number of cells representing the size of an address - -Sub-nodes required properties: -- reg : the port number -And at least one of the following properties: -- phys : reference to the SATA PHY node -- target-supply : regulator for SATA target power - -Examples: - sata@ffe08000 { - compatible = "snps,spear-ahci"; - reg = <0xffe08000 0x1000>; - interrupts = <115>; - }; - -With sub-nodes: - sata@f7e90000 { - compatible = "marvell,berlin2q-achi", "generic-ahci"; - reg = <0xe90000 0x1000>; - interrupts = ; - clocks = <&chip CLKID_SATA>; - #address-cells = <1>; - #size-cells = <0>; - - sata0: sata-port@0 { - reg = <0>; - phys = <&sata_phy 0>; - target-supply = <®_sata0>; - }; - - sata1: sata-port@1 { - reg = <1>; - phys = <&sata_phy 1>; - target-supply = <®_sata1>;; - }; - }; diff --git a/Documentation/devicetree/bindings/ata/ahci-platform.yaml b/Documentation/devicetree/bindings/ata/ahci-platform.yaml new file mode 100644 index 000000000000..e71bfb04d7f1 --- /dev/null +++ b/Documentation/devicetree/bindings/ata/ahci-platform.yaml @@ -0,0 +1,182 @@ +# SPDX-License-Identifier: GPL-2.0 +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/ata/ahci-platform.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: AHCI SATA Controller + +description: | + SATA nodes are defined to describe on-chip Serial ATA controllers. + Each SATA controller should have its own node. + + It is possible, but not required, to represent each port as a sub-node. + It allows to enable each port independently when dealing with multiple + PHYs. + +maintainers: + - Hans de Goede + - Jens Axboe + +select: + properties: + compatible: + contains: + enum: + - brcm,iproc-ahci + - cavium,octeon-7130-ahci + - hisilicon,hisi-ahci + - ibm,476gtr-ahci + - marvell,armada-3700-ahci + - marvell,armada-8k-ahci + - marvell,berlin2q-ahci + - snps,dwc-ahci + - snps,spear-ahci + required: + - compatible + +allOf: + - $ref: "sata-common.yaml#" + + +properties: + compatible: + oneOf: + - items: + - enum: + - brcm,iproc-ahci + - marvell,armada-8k-ahci + - marvell,berlin2-ahci + - marvell,berlin2q-ahci + - const: generic-ahci + - enum: + - cavium,octeon-7130-ahci + - hisilicon,hisi-ahci + - ibm,476gtr-ahci + - marvell,armada-3700-ahci + - snps,dwc-ahci + - snps,spear-ahci + + reg: + minItems: 1 + maxItems: 2 + + reg-names: + maxItems: 1 + + clocks: + description: + Clock IDs array as required by the controller. + minItems: 1 + maxItems: 3 + + clock-names: + description: + Names of clocks corresponding to IDs in the clock property. + minItems: 1 + maxItems: 3 + + interrupts: + maxItems: 1 + + ahci-supply: + description: + regulator for AHCI controller + + dma-coherent: true + + phy-supply: + description: + regulator for PHY power + + phys: + description: + List of all PHYs on this controller + maxItems: 1 + + phy-names: + description: + Name specifier for the PHYs + maxItems: 1 + + ports-implemented: + $ref: '/schemas/types.yaml#/definitions/uint32' + description: | + Mask that indicates which ports that the HBA supports + are available for software to use. Useful if PORTS_IMPL + is not programmed by the BIOS, which is true with + some embedded SoCs. + maximum: 0x1f + + resets: + maxItems: 1 + + target-supply: + description: + regulator for SATA target power + +required: + - compatible + - reg + - interrupts + +patternProperties: + "^sata-port@[0-9a-f]+$": + type: object + additionalProperties: false + description: + Subnode with configuration of the Ports. + + properties: + reg: + maxItems: 1 + + phys: + maxItems: 1 + + phy-names: + maxItems: 1 + + target-supply: + description: + regulator for SATA target power + + required: + - reg + + anyOf: + - required: [ phys ] + - required: [ target-supply ] + +unevaluatedProperties: false + +examples: + - | + sata@ffe08000 { + compatible = "snps,spear-ahci"; + reg = <0xffe08000 0x1000>; + interrupts = <115>; + }; + - | + #include + #include + sata@f7e90000 { + compatible = "marvell,berlin2q-ahci", "generic-ahci"; + reg = <0xf7e90000 0x1000>; + interrupts = ; + clocks = <&chip CLKID_SATA>; + #address-cells = <1>; + #size-cells = <0>; + + sata0: sata-port@0 { + reg = <0>; + phys = <&sata_phy 0>; + target-supply = <®_sata0>; + }; + + sata1: sata-port@1 { + reg = <1>; + phys = <&sata_phy 1>; + target-supply = <®_sata1>; + }; + }; -- 2.25.1