Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id B6806C4332F for ; Tue, 4 Jan 2022 20:56:01 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233677AbiADU4B (ORCPT ); Tue, 4 Jan 2022 15:56:01 -0500 Received: from mail-oi1-f177.google.com ([209.85.167.177]:46906 "EHLO mail-oi1-f177.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233562AbiADUz7 (ORCPT ); Tue, 4 Jan 2022 15:55:59 -0500 Received: by mail-oi1-f177.google.com with SMTP id v6so61156485oib.13; Tue, 04 Jan 2022 12:55:59 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to; bh=ATeY912ZXLvFKACZCiRkd1q2RzIi3xmm/7+CEkGNk5M=; b=MhpoA5g/w4Alh7NgyUAG4JTcgHl7IldHE2TmQijYIXBtDkTgEIvD2RHYYJYbQi+oT9 yFFttG7ijjYfdOkWTdAuADGSE0LlDx+CncKawrvZxa0YJefpJDN9lrCr2nHIX4lC/Mmu s4xiiXVuFyQXOl02GzKiX+7QTTuCJH47YKBkgjISSSe/UgiSnGFe7um/ben7HbuIR+lL 9LAGaxb5OTAwnDo6oMJKCNwSgVWNrTBW8gn9If0IAa3EGjVdQREmVyXk53TX9NTlx+jM AsD4D66WF7AFZKaYerYJfpb5pxi2QLtP8XIdKFul0JUjYAl15jeg6BW7xyGH+e8k9bmN ix6g== X-Gm-Message-State: AOAM5336ZrScPVCBhObaLXMcWEme6F9PMBaJz0KDqNGXdTPUsbBXANF/ 4UWq4QRwac7mIFiCSUIcjg== X-Google-Smtp-Source: ABdhPJzbZik0Fhg20BtHYCj3/XPWySP0rSO1Ok6QR0iNyDhRQg8OCUGOYsef6wG2iHCG5P5EXwu6ZQ== X-Received: by 2002:a54:4381:: with SMTP id u1mr150346oiv.70.1641329757528; Tue, 04 Jan 2022 12:55:57 -0800 (PST) Received: from robh.at.kernel.org (66-90-148-213.dyn.grandenetworks.net. [66.90.148.213]) by smtp.gmail.com with ESMTPSA id e14sm7893412oow.3.2022.01.04.12.55.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Jan 2022 12:55:57 -0800 (PST) Received: (nullmailer pid 1409953 invoked by uid 1000); Tue, 04 Jan 2022 20:55:56 -0000 Date: Tue, 4 Jan 2022 14:55:56 -0600 From: Rob Herring To: David Heidelberg Cc: Rob Clark , Sean Paul , Abhinav Kumar , David Airlie , Daniel Vetter , ~okias/devicetree@lists.sr.ht, linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] dt-bindings: display/msm: hdmi: split and convert to yaml Message-ID: References: <20211224162458.52493-1-david@ixit.cz> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20211224162458.52493-1-david@ixit.cz> Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Dec 24, 2021 at 05:24:57PM +0100, David Heidelberg wrote: > Convert Qualcomm HDMI binding into HDMI TX and PHY yaml bindings. > > Other changes: > - fixed reg-names numbering to match 0..3 instead 0,1,3,4 > > Signed-off-by: David Heidelberg > --- > .../devicetree/bindings/display/msm/hdmi.txt | 99 --------- > .../bindings/display/msm/qcom,hdmi-phy.yaml | 119 +++++++++++ PHYs go in bindings/phy/ > .../bindings/display/msm/qcom,hdmi.yaml | 201 ++++++++++++++++++ > 3 files changed, 320 insertions(+), 99 deletions(-) > delete mode 100644 Documentation/devicetree/bindings/display/msm/hdmi.txt > create mode 100644 Documentation/devicetree/bindings/display/msm/qcom,hdmi-phy.yaml > create mode 100644 Documentation/devicetree/bindings/display/msm/qcom,hdmi.yaml > > diff --git a/Documentation/devicetree/bindings/display/msm/hdmi.txt b/Documentation/devicetree/bindings/display/msm/hdmi.txt > deleted file mode 100644 > index 5f90a40da51b..000000000000 > --- a/Documentation/devicetree/bindings/display/msm/hdmi.txt > +++ /dev/null > @@ -1,99 +0,0 @@ > -Qualcomm adreno/snapdragon hdmi output > - > -Required properties: > -- compatible: one of the following > - * "qcom,hdmi-tx-8996" > - * "qcom,hdmi-tx-8994" > - * "qcom,hdmi-tx-8084" > - * "qcom,hdmi-tx-8974" > - * "qcom,hdmi-tx-8660" > - * "qcom,hdmi-tx-8960" > -- reg: Physical base address and length of the controller's registers > -- reg-names: "core_physical" > -- interrupts: The interrupt signal from the hdmi block. > -- power-domains: Should be <&mmcc MDSS_GDSC>. > -- clocks: device clocks > - See ../clocks/clock-bindings.txt for details. > -- core-vdda-supply: phandle to supply regulator > -- hdmi-mux-supply: phandle to mux regulator > -- phys: the phandle for the HDMI PHY device > -- phy-names: the name of the corresponding PHY device > - > -Optional properties: > -- hpd-gpios: hpd pin > -- qcom,hdmi-tx-mux-en-gpios: hdmi mux enable pin > -- qcom,hdmi-tx-mux-sel-gpios: hdmi mux select pin > -- qcom,hdmi-tx-mux-lpm-gpios: hdmi mux lpm pin > -- power-domains: reference to the power domain(s), if available. > -- pinctrl-names: the pin control state names; should contain "default" > -- pinctrl-0: the default pinctrl state (active) > -- pinctrl-1: the "sleep" pinctrl state > - > -HDMI PHY: > -Required properties: > -- compatible: Could be the following > - * "qcom,hdmi-phy-8660" > - * "qcom,hdmi-phy-8960" > - * "qcom,hdmi-phy-8974" > - * "qcom,hdmi-phy-8084" > - * "qcom,hdmi-phy-8996" > -- #phy-cells: Number of cells in a PHY specifier; Should be 0. > -- reg: Physical base address and length of the registers of the PHY sub blocks. > -- reg-names: The names of register regions. The following regions are required: > - * "hdmi_phy" > - * "hdmi_pll" > - For HDMI PHY on msm8996, these additional register regions are required: > - * "hdmi_tx_l0" > - * "hdmi_tx_l1" > - * "hdmi_tx_l3" > - * "hdmi_tx_l4" > -- power-domains: Should be <&mmcc MDSS_GDSC>. > -- clocks: device clocks > - See Documentation/devicetree/bindings/clock/clock-bindings.txt for details. > -- core-vdda-supply: phandle to vdda regulator device node > - > -Example: > - > -/ { > - ... > - > - hdmi: hdmi@4a00000 { > - compatible = "qcom,hdmi-tx-8960"; > - reg-names = "core_physical"; > - reg = <0x04a00000 0x2f0>; > - interrupts = ; > - power-domains = <&mmcc MDSS_GDSC>; > - clock-names = > - "core", > - "master_iface", > - "slave_iface"; > - clocks = > - <&mmcc HDMI_APP_CLK>, > - <&mmcc HDMI_M_AHB_CLK>, > - <&mmcc HDMI_S_AHB_CLK>; > - qcom,hdmi-tx-ddc-clk = <&msmgpio 70 GPIO_ACTIVE_HIGH>; > - qcom,hdmi-tx-ddc-data = <&msmgpio 71 GPIO_ACTIVE_HIGH>; > - qcom,hdmi-tx-hpd = <&msmgpio 72 GPIO_ACTIVE_HIGH>; > - core-vdda-supply = <&pm8921_hdmi_mvs>; > - hdmi-mux-supply = <&ext_3p3v>; > - pinctrl-names = "default", "sleep"; > - pinctrl-0 = <&hpd_active &ddc_active &cec_active>; > - pinctrl-1 = <&hpd_suspend &ddc_suspend &cec_suspend>; > - > - phys = <&hdmi_phy>; > - phy-names = "hdmi_phy"; > - }; > - > - hdmi_phy: phy@4a00400 { > - compatible = "qcom,hdmi-phy-8960"; > - reg-names = "hdmi_phy", > - "hdmi_pll"; > - reg = <0x4a00400 0x60>, > - <0x4a00500 0x100>; > - #phy-cells = <0>; > - power-domains = <&mmcc MDSS_GDSC>; > - clock-names = "slave_iface"; > - clocks = <&mmcc HDMI_S_AHB_CLK>; > - core-vdda-supply = <&pm8921_hdmi_mvs>; > - }; > -}; > diff --git a/Documentation/devicetree/bindings/display/msm/qcom,hdmi-phy.yaml b/Documentation/devicetree/bindings/display/msm/qcom,hdmi-phy.yaml > new file mode 100644 > index 000000000000..be08fc767435 > --- /dev/null > +++ b/Documentation/devicetree/bindings/display/msm/qcom,hdmi-phy.yaml > @@ -0,0 +1,119 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > + > +$id: "http://devicetree.org/schemas/display/msm/qcom,hdmi-phy.yaml#" > +$schema: "http://devicetree.org/meta-schemas/core.yaml#" > + > +title: Qualcomm Adreno/Snapdragon HDMI phy > + > +maintainers: > + - Rob Clark > + > +allOf: > + - if: > + properties: > + compatible: > + contains: > + const: qcom,hdmi-phy-8996 > + then: > + properties: > + reg: > + minItems: 6 > + maxItems: 6 > + > + reg-names: > + items: > + - const: hdmi_pll > + - const: hdmi_tx_l0 > + - const: hdmi_tx_l1 > + - const: hdmi_tx_l2 > + - const: hdmi_tx_l3 > + - const: hdmi_phy > + > + else: > + properties: > + reg: > + minItems: 2 > + maxItems: 2 > + > + reg-names: > + items: > + - const: hdmi_phy > + - const: hdmi_pll > + - if: > + properties: > + compatible: > + contains: > + const: qcom,hdmi-phy-8960 > + then: > + properties: > + clock-names: > + const: slave_iface > + > + - if: > + properties: > + compatible: > + contains: > + const: qcom,hdmi-phy-8996 > + then: > + properties: > + clock-names: > + items: > + - const: iface > + - const: ref > + > +properties: > + compatible: > + contains: > + enum: > + - qcom,hdmi-phy-8084 > + - qcom,hdmi-phy-8660 > + - qcom,hdmi-phy-8960 > + - qcom,hdmi-phy-8974 > + - qcom,hdmi-phy-8994 > + - qcom,hdmi-phy-8996 > + > + reg: true > + > + reg-names: true > + > + clocks: true > + > + clock-names: true > + > + power-domains: > + maxItems: 1 > + > + core-vdda-supply: true > + > + vcca-supply: true > + > + vddio-supply: true > + > + '#phy-cells': > + const: 0 > + > +required: > + - compatible > + - clocks > + - reg > + - reg-names > + - '#phy-cells' > + > +additionalProperties: false > + > +examples: > + - | > + hdmi_phy: phy@4a00400 { > + compatible = "qcom,hdmi-phy-8960"; > + reg-names = "hdmi_phy", > + "hdmi_pll"; > + reg = <0x4a00400 0x60>, > + <0x4a00500 0x100>; > + #phy-cells = <0>; > + power-domains = <&mmcc 1>; > + clock-names = "slave_iface"; > + clocks = <&clk 21>; > + core-vdda-supply = <&pm8921_hdmi_mvs>; > + }; > diff --git a/Documentation/devicetree/bindings/display/msm/qcom,hdmi.yaml b/Documentation/devicetree/bindings/display/msm/qcom,hdmi.yaml > new file mode 100644 > index 000000000000..72f7a58c078a > --- /dev/null > +++ b/Documentation/devicetree/bindings/display/msm/qcom,hdmi.yaml > @@ -0,0 +1,201 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > + > +$id: "http://devicetree.org/schemas/display/msm/qcom,hdmi.yaml#" > +$schema: "http://devicetree.org/meta-schemas/core.yaml#" > + > +title: Qualcomm Adreno/Snapdragon HDMI output > + > +maintainers: > + - Rob Clark > + > +allOf: > + - if: > + properties: > + compatible: > + contains: > + const: qcom,hdmi-tx-8996 > + then: > + properties: > + clocks: > + minItems: 5 > + maxItems: 5 > + > + clock-names: > + items: > + - const: mdp_core > + - const: iface > + - const: core > + - const: alt_iface > + - const: extp > + else: > + properties: > + clocks: > + minItems: 1 > + maxItems: 5 > + > + clock-names: > + minItems: 1 > + maxItems: 5 > + > + > +properties: > + compatible: > + enum: > + - qcom,hdmi-tx-8996 > + - qcom,hdmi-tx-8994 > + - qcom,hdmi-tx-8084 > + - qcom,hdmi-tx-8974 > + - qcom,hdmi-tx-8660 > + - qcom,hdmi-tx-8960 > + > + clocks: true > + > + clock-names: true > + > + reg: > + minItems: 1 > + maxItems: 3 > + description: Physical base address and length of the controller's registers > + > + reg-names: > + minItems: 1 > + items: > + - const: core_physical > + - const: qfprom_physical > + - const: hdcp_physical > + > + interrupts: > + description: The interrupt signal from the hdmi block. How many? > + > + power-domains: > + description: should be <&mmcc MDSS_GDSC> How many? > + > + core-vdda-supply: true > + > + core-vcc-supply: true > + > + hdmi-mux-supply: > + description: phandle to mux regulator > + > + phys: > + description: the phandle for the HDMI PHY device > + > + phy-names: > + description: the name of the corresponding PHY device > + > + hpd-gpios: > + description: hpd pin How many? > + > + qcom,hdmi-tx-ddc-clk-gpios: > + description: HDMI DDC clock How many? And so on... > + > + qcom,hdmi-tx-ddc-data-gpios: > + description: HDMI DDC data > + > + qcom,hdmi-tx-mux-en-gpios: > + description: HDMI mux enable pin > + > + qcom,hdmi-tx-mux-sel-gpios: > + description: HDMI mux select pin > + > + qcom,hdmi-tx-mux-lpm-gpios: > + description: HDMI mux lpm pin > + > + pinctrl-0: true > + pinctrl-1: true > + > + pinctrl-names: > + anyOf: > + - items: > + - const: default > + - items: > + - const: default > + - const: sleep Just need the 2nd entry plus 'minItems: 1' > + > + '#phy-cells': > + const: 0 > + > + '#sound-dai-cells': > + const: 1 > + > + ports: > + type: object > + $ref: "/schemas/graph.yaml#/properties/ports" You can drop quotes. Either is fine, but you've got a mixture. > + properties: > + port@0: > + $ref: "/schemas/graph.yaml#/$defs/port-base" > + unevaluatedProperties: false > + description: | > + Input endpoints of the controller. > + properties: > + endpoint: > + $ref: /schemas/media/video-interfaces.yaml# > + unevaluatedProperties: false > + properties: > + data-lanes: > + maxItems: 4 > + minItems: 4 > + items: > + enum: [0, 1, 2, 3] > + > + port@1: > + $ref: "/schemas/graph.yaml#/$defs/port-base" > + unevaluatedProperties: false > + description: | > + Output endpoints of the controller. > + properties: > + endpoint: > + $ref: /schemas/media/video-interfaces.yaml# > + unevaluatedProperties: false > + properties: > + data-lanes: > + maxItems: 4 > + minItems: 4 > + items: > + enum: [0, 1, 2, 3] > + > + required: > + - port@0 > + > +required: > + - compatible > + - clocks > + - clock-names > + - reg > + - reg-names > + - interrupts > + - phys > + - phy-names > + > +additionalProperties: false > + > +examples: > + - | > + hdmi: hdmi@4a00000 { > + compatible = "qcom,hdmi-tx-8960"; > + reg-names = "core_physical"; > + reg = <0x04a00000 0x2f0>; > + interrupts = <0 79 0>; > + power-domains = <&mmcc 1>; > + clock-names = > + "core", > + "master_iface", > + "slave_iface"; > + clocks = > + <&clk 61>, > + <&clk 72>, > + <&clk 98>; > + qcom,hdmi-tx-ddc-clk-gpios = <&msmgpio 70 0>; > + qcom,hdmi-tx-ddc-data-gpios = <&msmgpio 71 0>; > + hpd-gpios = <&msmgpio 72 0>; > + core-vdda-supply = <&pm8921_hdmi_mvs>; > + hdmi-mux-supply = <&ext_3p3v>; > + pinctrl-names = "default", "sleep"; > + pinctrl-0 = <&hpd_active &ddc_active &cec_active>; > + pinctrl-1 = <&hpd_suspend &ddc_suspend &cec_suspend>; > + > + phys = <&hdmi_phy>; > + phy-names = "hdmi_phy"; > + }; > -- > 2.34.1 > >