Message ID | 20221028120812.339100-10-robert.foss@linaro.org |
---|---|
State | Superseded |
Headers | show |
Series | Enable Display for SM8350 | expand |
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 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; + }; };
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(+)