Message ID | 20221028120812.339100-10-robert.foss@linaro.org |
---|---|
State | New |
Headers |
Return-Path: <linux-kernel-owner@vger.kernel.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:6687:0:0:0:0:0 with SMTP id l7csp789589wru; Fri, 28 Oct 2022 05:11:53 -0700 (PDT) X-Google-Smtp-Source: AMsMyM4fAufxA+LdXSF6KK4hWKBugw2hXCN8nT9dMbp6QaVSbk7uPXE9UBACVeBfPuSCQ6GNjOQ5 X-Received: by 2002:a63:1349:0:b0:44b:2240:b311 with SMTP id 9-20020a631349000000b0044b2240b311mr46377823pgt.405.1666959113167; Fri, 28 Oct 2022 05:11:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1666959113; cv=none; d=google.com; s=arc-20160816; b=TMtFChgmty3tCNi9cOarDITwIogvhitnDrdx73qklrm+dXabQQqASu3Go8bC03g7yo dGYgDzxuHStP3Vd0Q1nJVSw4VP6uxnlwNqRQZxPDncoayL2avcOVgvdlcZIH6Ywu9IXf udOW0zZ+8ABlOO1gha6XmkOq/czrnk5BTyguvV0hDA8xMRo/iwWRqqEZSYjkyr3QJ/+3 gT0U3LwpfK/CAWOjjD4P92nMvnXjE68ioJAQCD3DYj33jg0p/VKLZMFE3hLWi3625icw YmX01nrfUoEsYhqHbrWYzrZzKV20Pb6OuSB1J6ne9sOkiqqngClTcVCQZiu+ixh11TUp bNhw== 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:to:from :dkim-signature; bh=nro0nHTMpy1mUmByNujQ3HWqymE/gqfVxOpFm6MkAlg=; b=wwBbH5ouZVdL/qEkDQDi4aL9LGF+1Q9uxuPl6gpbMevzlof1nnp1NoJptnX15wOnDM hPcpzwzU+xoGaMC6X05SpQ7z29vu+szGJt8SFiMQyTGwEFnV7xTFDQkWyePFUkCM3ySC yjk0eIypxjTH1aFaH4dQXd7EukrC2o2BCpl6/9Dt9KrxO4H8s20mQtopZ/Or6GVr/zJM s9G/YYlpXulbH8muiACdm6pbSBICMr3ATfj/eYpCQ9hAdTY0OJDNa8V1syZ5e75iE+sd puLbxjpsHWniETvX1xfu7K7j6Cip2f4D3Oskim33R0b+1SkyWOQzhMgSTOsn/Oq3nhh2 xRCA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=HW5d2CcA; 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=linaro.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id w9-20020a170902904900b0017f792fe3edsi4790001plz.266.2022.10.28.05.11.39; Fri, 28 Oct 2022 05:11:53 -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=@linaro.org header.s=google header.b=HW5d2CcA; 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=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230453AbiJ1MJT (ORCPT <rfc822;chrisfriedt@gmail.com> + 99 others); Fri, 28 Oct 2022 08:09:19 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54418 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230448AbiJ1MI6 (ORCPT <rfc822;linux-kernel@vger.kernel.org>); Fri, 28 Oct 2022 08:08:58 -0400 Received: from mail-ed1-x532.google.com (mail-ed1-x532.google.com [IPv6:2a00:1450:4864:20::532]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 387351D3EB4 for <linux-kernel@vger.kernel.org>; Fri, 28 Oct 2022 05:08:43 -0700 (PDT) Received: by mail-ed1-x532.google.com with SMTP id a5so7535317edb.11 for <linux-kernel@vger.kernel.org>; Fri, 28 Oct 2022 05:08:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=nro0nHTMpy1mUmByNujQ3HWqymE/gqfVxOpFm6MkAlg=; b=HW5d2CcAgnJGaGDLx5MVUC++wgNlk+4j6ys+wvUFMQJQR3IFmRLdxoKNwrDlJjH3Vb wtBGekZ1y3x8cPg4GkAKKma5q6sNA+6yrP7UizBRsDVCxIuRDhGo3CAiyzupPHrcmTqu to+TtfdLCDKapZKzhsz4Lo85x5zOd4rg3oc1ZQvJN6Ne4Z/UksJdkrNFt7p2PAnTSw1g RRlULIfUadS2qDL5SbuF6knVNs9tEAMHPsOexfEOIVv0DyWfJ69QUac/aBDfj83wLUxi yZO8vpyAShCtAEokoPjo/YcqUuNqZxOzvOpK05ohvEEDzdOAKaqEr4vzH93droLLx2q8 q7qw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=nro0nHTMpy1mUmByNujQ3HWqymE/gqfVxOpFm6MkAlg=; b=6o2yuCfl/FycggYQSQTgGiOcH4R6f+sT/xjD1dPUfp7FX1Jsa+zLutPrMpxYq8WV6n TvAWtlX55lwf4CdH22ZVMznOGiZL0TnOeOugZr3c/n0syDqaJCqciZysvnrOXsXXM0Kv oebggk/IiC8ToaCulo2pxS4y7nETymo08QodVDcQ36kojVko2o/Hycr6vS0IShVrh1Pz 6pO3xLkJ4XSqXfEfIBigM9QtsI5RH0CA15vEpFgvIO3fwhsj8ZpaZ51QpATQvf+Hibr8 inZI5pEckw3HWNsO1hCNOWFWEk2aodQKX4rL+QYE4SEwoY340d2w2aMIjXK2OuQEq61r yAtw== X-Gm-Message-State: ACrzQf00OXSlV/oevUimDaCmC/O5DWqVe4xXYeLXpF27Vf+Wp4kIvWef hxnYeshZokBgWdyIrlJmJuI+Zw== X-Received: by 2002:a05:6402:5159:b0:462:3e9f:a0a4 with SMTP id n25-20020a056402515900b004623e9fa0a4mr14081184edd.313.1666958921698; Fri, 28 Oct 2022 05:08:41 -0700 (PDT) Received: from prec5560.. (freifunk-gw.bsa1-cpe1.syseleven.net. [176.74.57.43]) by smtp.gmail.com with ESMTPSA id u13-20020a170906124d00b00782e3cf7277sm2067258eja.120.2022.10.28.05.08.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 28 Oct 2022 05:08:40 -0700 (PDT) From: Robert Foss <robert.foss@linaro.org> To: agross@kernel.org, bjorn.andersson@linaro.org, konrad.dybcio@somainline.org, robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, robdclark@gmail.com, quic_abhinavk@quicinc.com, dmitry.baryshkov@linaro.org, sean@poorly.run, airlied@linux.ie, daniel@ffwll.ch, quic_kalyant@quicinc.com, swboyd@chromium.org, robert.foss@linaro.org, angelogioacchino.delregno@somainline.org, loic.poulain@linaro.org, quic_vpolimer@quicinc.com, vkoul@kernel.org, dianders@chromium.org, linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org, Jonathan Marek <jonathan@marek.ca>, vinod.koul@linaro.org, quic_jesszhan@quicinc.com Subject: [PATCH v1 9/9] arm64: dts: qcom: sm8350-hdk: Enable lt9611uxc dsi-hdmi bridge Date: Fri, 28 Oct 2022 14:08:12 +0200 Message-Id: <20221028120812.339100-10-robert.foss@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20221028120812.339100-1-robert.foss@linaro.org> References: <20221028120812.339100-1-robert.foss@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS 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?1747933318732849570?= X-GMAIL-MSGID: =?utf-8?q?1747933318732849570?= |
Series |
Enable Display for SM8350
|
|
Commit Message
Robert Foss
Oct. 28, 2022, 12:08 p.m. UTC
The sm8350-hdk ships with the LT9611 UXC DSI/HDMI bridge chip.
In order to toggle the board to enable the HDMI output,
switch #7 & #8 on the rightmost multi-switch package have
to be toggled to On.
Signed-off-by: Robert Foss <robert.foss@linaro.org>
---
arch/arm64/boot/dts/qcom/sm8350-hdk.dts | 106 ++++++++++++++++++++++++
1 file changed, 106 insertions(+)
Comments
On 28/10/2022 15:08, Robert Foss wrote: > The sm8350-hdk ships with the LT9611 UXC DSI/HDMI bridge chip. > > In order to toggle the board to enable the HDMI output, > switch #7 & #8 on the rightmost multi-switch package have > to be toggled to On. Since this doesn't look like a default setup, it would probably make sense to move this to new sm8350-hdk-hdmi.dts with the comment regarding necessary switch changes at the top of the file. > > Signed-off-by: Robert Foss <robert.foss@linaro.org> > --- > arch/arm64/boot/dts/qcom/sm8350-hdk.dts | 106 ++++++++++++++++++++++++ > 1 file changed, 106 insertions(+) > > diff --git a/arch/arm64/boot/dts/qcom/sm8350-hdk.dts b/arch/arm64/boot/dts/qcom/sm8350-hdk.dts > index 6e07feb4b3b2..6666b38b58f8 100644 > --- a/arch/arm64/boot/dts/qcom/sm8350-hdk.dts > +++ b/arch/arm64/boot/dts/qcom/sm8350-hdk.dts > @@ -20,6 +20,17 @@ chosen { > stdout-path = "serial0:115200n8"; > }; > > + hdmi-out { > + compatible = "hdmi-connector"; > + type = "a"; > + > + port { > + hdmi_con: endpoint { > + remote-endpoint = <<9611_out>; > + }; > + }; > + }; > + > vph_pwr: vph-pwr-regulator { > compatible = "regulator-fixed"; > regulator-name = "vph_pwr"; > @@ -29,6 +40,32 @@ vph_pwr: vph-pwr-regulator { > regulator-always-on; > regulator-boot-on; > }; > + > + lt9611_1v2: lt9611-1v2 { > + compatible = "regulator-fixed"; > + regulator-name = "LT9611_1V2"; > + > + vin-supply = <&vph_pwr>; > + regulator-min-microvolt = <1200000>; > + regulator-max-microvolt = <1200000>; > + gpio = <&tlmm 49 GPIO_ACTIVE_HIGH>; > + enable-active-high; > + regulator-boot-on; > + regulator-always-on; > + }; > + > + lt9611_3v3: lt9611-3v3 { > + compatible = "regulator-fixed"; > + regulator-name = "LT9611_3V3"; > + > + vin-supply = <&vreg_bob>; > + gpio = <&tlmm 47 GPIO_ACTIVE_HIGH>; > + regulator-min-microvolt = <3300000>; > + regulator-max-microvolt = <3300000>; > + enable-active-high; > + regulator-boot-on; > + regulator-always-on; > + }; > }; > > &adsp { > @@ -220,6 +257,15 @@ &dispcc { > &dsi0 { > status = "okay"; > vdda-supply = <&vreg_l6b_1p2>; > + > + ports { > + port@1 { > + endpoint { > + remote-endpoint = <<9611_a>; > + data-lanes = <0 1 2 3>; > + }; > + }; > + }; > }; > > &dsi0_phy { > @@ -231,6 +277,48 @@ &gpi_dma1 { > status = "okay"; > }; > > +&i2c15 { > + status = "okay"; > + clock-frequency = <400000>; > + > + lt9611_codec: hdmi-bridge@2b { > + compatible = "lontium,lt9611uxc"; > + reg = <0x2b>; > + status = "okay"; > + > + interrupts-extended = <&tlmm 50 IRQ_TYPE_EDGE_FALLING>; > + reset-gpios = <&tlmm 48 GPIO_ACTIVE_HIGH>; > + > + vdd-supply = <<9611_1v2>; > + vcc-supply = <<9611_3v3>; > + > + pinctrl-names = "default"; > + pinctrl-0 = <<9611_irq_pin <9611_rst_pin>; > + > + ports { > + #address-cells = <1>; > + #size-cells = <0>; > + > + port@0 { > + reg = <0>; > + > + lt9611_a: endpoint { > + remote-endpoint = <&dsi0_out>; > + }; > + }; > + > + port@2 { > + reg = <2>; > + > + lt9611_out: endpoint { > + remote-endpoint = <&hdmi_con>; > + }; > + }; > + > + }; > + }; > +}; > + > &mdss { > status = "okay"; > }; > @@ -248,6 +336,10 @@ &qupv3_id_0 { > status = "okay"; > }; > > +&qupv3_id_2 { > + status = "okay"; > +}; > + > &slpi { > status = "okay"; > firmware-name = "qcom/sm8350/slpi.mbn"; > @@ -544,4 +636,18 @@ usb_hub_enabled_state: usb-hub-enabled-state { > drive-strength = <2>; > output-low; > }; > + > + lt9611_rst_pin: lt9611-rst-state { > + pins = "gpio48"; > + function = "normal"; > + > + output-high; > + input-disable; > + }; > + > + lt9611_irq_pin: lt9611-irq { > + pins = "gpio50"; > + function = "gpio"; > + bias-disable; > + }; > };
On Fri, Oct 28, 2022 at 02:08:12PM +0200, Robert Foss wrote: > The sm8350-hdk ships with the LT9611 UXC DSI/HDMI bridge chip. > > In order to toggle the board to enable the HDMI output, > switch #7 & #8 on the rightmost multi-switch package have > to be toggled to On. > > Signed-off-by: Robert Foss <robert.foss@linaro.org> > --- > arch/arm64/boot/dts/qcom/sm8350-hdk.dts | 106 ++++++++++++++++++++++++ > 1 file changed, 106 insertions(+) > > diff --git a/arch/arm64/boot/dts/qcom/sm8350-hdk.dts b/arch/arm64/boot/dts/qcom/sm8350-hdk.dts > index 6e07feb4b3b2..6666b38b58f8 100644 > --- a/arch/arm64/boot/dts/qcom/sm8350-hdk.dts > +++ b/arch/arm64/boot/dts/qcom/sm8350-hdk.dts > @@ -20,6 +20,17 @@ chosen { > stdout-path = "serial0:115200n8"; > }; > > + hdmi-out { > + compatible = "hdmi-connector"; > + type = "a"; > + > + port { > + hdmi_con: endpoint { > + remote-endpoint = <<9611_out>; > + }; > + }; > + }; > + > vph_pwr: vph-pwr-regulator { > compatible = "regulator-fixed"; > regulator-name = "vph_pwr"; > @@ -29,6 +40,32 @@ vph_pwr: vph-pwr-regulator { > regulator-always-on; > regulator-boot-on; > }; > + > + lt9611_1v2: lt9611-1v2 { > + compatible = "regulator-fixed"; > + regulator-name = "LT9611_1V2"; > + > + vin-supply = <&vph_pwr>; > + regulator-min-microvolt = <1200000>; > + regulator-max-microvolt = <1200000>; > + gpio = <&tlmm 49 GPIO_ACTIVE_HIGH>; > + enable-active-high; > + regulator-boot-on; > + regulator-always-on; Why is this always-on? > + }; > + > + lt9611_3v3: lt9611-3v3 { > + compatible = "regulator-fixed"; > + regulator-name = "LT9611_3V3"; > + > + vin-supply = <&vreg_bob>; > + gpio = <&tlmm 47 GPIO_ACTIVE_HIGH>; > + regulator-min-microvolt = <3300000>; > + regulator-max-microvolt = <3300000>; > + enable-active-high; > + regulator-boot-on; > + regulator-always-on; > + }; > }; > > &adsp { > @@ -220,6 +257,15 @@ &dispcc { > &dsi0 { > status = "okay"; > vdda-supply = <&vreg_l6b_1p2>; > + > + ports { > + port@1 { > + endpoint { > + remote-endpoint = <<9611_a>; > + data-lanes = <0 1 2 3>; > + }; > + }; > + }; > }; > > &dsi0_phy { > @@ -231,6 +277,48 @@ &gpi_dma1 { > status = "okay"; > }; > > +&i2c15 { > + status = "okay"; Please keep status last. (Yes I see that it goes against the convention in this file, so let's update that at some point as well) > + clock-frequency = <400000>; > + > + lt9611_codec: hdmi-bridge@2b { > + compatible = "lontium,lt9611uxc"; > + reg = <0x2b>; > + status = "okay"; This is the default, you can omit it. > + > + interrupts-extended = <&tlmm 50 IRQ_TYPE_EDGE_FALLING>; > + reset-gpios = <&tlmm 48 GPIO_ACTIVE_HIGH>; > + > + vdd-supply = <<9611_1v2>; > + vcc-supply = <<9611_3v3>; > + > + pinctrl-names = "default"; > + pinctrl-0 = <<9611_irq_pin <9611_rst_pin>; > + > + ports { > + #address-cells = <1>; > + #size-cells = <0>; > + > + port@0 { > + reg = <0>; > + > + lt9611_a: endpoint { > + remote-endpoint = <&dsi0_out>; > + }; > + }; > + > + port@2 { > + reg = <2>; > + > + lt9611_out: endpoint { > + remote-endpoint = <&hdmi_con>; > + }; > + }; > + > + }; > + }; > +}; > + > &mdss { > status = "okay"; > }; > @@ -248,6 +336,10 @@ &qupv3_id_0 { > status = "okay"; > }; > > +&qupv3_id_2 { > + status = "okay"; > +}; > + > &slpi { > status = "okay"; > firmware-name = "qcom/sm8350/slpi.mbn"; > @@ -544,4 +636,18 @@ usb_hub_enabled_state: usb-hub-enabled-state { > drive-strength = <2>; > output-low; > }; > + > + lt9611_rst_pin: lt9611-rst-state { > + pins = "gpio48"; > + function = "normal"; > + > + output-high; > + input-disable; > + }; > + > + lt9611_irq_pin: lt9611-irq { pinctrl state nodes should be suffixed with "-state". And you can lump the two pins into a single -state, with rst-pins and irq-pins as subnodes, defining the two pins. Regards, Bjorn > + pins = "gpio50"; > + function = "gpio"; > + bias-disable; > + }; > }; > -- > 2.34.1 >
On 28/10/2022 08:08, Robert Foss wrote: > The sm8350-hdk ships with the LT9611 UXC DSI/HDMI bridge chip. > > In order to toggle the board to enable the HDMI output, > switch #7 & #8 on the rightmost multi-switch package have > to be toggled to On. > > Signed-off-by: Robert Foss <robert.foss@linaro.org> > --- > arch/arm64/boot/dts/qcom/sm8350-hdk.dts | 106 ++++++++++++++++++++++++ > 1 file changed, 106 insertions(+) > > diff --git a/arch/arm64/boot/dts/qcom/sm8350-hdk.dts b/arch/arm64/boot/dts/qcom/sm8350-hdk.dts > index 6e07feb4b3b2..6666b38b58f8 100644 > --- a/arch/arm64/boot/dts/qcom/sm8350-hdk.dts > +++ b/arch/arm64/boot/dts/qcom/sm8350-hdk.dts > @@ -20,6 +20,17 @@ chosen { > stdout-path = "serial0:115200n8"; > }; > > + hdmi-out { Generic node names, so hdmi-connector or just connector. > + compatible = "hdmi-connector"; > + type = "a"; > + > + port { > + hdmi_con: endpoint { > + remote-endpoint = <<9611_out>; > + }; > + }; > + }; > + > vph_pwr: vph-pwr-regulator { > compatible = "regulator-fixed"; > regulator-name = "vph_pwr"; > @@ -29,6 +40,32 @@ vph_pwr: vph-pwr-regulator { > regulator-always-on; > regulator-boot-on; > }; > + > + lt9611_1v2: lt9611-1v2 { Node names should be generic. https://devicetree-specification.readthedocs.io/en/latest/chapter2-devicetree-basics.html#generic-names-recommendation > + compatible = "regulator-fixed"; > + regulator-name = "LT9611_1V2"; > + > + vin-supply = <&vph_pwr>; > + regulator-min-microvolt = <1200000>; > + regulator-max-microvolt = <1200000>; > + gpio = <&tlmm 49 GPIO_ACTIVE_HIGH>; > + enable-active-high; > + regulator-boot-on; > + regulator-always-on; > + }; > + > + lt9611_3v3: lt9611-3v3 { Ditto > + compatible = "regulator-fixed"; > + regulator-name = "LT9611_3V3"; > + > + vin-supply = <&vreg_bob>; > + gpio = <&tlmm 47 GPIO_ACTIVE_HIGH>; > + regulator-min-microvolt = <3300000>; > + regulator-max-microvolt = <3300000>; > + enable-active-high; > + regulator-boot-on; > + regulator-always-on; > + }; > }; > > &adsp { > @@ -220,6 +257,15 @@ &dispcc { > &dsi0 { > status = "okay"; > vdda-supply = <&vreg_l6b_1p2>; > + > + ports { > + port@1 { > + endpoint { > + remote-endpoint = <<9611_a>; > + data-lanes = <0 1 2 3>; > + }; > + }; > + }; > }; > > &dsi0_phy { > @@ -231,6 +277,48 @@ &gpi_dma1 { > status = "okay"; > }; > > +&i2c15 { > + status = "okay"; status is the last property > + clock-frequency = <400000>; > + > + lt9611_codec: hdmi-bridge@2b { > + compatible = "lontium,lt9611uxc"; > + reg = <0x2b>; > + status = "okay"; Why status? > + > + interrupts-extended = <&tlmm 50 IRQ_TYPE_EDGE_FALLING>; > + reset-gpios = <&tlmm 48 GPIO_ACTIVE_HIGH>; > + > + vdd-supply = <<9611_1v2>; > + vcc-supply = <<9611_3v3>; > + > + pinctrl-names = "default"; > + pinctrl-0 = <<9611_irq_pin <9611_rst_pin>; > + > + ports { > + #address-cells = <1>; > + #size-cells = <0>; > + > + port@0 { > + reg = <0>; > + > + lt9611_a: endpoint { > + remote-endpoint = <&dsi0_out>; > + }; > + }; > + > + port@2 { > + reg = <2>; > + > + lt9611_out: endpoint { > + remote-endpoint = <&hdmi_con>; > + }; > + }; > + No need for blank line > + }; > + }; > +}; > + > &mdss { > status = "okay"; > }; > @@ -248,6 +336,10 @@ &qupv3_id_0 { > status = "okay"; > }; > > +&qupv3_id_2 { > + status = "okay"; > +}; > + > &slpi { > status = "okay"; > firmware-name = "qcom/sm8350/slpi.mbn"; > @@ -544,4 +636,18 @@ usb_hub_enabled_state: usb-hub-enabled-state { > drive-strength = <2>; > output-low; > }; > + > + lt9611_rst_pin: lt9611-rst-state { > + pins = "gpio48"; > + function = "normal"; > + > + output-high; > + input-disable; > + }; > + > + lt9611_irq_pin: lt9611-irq { Missing suffix 'state'. Does not look like you tested the DTS against bindings. Please run `make dtbs_check` (see Documentation/devicetree/bindings/writing-schema.rst for instructions). Rebase your changes on last linux-next. Best regards, Krzysztof
On 28/10/2022 16:56, Dmitry Baryshkov wrote: > On 28/10/2022 15:08, Robert Foss wrote: >> The sm8350-hdk ships with the LT9611 UXC DSI/HDMI bridge chip. >> >> In order to toggle the board to enable the HDMI output, >> switch #7 & #8 on the rightmost multi-switch package have >> to be toggled to On. > > Since this doesn't look like a default setup, it would probably make > sense to move this to new sm8350-hdk-hdmi.dts with the comment regarding > necessary switch changes at the top of the file. > Please excuse me here. I checked the Lantronix site. It clearly names 'Optional Display/Expansion board mates to DSI connectors'. So, you were correct, the HDMI should be in the base setup, while DSI panel should come as the extending DT file.
On Fri, 28 Oct 2022 at 15:57, Bjorn Andersson <andersson@kernel.org> wrote: > > On Fri, Oct 28, 2022 at 02:08:12PM +0200, Robert Foss wrote: > > The sm8350-hdk ships with the LT9611 UXC DSI/HDMI bridge chip. > > > > In order to toggle the board to enable the HDMI output, > > switch #7 & #8 on the rightmost multi-switch package have > > to be toggled to On. > > > > Signed-off-by: Robert Foss <robert.foss@linaro.org> > > --- > > arch/arm64/boot/dts/qcom/sm8350-hdk.dts | 106 ++++++++++++++++++++++++ > > 1 file changed, 106 insertions(+) > > > > diff --git a/arch/arm64/boot/dts/qcom/sm8350-hdk.dts b/arch/arm64/boot/dts/qcom/sm8350-hdk.dts > > index 6e07feb4b3b2..6666b38b58f8 100644 > > --- a/arch/arm64/boot/dts/qcom/sm8350-hdk.dts > > +++ b/arch/arm64/boot/dts/qcom/sm8350-hdk.dts > > @@ -20,6 +20,17 @@ chosen { > > stdout-path = "serial0:115200n8"; > > }; > > > > + hdmi-out { > > + compatible = "hdmi-connector"; > > + type = "a"; > > + > > + port { > > + hdmi_con: endpoint { > > + remote-endpoint = <<9611_out>; > > + }; > > + }; > > + }; > > + > > vph_pwr: vph-pwr-regulator { > > compatible = "regulator-fixed"; > > regulator-name = "vph_pwr"; > > @@ -29,6 +40,32 @@ vph_pwr: vph-pwr-regulator { > > regulator-always-on; > > regulator-boot-on; > > }; > > + > > + lt9611_1v2: lt9611-1v2 { > > + compatible = "regulator-fixed"; > > + regulator-name = "LT9611_1V2"; > > + > > + vin-supply = <&vph_pwr>; > > + regulator-min-microvolt = <1200000>; > > + regulator-max-microvolt = <1200000>; > > + gpio = <&tlmm 49 GPIO_ACTIVE_HIGH>; > > + enable-active-high; > > + regulator-boot-on; > > + regulator-always-on; > > Why is this always-on? It shouldn't be. Removing this in v2. > > > + }; > > + > > + lt9611_3v3: lt9611-3v3 { > > + compatible = "regulator-fixed"; > > + regulator-name = "LT9611_3V3"; > > + > > + vin-supply = <&vreg_bob>; > > + gpio = <&tlmm 47 GPIO_ACTIVE_HIGH>; > > + regulator-min-microvolt = <3300000>; > > + regulator-max-microvolt = <3300000>; > > + enable-active-high; > > + regulator-boot-on; > > + regulator-always-on; > > + }; > > }; > > > > &adsp { > > @@ -220,6 +257,15 @@ &dispcc { > > &dsi0 { > > status = "okay"; > > vdda-supply = <&vreg_l6b_1p2>; > > + > > + ports { > > + port@1 { > > + endpoint { > > + remote-endpoint = <<9611_a>; > > + data-lanes = <0 1 2 3>; > > + }; > > + }; > > + }; > > }; > > > > &dsi0_phy { > > @@ -231,6 +277,48 @@ &gpi_dma1 { > > status = "okay"; > > }; > > > > +&i2c15 { > > + status = "okay"; > > Please keep status last. (Yes I see that it goes against the convention > in this file, so let's update that at some point as well) Ack. > > > + clock-frequency = <400000>; > > + > > + lt9611_codec: hdmi-bridge@2b { > > + compatible = "lontium,lt9611uxc"; > > + reg = <0x2b>; > > + status = "okay"; > > This is the default, you can omit it. Ack. > > > + > > + interrupts-extended = <&tlmm 50 IRQ_TYPE_EDGE_FALLING>; > > + reset-gpios = <&tlmm 48 GPIO_ACTIVE_HIGH>; > > + > > + vdd-supply = <<9611_1v2>; > > + vcc-supply = <<9611_3v3>; > > + > > + pinctrl-names = "default"; > > + pinctrl-0 = <<9611_irq_pin <9611_rst_pin>; > > + > > + ports { > > + #address-cells = <1>; > > + #size-cells = <0>; > > + > > + port@0 { > > + reg = <0>; > > + > > + lt9611_a: endpoint { > > + remote-endpoint = <&dsi0_out>; > > + }; > > + }; > > + > > + port@2 { > > + reg = <2>; > > + > > + lt9611_out: endpoint { > > + remote-endpoint = <&hdmi_con>; > > + }; > > + }; > > + > > + }; > > + }; > > +}; > > + > > &mdss { > > status = "okay"; > > }; > > @@ -248,6 +336,10 @@ &qupv3_id_0 { > > status = "okay"; > > }; > > > > +&qupv3_id_2 { > > + status = "okay"; > > +}; > > + > > &slpi { > > status = "okay"; > > firmware-name = "qcom/sm8350/slpi.mbn"; > > @@ -544,4 +636,18 @@ usb_hub_enabled_state: usb-hub-enabled-state { > > drive-strength = <2>; > > output-low; > > }; > > + > > + lt9611_rst_pin: lt9611-rst-state { > > + pins = "gpio48"; > > + function = "normal"; > > + > > + output-high; > > + input-disable; > > + }; > > + > > + lt9611_irq_pin: lt9611-irq { > > pinctrl state nodes should be suffixed with "-state". > > And you can lump the two pins into a single -state, with rst-pins and > irq-pins as subnodes, defining the two pins. > > Regards, > Bjorn > > > + pins = "gpio50"; > > + function = "gpio"; > > + bias-disable; > > + }; > > }; > > -- > > 2.34.1 > >
On Sat, 29 Oct 2022 at 00:06, Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> wrote: > > On 28/10/2022 08:08, Robert Foss wrote: > > The sm8350-hdk ships with the LT9611 UXC DSI/HDMI bridge chip. > > > > In order to toggle the board to enable the HDMI output, > > switch #7 & #8 on the rightmost multi-switch package have > > to be toggled to On. > > > > Signed-off-by: Robert Foss <robert.foss@linaro.org> > > --- > > arch/arm64/boot/dts/qcom/sm8350-hdk.dts | 106 ++++++++++++++++++++++++ > > 1 file changed, 106 insertions(+) > > > > diff --git a/arch/arm64/boot/dts/qcom/sm8350-hdk.dts b/arch/arm64/boot/dts/qcom/sm8350-hdk.dts > > index 6e07feb4b3b2..6666b38b58f8 100644 > > --- a/arch/arm64/boot/dts/qcom/sm8350-hdk.dts > > +++ b/arch/arm64/boot/dts/qcom/sm8350-hdk.dts > > @@ -20,6 +20,17 @@ chosen { > > stdout-path = "serial0:115200n8"; > > }; > > > > + hdmi-out { > > Generic node names, so hdmi-connector or just connector. Ack. > > > + compatible = "hdmi-connector"; > > + type = "a"; > > + > > + port { > > + hdmi_con: endpoint { > > + remote-endpoint = <<9611_out>; > > + }; > > + }; > > + }; > > + > > vph_pwr: vph-pwr-regulator { > > compatible = "regulator-fixed"; > > regulator-name = "vph_pwr"; > > @@ -29,6 +40,32 @@ vph_pwr: vph-pwr-regulator { > > regulator-always-on; > > regulator-boot-on; > > }; > > + > > + lt9611_1v2: lt9611-1v2 { > > Node names should be generic. > https://devicetree-specification.readthedocs.io/en/latest/chapter2-devicetree-basics.html#generic-names-recommendation Ack. > > > + compatible = "regulator-fixed"; > > + regulator-name = "LT9611_1V2"; > > + > > + vin-supply = <&vph_pwr>; > > + regulator-min-microvolt = <1200000>; > > + regulator-max-microvolt = <1200000>; > > + gpio = <&tlmm 49 GPIO_ACTIVE_HIGH>; > > + enable-active-high; > > + regulator-boot-on; > > + regulator-always-on; > > + }; > > + > > + lt9611_3v3: lt9611-3v3 { > > Ditto Ack. > > > > + compatible = "regulator-fixed"; > > + regulator-name = "LT9611_3V3"; > > + > > + vin-supply = <&vreg_bob>; > > + gpio = <&tlmm 47 GPIO_ACTIVE_HIGH>; > > + regulator-min-microvolt = <3300000>; > > + regulator-max-microvolt = <3300000>; > > + enable-active-high; > > + regulator-boot-on; > > + regulator-always-on; > > + }; > > }; > > > > &adsp { > > @@ -220,6 +257,15 @@ &dispcc { > > &dsi0 { > > status = "okay"; > > vdda-supply = <&vreg_l6b_1p2>; > > + > > + ports { > > + port@1 { > > + endpoint { > > + remote-endpoint = <<9611_a>; > > + data-lanes = <0 1 2 3>; > > + }; > > + }; > > + }; > > }; > > > > &dsi0_phy { > > @@ -231,6 +277,48 @@ &gpi_dma1 { > > status = "okay"; > > }; > > > > +&i2c15 { > > + status = "okay"; > > status is the last property Ack. > > > + clock-frequency = <400000>; > > + > > + lt9611_codec: hdmi-bridge@2b { > > + compatible = "lontium,lt9611uxc"; > > + reg = <0x2b>; > > + status = "okay"; > > Why status? It should be removed. Fixing in v2. > > > + > > + interrupts-extended = <&tlmm 50 IRQ_TYPE_EDGE_FALLING>; > > + reset-gpios = <&tlmm 48 GPIO_ACTIVE_HIGH>; > > + > > + vdd-supply = <<9611_1v2>; > > + vcc-supply = <<9611_3v3>; > > + > > + pinctrl-names = "default"; > > + pinctrl-0 = <<9611_irq_pin <9611_rst_pin>; > > + > > + ports { > > + #address-cells = <1>; > > + #size-cells = <0>; > > + > > + port@0 { > > + reg = <0>; > > + > > + lt9611_a: endpoint { > > + remote-endpoint = <&dsi0_out>; > > + }; > > + }; > > + > > + port@2 { > > + reg = <2>; > > + > > + lt9611_out: endpoint { > > + remote-endpoint = <&hdmi_con>; > > + }; > > + }; > > + > > No need for blank line Ack > > > + }; > > + }; > > +}; > > + > > &mdss { > > status = "okay"; > > }; > > @@ -248,6 +336,10 @@ &qupv3_id_0 { > > status = "okay"; > > }; > > > > +&qupv3_id_2 { > > + status = "okay"; > > +}; > > + > > &slpi { > > status = "okay"; > > firmware-name = "qcom/sm8350/slpi.mbn"; > > @@ -544,4 +636,18 @@ usb_hub_enabled_state: usb-hub-enabled-state { > > drive-strength = <2>; > > output-low; > > }; > > + > > + lt9611_rst_pin: lt9611-rst-state { > > + pins = "gpio48"; > > + function = "normal"; > > + > > + output-high; > > + input-disable; > > + }; > > + > > + lt9611_irq_pin: lt9611-irq { > > Missing suffix 'state'. Ack. > > Does not look like you tested the DTS against bindings. Please run `make > dtbs_check` (see Documentation/devicetree/bindings/writing-schema.rst > for instructions). v1 was missing the bindings, v2 will include bindings for there parts. > > Rebase your changes on last linux-next. Ack. > > Best regards, > Krzysztof >
diff --git a/arch/arm64/boot/dts/qcom/sm8350-hdk.dts b/arch/arm64/boot/dts/qcom/sm8350-hdk.dts index 6e07feb4b3b2..6666b38b58f8 100644 --- a/arch/arm64/boot/dts/qcom/sm8350-hdk.dts +++ b/arch/arm64/boot/dts/qcom/sm8350-hdk.dts @@ -20,6 +20,17 @@ chosen { stdout-path = "serial0:115200n8"; }; + hdmi-out { + compatible = "hdmi-connector"; + type = "a"; + + port { + hdmi_con: endpoint { + remote-endpoint = <<9611_out>; + }; + }; + }; + vph_pwr: vph-pwr-regulator { compatible = "regulator-fixed"; regulator-name = "vph_pwr"; @@ -29,6 +40,32 @@ vph_pwr: vph-pwr-regulator { regulator-always-on; regulator-boot-on; }; + + lt9611_1v2: lt9611-1v2 { + compatible = "regulator-fixed"; + regulator-name = "LT9611_1V2"; + + vin-supply = <&vph_pwr>; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + gpio = <&tlmm 49 GPIO_ACTIVE_HIGH>; + enable-active-high; + regulator-boot-on; + regulator-always-on; + }; + + lt9611_3v3: lt9611-3v3 { + compatible = "regulator-fixed"; + regulator-name = "LT9611_3V3"; + + vin-supply = <&vreg_bob>; + gpio = <&tlmm 47 GPIO_ACTIVE_HIGH>; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + enable-active-high; + regulator-boot-on; + regulator-always-on; + }; }; &adsp { @@ -220,6 +257,15 @@ &dispcc { &dsi0 { status = "okay"; vdda-supply = <&vreg_l6b_1p2>; + + ports { + port@1 { + endpoint { + remote-endpoint = <<9611_a>; + data-lanes = <0 1 2 3>; + }; + }; + }; }; &dsi0_phy { @@ -231,6 +277,48 @@ &gpi_dma1 { status = "okay"; }; +&i2c15 { + status = "okay"; + clock-frequency = <400000>; + + lt9611_codec: hdmi-bridge@2b { + compatible = "lontium,lt9611uxc"; + reg = <0x2b>; + status = "okay"; + + interrupts-extended = <&tlmm 50 IRQ_TYPE_EDGE_FALLING>; + reset-gpios = <&tlmm 48 GPIO_ACTIVE_HIGH>; + + vdd-supply = <<9611_1v2>; + vcc-supply = <<9611_3v3>; + + pinctrl-names = "default"; + pinctrl-0 = <<9611_irq_pin <9611_rst_pin>; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + + lt9611_a: endpoint { + remote-endpoint = <&dsi0_out>; + }; + }; + + port@2 { + reg = <2>; + + lt9611_out: endpoint { + remote-endpoint = <&hdmi_con>; + }; + }; + + }; + }; +}; + &mdss { status = "okay"; }; @@ -248,6 +336,10 @@ &qupv3_id_0 { status = "okay"; }; +&qupv3_id_2 { + status = "okay"; +}; + &slpi { status = "okay"; firmware-name = "qcom/sm8350/slpi.mbn"; @@ -544,4 +636,18 @@ usb_hub_enabled_state: usb-hub-enabled-state { drive-strength = <2>; output-low; }; + + lt9611_rst_pin: lt9611-rst-state { + pins = "gpio48"; + function = "normal"; + + output-high; + input-disable; + }; + + lt9611_irq_pin: lt9611-irq { + pins = "gpio50"; + function = "gpio"; + bias-disable; + }; };