Re: [PATCH v6] arch: arm64: dts: sm8650-hdk: add support for the Display Card overlay

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Jun 06, 2024 at 02:50:22PM GMT, Neil Armstrong wrote:
> With the SM8650-HDK, a Display Card kit can be connected to provide
> a VTDR6130 display with Goodix Berlin Touch controller.
> 
> In order to route the DSI lanes to the connector for the Display
> Card kit, a switch must be changed on the board.
> 
> The HDMI nodes are disabled since the DSI lanes are shared with
> the DSI to HDMI transceiver.
> 
> Add support for this card as an overlay and apply it it at
> build-time to the sm8650-hdk dtb.
> 
> Reviewed-by: Vladimir Zapolskiy <vladimir.zapolskiy@xxxxxxxxxx>
> Tested-by: Vladimir Zapolskiy <vladimir.zapolskiy@xxxxxxxxxx>
> Reviewed-by: Konrad Dybcio <konrad.dybcio@xxxxxxxxxx>
> Signed-off-by: Neil Armstrong <neil.armstrong@xxxxxxxxxx>

Please double check your subject prefix to match other similar files in
the future.

Thanks,
Bjorn

> ---
> The SM8650-HDK is an embedded development platforms for the
> Snapdragon 8 Gen 3 SoC aka SM8650, with the following features:
> - Qualcomm SM8650 SoC
> - 16GiB On-board LPDDR5
> - On-board WiFi 7 + Bluetooth 5.3/BLE
> - On-board UFS4.0
> - M.2 Key B+M Gen3x2 PCIe Slot
> - HDMI Output
> - USB-C Connector with DP Almode & Audio Accessory mode
> - Micro-SDCard Slot
> - Audio Jack with Playback and Microphone
> - 2 On-board Analog microphones
> - 2 On-board Speakers
> - 96Boards Compatible Low-Speed and High-Speed connectors [1]
> - For Camera, Sensors and external Display cards
> - Compatible with the Linaro Debug board [2]
> - SIM Slot for Modem
> - Debug connectors
> - 6x On-Board LEDs
> 
> An optional Display Card kit can be connected on top,
> an overlay is handled to add support for the DSI Display
> and Touch Controller.
> 
> Product Page: [3]
> 
> Dependencies: None
> 
> [1] https://www.96boards.org/specifications/
> [2] https://git.codelinaro.org/linaro/qcomlt/debugboard
> [3] https://www.lantronix.com/products/snapdragon-8-gen-3-mobile-hardware-development-kit/
> 
> To: Bjorn Andersson <andersson@xxxxxxxxxx>
> To: Konrad Dybcio <konrad.dybcio@xxxxxxxxxx>
> To: Rob Herring <robh@xxxxxxxxxx>
> To: Krzysztof Kozlowski <krzk+dt@xxxxxxxxxx>
> To: Conor Dooley <conor+dt@xxxxxxxxxx>
> Cc: linux-arm-msm@xxxxxxxxxxxxxxx
> Cc: devicetree@xxxxxxxxxxxxxxx
> Cc: linux-kernel@xxxxxxxxxxxxxxx
> Signed-off-by: Neil Armstrong <neil.armstrong@xxxxxxxxxx>
> 
> Changes in v6:
> - added comment explaining why we disable nodes
> - removed useles comment on why we add the port/endpoint/address/size-cells
> - added Konrad's review
> - Link to v5: https://lore.kernel.org/r/20240606-topic-sm8650-upstream-hdk-v5-1-5d878f3047e3@xxxxxxxxxx
> 
> Changes in v5:
> - Resend the display card overlay now the I2C crash is fixed
> - Link to v4: https://lore.kernel.org/r/20240422-topic-sm8650-upstream-hdk-v4-0-b33993eaa2e8@xxxxxxxxxx
> 
> Changes in v4:
> - Rebased on next and fixed the apply failures
> - Link to v3: https://lore.kernel.org/r/20240325-topic-sm8650-upstream-hdk-v3-0-4f365d7932af@xxxxxxxxxx
> 
> Changes in v3:
> - fixed regulator node name to fix ordering
> - deleted pcie_1_phy_aux clock
> - removed undeeded mdss_mdp status okay
> - collected revied & tested tags
> - Link to v2: https://lore.kernel.org/r/20240318-topic-sm8650-upstream-hdk-v2-0-b63a5d45a784@xxxxxxxxxx
> 
> Changes in v2:
> - Fixed commit messages with links, and recently added product page URL
> - Swapped i2c3/i2c6 nodes
> - Moved pcie_1_phy_aux_clk under pcie1_phy
> - Removed duplicate mdp_vsync pinctrl state
> - Collected review & tested tags
> - Link to v1: https://lore.kernel.org/r/20240223-topic-sm8650-upstream-hdk-v1-0-ccca645cd901@xxxxxxxxxx
> ---
>  arch/arm64/boot/dts/qcom/Makefile                  |   4 +
>  .../boot/dts/qcom/sm8650-hdk-display-card.dtso     | 141 +++++++++++++++++++++
>  2 files changed, 145 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
> index 56992fc3fc59..0c1cebd16649 100644
> --- a/arch/arm64/boot/dts/qcom/Makefile
> +++ b/arch/arm64/boot/dts/qcom/Makefile
> @@ -250,6 +250,10 @@ dtb-$(CONFIG_ARCH_QCOM)	+= sm8550-mtp.dtb
>  dtb-$(CONFIG_ARCH_QCOM)	+= sm8550-qrd.dtb
>  dtb-$(CONFIG_ARCH_QCOM)	+= sm8550-samsung-q5q.dtb
>  dtb-$(CONFIG_ARCH_QCOM)	+= sm8550-sony-xperia-yodo-pdx234.dtb
> +
> +sm8650-hdk-display-card-dtbs	:= sm8650-hdk.dtb sm8650-hdk-display-card.dtbo
> +
> +dtb-$(CONFIG_ARCH_QCOM)	+= sm8650-hdk-display-card.dtb
>  dtb-$(CONFIG_ARCH_QCOM)	+= sm8650-hdk.dtb
>  dtb-$(CONFIG_ARCH_QCOM)	+= sm8650-mtp.dtb
>  dtb-$(CONFIG_ARCH_QCOM)	+= sm8650-qrd.dtb
> diff --git a/arch/arm64/boot/dts/qcom/sm8650-hdk-display-card.dtso b/arch/arm64/boot/dts/qcom/sm8650-hdk-display-card.dtso
> new file mode 100644
> index 000000000000..cb102535838d
> --- /dev/null
> +++ b/arch/arm64/boot/dts/qcom/sm8650-hdk-display-card.dtso
> @@ -0,0 +1,141 @@
> +// SPDX-License-Identifier: BSD-3-Clause
> +/*
> + * Copyright (c) 2024, Linaro Limited
> + */
> +
> +/*
> + * Display Card kit overlay
> + * This requires S5702 Switch 7 to be turned to OFF to route DSI0 to the display panel
> + */
> +
> +#include <dt-bindings/gpio/gpio.h>
> +#include <dt-bindings/interrupt-controller/irq.h>
> +
> +/dts-v1/;
> +/plugin/;
> +
> +/* Disable HDMI bridge related nodes (mutually exclusive with the display card) */
> +
> +&i2c6 {
> +	status = "disabled";
> +};
> +
> +&lt9611_1v2 {
> +	status = "disabled";
> +};
> +
> +&lt9611_3v3 {
> +	status = "disabled";
> +};
> +
> +&vreg_bob_3v3 {
> +	status = "disabled";
> +};
> +
> +&lt9611_codec {
> +	status = "disabled";
> +};
> +
> +&mdss_dsi0 {
> +	#address-cells = <1>;
> +	#size-cells = <0>;
> +
> +	panel@0 {
> +		compatible = "visionox,vtdr6130";
> +		reg = <0>;
> +
> +		reset-gpios = <&tlmm 133 GPIO_ACTIVE_LOW>;
> +
> +		vddio-supply = <&vreg_l12b_1p8>;
> +		vci-supply = <&vreg_l13b_3p0>;
> +		vdd-supply = <&vreg_l11b_1p2>;
> +
> +		pinctrl-0 = <&disp0_reset_n_active>, <&mdp_vsync>;
> +		pinctrl-1 = <&disp0_reset_n_suspend>, <&mdp_vsync>;
> +		pinctrl-names = "default", "sleep";
> +
> +		port {
> +			panel0_in: endpoint {
> +				remote-endpoint = <&mdss_dsi0_out>;
> +			};
> +		};
> +	};
> +
> +	ports {
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +
> +		port@1 {
> +			reg = <1>;
> +
> +			mdss_dsi0_out: endpoint {
> +				remote-endpoint = <&panel0_in>;
> +			};
> +		};
> +	};
> +};
> +
> +&spi4 {
> +	#address-cells = <1>;
> +	#size-cells = <0>;
> +
> +	status = "okay";
> +
> +	touchscreen@0 {
> +		compatible = "goodix,gt9916";
> +		reg = <0>;
> +
> +		interrupt-parent = <&tlmm>;
> +		interrupts = <162 IRQ_TYPE_LEVEL_LOW>;
> +
> +		reset-gpios = <&tlmm 161 GPIO_ACTIVE_LOW>;
> +
> +		avdd-supply = <&vreg_l14b_3p2>;
> +
> +		spi-max-frequency = <1000000>;
> +
> +		touchscreen-size-x = <1080>;
> +		touchscreen-size-y = <2400>;
> +
> +		pinctrl-0 = <&ts_irq>, <&ts_reset>;
> +		pinctrl-names = "default";
> +	};
> +};
> +
> +&tlmm {
> +	disp0_reset_n_active: disp0-reset-n-active-state {
> +		pins = "gpio133";
> +		function = "gpio";
> +		drive-strength = <8>;
> +		bias-disable;
> +	};
> +
> +	disp0_reset_n_suspend: disp0-reset-n-suspend-state {
> +		pins = "gpio133";
> +		function = "gpio";
> +		drive-strength = <2>;
> +		bias-pull-down;
> +	};
> +
> +	mdp_vsync: mdp-vsync-state {
> +		pins = "gpio86";
> +		function = "mdp_vsync";
> +		drive-strength = <2>;
> +		bias-pull-down;
> +	};
> +
> +	ts_irq: ts-irq-state {
> +		pins = "gpio161";
> +		function = "gpio";
> +		drive-strength = <8>;
> +		bias-pull-up;
> +		output-disable;
> +	};
> +
> +	ts_reset: ts-reset-state {
> +		pins = "gpio162";
> +		function = "gpio";
> +		drive-strength = <8>;
> +		bias-pull-up;
> +	};
> +};
> 
> ---
> base-commit: 234cb065ad82915ff8d06ce01e01c3e640b674d2
> change-id: 20240223-topic-sm8650-upstream-hdk-e21cfd6f1de8
> 
> Best regards,
> -- 
> Neil Armstrong <neil.armstrong@xxxxxxxxxx>
> 
> 




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [Linux for Sparc]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux