Add Qualcomm Technologies, Inc. Talos EVK SMARC support
Subsystems (6)
v10 cover Add Qualcomm Technologies, Inc. Talos EVK SMARC support
Hi all,
This patch series adds device tree binding and board support for the Qualcomm Technologies, Inc. Talos EVK SMARC platform based on the QCS615 SoC.
The first patch introduces the DT binding entry for the Talos EVK SMARC board, and the second patch adds the corresponding DTS files for the platform.
Note:USB(usb_1_dwc3) supports host-only mode based on the switch SW1 on the SoM, which is purely a hardware controlled as USB-ID and USB-VBUS is not connected the switching cannot be handled from SW. Hence from SW Host-only mode is supported on Linux boot up.
Changes in v10:
- This series extends the gpio-backlight driver and its DT bindings to support multiple control GPIOs. (suggested by Dmitry)
- Addressed DT node labeling feedback.
- Polished overall device tree structure and minor formattings.
- Corrected pinctrl configuration for the active-low PERST# pin.
- Includes a fix for inconsistent USB PHY node naming in talos.dtsi. (suggested by Dmitry)
- Enabled WiFi and Bluetooth functionality.
- Updated commit message.
- No functional change in bindings file.
Changes in v9:
- The updates in the following patch url is taken care in this patch series.
https://lists.freedesktop.org/archives/dri-devel/2025-November/534473.html
- Ignore v8 patch
Changes in v8:
- This patch series depends on the below url
https://lists.freedesktop.org/archives/dri-devel/2025-November/534473.html
- Moved the contents of talos-evk-cb.dtsi to talos-evk.dtsi which will describe all the standard configuration of the EVK.
- Introduced 'talos-evk-lvds-auo,g133han01.dtso' which has overlay to disable HDMI and adds the LVDS-related on top of the base dts file. (suggested by Bjorn)
- Ethernet and Wi-Fi/BT are not (yet) supported.
- Updated commit message.
- No functional change in bindings file.
Changes in v7:
- Added i2c clock frequency for i2c5 node.
- Moved adv7535 controller section to talos-evk.dts file.
- Reorder the usb nodes.
- GPI_DMA nodes added in the device tree files.
- No functional change in bindings file.
Changes in v6:
- Clarified description of talos-evk-cb.dtsi to explain that it defines common carrier board interfaces shared between HDMI and LVDS variants, And It’s a single carrier board. HDMI and LVDS share the same DSI interface, and only one can be active at a time depending on a DIP switch.
- Added missing newlines before 'status' and between the last property and subnode (suggested by Konrad).
- Updated commit messages for clarity.
Changes in v5:
- Updated commit message. (suggested by Krzysztof)
- Introduced generic node name for can, dp, hdmi-bridge. (suggested by Krzysztof)
- Introduced talos-evk-cb.dtsi, which has common carrier board interfaces.
- No functional change in bindings file.
Changes in v4:
- Updated product name to full form per Krzysztof’s feedback in dt-binding comment.
- Hook up the ADV7535 DSI-to-HDMI bridge to base DTS file.
- Add DP connector node and MDSS DisplayPort controller.
- Added USB note in the cover letter for maintainers' awareness.
Changes in v3:
- Addressed comments from Dmitry regarding USB1 dr_mode and added a DTS comment.
- No functional change in bindings file.
Changes in v2:
- Renamed compatible to "qcom,talos-evk" (suggested by Dmitry/Bjorn)
- Merged enum entry with existing qcs615-ride block (Krzysztof)
- Fixed subject and commit message to use imperative mood.
Thanks,
Anusha
Sudarshan Shetty (5):
dt-bindings: arm: qcom: talos-evk: Add QCS615 Talos EVK SMARC platform
dt-bindings: backlight: gpio-backlight: allow multiple GPIOs
backlight: gpio: add support for multiple GPIOs for backlight control
arm64: dts: qcom: talos: Fix inconsistent USB PHY node naming
arm64: dts: qcom: talos-evk: Add support for QCS615 talos evk board
.../devicetree/bindings/arm/qcom.yaml | 1 + .../leds/backlight/gpio-backlight.yaml | 12 +- arch/arm64/boot/dts/qcom/Makefile | 4 + .../qcom/talos-evk-lvds-auo,g133han01.dtso | 126 ++++ arch/arm64/boot/dts/qcom/talos-evk-som.dtsi | 598 ++++++++++++++++++ arch/arm64/boot/dts/qcom/talos-evk.dts | 139 ++++ arch/arm64/boot/dts/qcom/talos.dtsi | 4 +- drivers/video/backlight/gpio_backlight.c | 61 +- 8 files changed, 926 insertions(+), 19 deletions(-) create mode 100644 arch/arm64/boot/dts/qcom/talos-evk-lvds-auo,g133han01.dtso create mode 100644 arch/arm64/boot/dts/qcom/talos-evk-som.dtsi create mode 100644 arch/arm64/boot/dts/qcom/talos-evk.dts
Signature · 1 line
2.34.1
PATCH v10 1/5 dt-bindings: arm: qcom: talos-evk: Add QCS615 Talos EVK SMARC platform
Add binding support for the Qualcomm Technologies, Inc. Talos EVK SMARC platform based on the QCS615 SoC.
--- Documentation/devicetree/bindings/arm/qcom.yaml | 1 + 1 file changed, 1 insertion(+)
Documentation/devicetree/bindings/arm/qcom.yaml +1 -0
@@ -876,6 +876,7 @@ properties: - items: - enum: - qcom,qcs615-ride + - qcom,talos-evk - const: qcom,qcs615 - const: qcom,sm6150
Signature · 1 line
2.34.1
Re: [PATCH v10 1/5] dt-bindings: arm: qcom: talos-evk: Add QCS615 Talos EVK SMARC platform
Quoted 5 lines · Sudarshan Shetty
Add binding support for the Qualcomm Technologies, Inc. Talos EVK SMARC platform based on the QCS615 SoC.
Signed-off-by Sudarshan Shetty <[email protected]>---
Why did you decide to drop the tag and where did you explain that?
<form letter>
This is a friendly reminder during the review process.
It looks like you received a tag and forgot to add it.
If you do not know the process, here is a short explanation:
Please add Acked-by/Reviewed-by/Tested-by tags when posting new versions of patchset, under or above your Signed-off-by tag, unless patch changed significantly (e.g. new properties added to the DT bindings). Tag is "received", when provided in a message replied to you on the mailing list. Tools like b4 can help here. However, there's no need to repost patches *only* to add the tags. The upstream maintainer will do that for tags received on the version they apply.
Please read:
https://elixir.bootlin.com/linux/v6.12-rc3/source/Documentation/process/submitting-patches.rst#L577
If a tag was not added on purpose, please state why and what changed. </form letter>
Best regards,
Krzysztof
Re: [PATCH v10 1/5] dt-bindings: arm: qcom: talos-evk: Add QCS615 Talos EVK SMARC platform
Quoted 24 lines · Krzysztof Kozlowski
Quoted 5 lines · Sudarshan Shetty
Add binding support for the Qualcomm Technologies, Inc. Talos EVK SMARC platform based on the QCS615 SoC.
Signed-off-by Sudarshan Shetty <[email protected]>---
Why did you decide to drop the tag and where did you explain that?
<form letter>
This is a friendly reminder during the review process.It looks like you received a tag and forgot to add it.
If you do not know the process, here is a short explanation:
Please add Acked-by/Reviewed-by/Tested-by tags when posting new versions of patchset, under or above your Signed-off-by tag, unless patch changed significantly (e.g. new properties added to the DT bindings). Tag is "received", when provided in a message replied to you on the mailing list. Tools like b4 can help here. However, there's no need to repost patches *only* to add the tags. The upstream maintainer will do that for tags received on the version they apply.
Quoted 6 lines
Please read:
https://elixir.bootlin.com/linux/v6.12-rc3/source/Documentation/process/submitting-patches.rst#L577If a tag was not added on purpose, please state why and what changed. </form letter>
I apologize for missing the Acked-by tag in this version. I will make sure to include all received tags in the next patch as per the submission guidelines.
Quoted 2 lines
Best regards,
Krzysztof
Re: [PATCH v10 1/5] dt-bindings: arm: qcom: talos-evk: Add QCS615 Talos EVK SMARC platform
Quoted 27 lines · On 04/01/2026 14:11, [email protected] wrote:
Quoted 24 lines · Krzysztof Kozlowski
Quoted 5 lines · Sudarshan Shetty
Add binding support for the Qualcomm Technologies, Inc. Talos EVK SMARC platform based on the QCS615 SoC.
Signed-off-by Sudarshan Shetty <[email protected]>---
Why did you decide to drop the tag and where did you explain that?
<form letter>
This is a friendly reminder during the review process.It looks like you received a tag and forgot to add it.
If you do not know the process, here is a short explanation:
Please add Acked-by/Reviewed-by/Tested-by tags when posting new versions of patchset, under or above your Signed-off-by tag, unless patch changed significantly (e.g. new properties added to the DT bindings). Tag is "received", when provided in a message replied to you on the mailing list. Tools like b4 can help here. However, there's no need to repost patches *only* to add the tags. The upstream maintainer will do that for tags received on the version they apply.
Quoted 8 lines
Quoted 6 lines
Please read:
https://elixir.bootlin.com/linux/v6.12-rc3/source/Documentation/process/submitting-patches.rst#L577If a tag was not added on purpose, please state why and what changed. </form letter>
I apologize for missing the Acked-by tag in this version.
How missing? It WAS THERE ALREADY!
You had to explicitly remove it.
Quoted 2 lines
I will make sure to include all received tags in the next patch as per the submission guidelines.
Best regards,
Krzysztof
Re: [PATCH v10 1/5] dt-bindings: arm: qcom: talos-evk: Add QCS615 Talos EVK SMARC platform
Quoted 35 lines · Krzysztof Kozlowski
Quoted 34 lines · On 04/01/2026 14:11, [email protected] wrote:
Quoted 30 lines · Krzysztof Kozlowski
Quoted 5 lines · Sudarshan Shetty
Add binding support for the Qualcomm Technologies, Inc. Talos EVK SMARC platform based on the QCS615 SoC.
Signed-off-by Sudarshan Shetty <[email protected]>---
Why did you decide to drop the tag and where did you explain that?
<form letter>
This is a friendly reminder during the review process.It looks like you received a tag and forgot to add it.
If you do not know the process, here is a short explanation:
Please add Acked-by/Reviewed-by/Tested-by tags when posting new versions of patchset, under or above your Signed-off-by tag, unless patch changed significantly (e.g. new properties added to the DT bindings). Tag is "received", when provided in a message replied to you on the mailing list. Tools like b4 can help here. However, there's no need to repost patches *only* to add the tags. The upstream maintainer will do that for tags received on the version they apply.Please read:
https://elixir.bootlin.com/linux/v6.12-rc3/source/Documentation/process/submitting-patches.rst#L577If a tag was not added on purpose, please state why and what changed. </form letter>
Quoted 5 lines
Quoted 1 line
I apologize for missing the Acked-by tag in this version.
How missing? It WAS THERE ALREADY!
You had to explicitly remove it.
While updating the linux-next kernel source and reapplying the changes, the Acked-by tag was inadvertently omitted. I’ll ensure that all previously received tags are retained in future revisions in accordance with the submission guidelines. My apologies for the oversight.
Quoted 6 lines
Quoted 3 lines
I will make sure to include all received tags in the next patch as per the submission guidelines.
Best regards,
Krzysztof
Re: [PATCH v10 1/5] dt-bindings: arm: qcom: talos-evk: Add QCS615 Talos EVK SMARC platform
Quoted 5 lines · On 07/01/2026 07:58, [email protected] wrote:
Quoted 5 lines
Quoted 2 lines
I apologize for missing the Acked-by tag in this version.
How missing? It WAS THERE ALREADY!
Quoted 7 lines
Quoted 1 line
You had to explicitly remove it.
While updating the linux-next kernel source and reapplying the changes, the Acked-by tag was inadvertently omitted. I’ll ensure that all previously received tags are retained in future revisions in accordance with the submission guidelines. My apologies for the oversight.
That's not how you work with your own code. You rebase onto new next and then only update trailers with b4.
Best regards,
Krzysztof
Re: [PATCH v10 1/5] dt-bindings: arm: qcom: talos-evk: Add QCS615 Talos EVK SMARC platform
Quoted 15 lines · Krzysztof Kozlowski
Quoted 5 lines · On 07/01/2026 07:58, [email protected] wrote:
Quoted 5 lines
Quoted 2 lines
I apologize for missing the Acked-by tag in this version.
How missing? It WAS THERE ALREADY!
Quoted 7 lines
Quoted 1 line
You had to explicitly remove it.
While updating the linux-next kernel source and reapplying the changes, the Acked-by tag was inadvertently omitted. I’ll ensure that all previously received tags are retained in future revisions in accordance with the submission guidelines. My apologies for the oversight.
Quoted 2 lines
That's not how you work with your own code. You rebase onto new next and then only update trailers with b4.
JFYI Sudarshan, there is a neat oneliner to do this:
git rebase --onto linux-next/master $(git describe --abbrev=0)
where linux-next/master is the target commit/branch to rebase onto, and the second argument is the pointer to the start of the chunk you want to rebase
Konrad
Re: [PATCH v10 1/5] dt-bindings: arm: qcom: talos-evk: Add QCS615 Talos EVK SMARC platform
Quoted 6 lines · Konrad Dybcio
JFYI Sudarshan, there is a neat oneliner to do this:
git rebase --onto linux-next/master $(git describe --abbrev=0)
where linux-next/master is the target commit/branch to rebase onto, and the second argument is the pointer to the start of the chunk you want to rebase
Sure, got it. Thanks for sharing the tip!
PATCH v10 2/5 dt-bindings: backlight: gpio-backlight: allow multiple GPIOs
In reply to Sudarshan ShettyUpdate the gpio-backlight binding to support configurations that require more than one GPIO for enabling/disabling the backlight.
--- .../bindings/leds/backlight/gpio-backlight.yaml | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-)
Documentation/devicetree/bindings/leds/backlight/gpio-backlight.yaml +11 -1
@@ -17,7 +17,8 @@ properties: gpios: description: The gpio that is used for enabling/disabling the backlight. - maxItems: 1 + minItems: 1 + maxItems: 2 default-on: description: enable the backlight at boot.
@@ -38,4 +39,13 @@ examples: default-on; }; + - | + #include <dt-bindings/gpio/gpio.h> + backlight { + compatible = "gpio-backlight"; + gpios = <&gpio3 4 GPIO_ACTIVE_HIGH>, + <&gpio3 5 GPIO_ACTIVE_HIGH>; + default-on; + }; + ...
Signature · 1 line
2.34.1
Bjorn Andersson
maintainerRe: [PATCH v10 2/5] dt-bindings: backlight: gpio-backlight: allow multiple GPIOs
Quoted 3 lines · Sudarshan Shetty
Update the gpio-backlight binding to support configurations that require more than one GPIO for enabling/disabling the backlight.
As with the driver change, please provide a better description of what this means. How can there be multiple enable/disable GPIOs? What is actually controlled by your two GPIOs? Why is 2 the new maximum?
Regards,
Bjorn
Quoted 36 lines
Signed-off-by Sudarshan Shetty <[email protected]>--- .../bindings/leds/backlight/gpio-backlight.yaml | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-)Documentation/devicetree/bindings/leds/backlight/gpio-backlight.yaml +11
-1@@ -17,7 +17,8 @@ properties: gpios: description: The gpio that is used for enabling/disabling the backlight. - maxItems: 1 + minItems: 1 + maxItems: 2 default-on: description: enable the backlight at boot.@@ -38,4 +39,13 @@ examples: default-on; }; + - | + #include <dt-bindings/gpio/gpio.h> + backlight { + compatible = "gpio-backlight"; + gpios = <&gpio3 4 GPIO_ACTIVE_HIGH>, + <&gpio3 5 GPIO_ACTIVE_HIGH>; + default-on; + }; +Signature · 1 line
2.34.1
PATCH v10 3/5 backlight: gpio: add support for multiple GPIOs for backlight control
In reply to Sudarshan ShettyExtend the gpio-backlight driver to handle multiple GPIOs instead of a single one. This allows panels that require driving several enable pins to be controlled by the backlight framework.
--- drivers/video/backlight/gpio_backlight.c | 61 +++++++++++++++++------- 1 file changed, 45 insertions(+), 16 deletions(-)
drivers/video/backlight/gpio_backlight.c +45 -16
@@ -17,14 +17,18 @@struct gpio_backlight {struct device *dev; -struct gpio_desc *gpiod; +struct gpio_desc **gpiods; +unsigned int num_gpios; };static int gpio_backlight_update_status (struct backlight_device *bl) {struct gpio_backlight *gbl =bl_get_data (bl); +unsigned int i; +int br =backlight_get_brightness (bl); -gpiod_set_value_cansleep (gbl->gpiod,backlight_get_brightness (bl)); +for (i =0 ; i < gbl->num_gpios; i++) +gpiod_set_value_cansleep (gbl->gpiods[i], br);return 0 ; }
@@ -52,6 +56,7 @@ static int gpio_backlight_probe(struct platform_device *pdev)struct backlight_device *bl;struct gpio_backlight *gbl;int ret, init_brightness, def_value; +unsigned int i; gbl =devm_kzalloc (dev,sizeof (*gbl),GFP_KERNEL );if (gbl ==NULL )
@@ -62,10 +67,22 @@ static int gpio_backlight_probe(struct platform_device *pdev) def_value =device_property_read_bool (dev,"default-on" ); - gbl->gpiod =devm_gpiod_get (dev,NULL ,GPIOD_ASIS ); -if (IS_ERR (gbl->gpiod)) -return dev_err_probe (dev,PTR_ERR (gbl->gpiod), -"The gpios parameter is missing or invalid\n" ); + gbl->num_gpios =gpiod_count (dev,NULL ); +if (gbl->num_gpios ==0 ) +return dev_err_probe (dev, -EINVAL , +"The gpios parameter is missing or invalid\n" ); + gbl->gpiods =devm_kcalloc (dev, gbl->num_gpios,sizeof (*gbl->gpiods), +GFP_KERNEL ); +if (!gbl->gpiods) +return -ENOMEM ; + +for (i =0 ; i < gbl->num_gpios; i++) { + gbl->gpiods[i] = +devm_gpiod_get_index (dev,NULL , i,GPIOD_ASIS ); +if (IS_ERR (gbl->gpiods[i])) +return dev_err_probe (dev,PTR_ERR (gbl->gpiods[i]), +"Failed to get GPIO at index %u\n" , i); + }memset (&props,0 ,sizeof (props)); props.type =BACKLIGHT_RAW ;
@@ -78,22 +95,34 @@ static int gpio_backlight_probe(struct platform_device *pdev) }/* Set the initial power state */ -if (!of_node || !of_node->phandle) +if (!of_node || !of_node->phandle) {/* Not booted with device tree or no phandle link to the node */ bl->props.power = def_value ?BACKLIGHT_POWER_ON - :BACKLIGHT_POWER_OFF ; -else if (gpiod_get_value_cansleep (gbl->gpiod) ==0 ) - bl->props.power =BACKLIGHT_POWER_OFF ; -else - bl->props.power =BACKLIGHT_POWER_ON ; + :BACKLIGHT_POWER_OFF ; + }else { +bool all_high = true; + +for (i =0 ; i < gbl->num_gpios; i++) { +if (gpiod_get_value_cansleep (gbl->gpiods[i]) !=0 ) { + all_high = false; +break ; + } + } + + bl->props.power = + all_high ?BACKLIGHT_POWER_ON :BACKLIGHT_POWER_OFF ; + } bl->props.brightness =1 ; init_brightness =backlight_get_brightness (bl); - ret =gpiod_direction_output (gbl->gpiod, init_brightness); -if (ret) { -dev_err (dev,"failed to set initial brightness\n" ); -return ret; + +for (i =0 ; i < gbl->num_gpios; i++) { + ret =gpiod_direction_output (gbl->gpiods[i], init_brightness); +if (ret) +return dev_err_probe (dev, ret, +"failed to set gpio %u direction\n" , + i); }platform_set_drvdata (pdev, bl);
Signature · 1 line
2.34.1
Bjorn Andersson
maintainerRe: [PATCH v10 3/5] backlight: gpio: add support for multiple GPIOs for backlight control
Quoted 3 lines · Sudarshan Shetty
Extend the gpio-backlight driver to handle multiple GPIOs instead of a single one. This allows panels that require driving several enable pins to be controlled by the backlight framework.
Can you please elaborate on the problem described here. Preferrably in the form described in
https://docs.kernel.org/process/submitting-patches.html#describe-your-changes,
i.e. start with your problem description, then a description of your solution.
What does it mean for a backlight device to have multiple enable GPIOs?
PS. The associated binding patch needs to be merged before the DeviceTree (dts) changes can be merged, but it would be more efficient to upstream them separately - as each set of reviewers could focus on their part and you could update the patches based on the feedback from each part.
Regards,
Bjorn
Quoted 114 lines
Signed-off-by Sudarshan Shetty <[email protected]>--- drivers/video/backlight/gpio_backlight.c | 61 +++++++++++++++++------- 1 file changed, 45 insertions(+), 16 deletions(-)drivers/video/backlight/gpio_backlight.c +45
-16@@ -17,14 +17,18 @@struct gpio_backlight {struct device *dev; -struct gpio_desc *gpiod; +struct gpio_desc **gpiods; +unsigned int num_gpios; };static int gpio_backlight_update_status (struct backlight_device *bl) {struct gpio_backlight *gbl =bl_get_data (bl); +unsigned int i; +int br =backlight_get_brightness (bl); -gpiod_set_value_cansleep (gbl->gpiod,backlight_get_brightness (bl)); +for (i =0 ; i < gbl->num_gpios; i++) +gpiod_set_value_cansleep (gbl->gpiods[i], br);return 0 ; }@@ -52,6 +56,7 @@ static int gpio_backlight_probe(struct platform_device *pdev)struct backlight_device *bl;struct gpio_backlight *gbl;int ret, init_brightness, def_value; +unsigned int i; gbl =devm_kzalloc (dev,sizeof (*gbl),GFP_KERNEL );if (gbl ==NULL )@@ -62,10 +67,22 @@ static int gpio_backlight_probe(struct platform_device *pdev) def_value =device_property_read_bool (dev,"default-on" ); - gbl->gpiod =devm_gpiod_get (dev,NULL ,GPIOD_ASIS ); -if (IS_ERR (gbl->gpiod)) -return dev_err_probe (dev,PTR_ERR (gbl->gpiod), -"The gpios parameter is missing or invalid\n" ); + gbl->num_gpios =gpiod_count (dev,NULL ); +if (gbl->num_gpios ==0 ) +return dev_err_probe (dev, -EINVAL , +"The gpios parameter is missing or invalid\n" ); + gbl->gpiods =devm_kcalloc (dev, gbl->num_gpios,sizeof (*gbl->gpiods), +GFP_KERNEL ); +if (!gbl->gpiods) +return -ENOMEM ; + +for (i =0 ; i < gbl->num_gpios; i++) { + gbl->gpiods[i] = +devm_gpiod_get_index (dev,NULL , i,GPIOD_ASIS ); +if (IS_ERR (gbl->gpiods[i])) +return dev_err_probe (dev,PTR_ERR (gbl->gpiods[i]), +"Failed to get GPIO at index %u\n" , i); + }memset (&props,0 ,sizeof (props)); props.type =BACKLIGHT_RAW ;@@ -78,22 +95,34 @@ static int gpio_backlight_probe(struct platform_device *pdev) }/* Set the initial power state */ -if (!of_node || !of_node->phandle) +if (!of_node || !of_node->phandle) {/* Not booted with device tree or no phandle link to the node */ bl->props.power = def_value ?BACKLIGHT_POWER_ON - :BACKLIGHT_POWER_OFF ; -else if (gpiod_get_value_cansleep (gbl->gpiod) ==0 ) - bl->props.power =BACKLIGHT_POWER_OFF ; -else - bl->props.power =BACKLIGHT_POWER_ON ; + :BACKLIGHT_POWER_OFF ; + }else { +bool all_high = true; + +for (i =0 ; i < gbl->num_gpios; i++) { +if (gpiod_get_value_cansleep (gbl->gpiods[i]) !=0 ) { + all_high = false; +break ; + } + } + + bl->props.power = + all_high ?BACKLIGHT_POWER_ON :BACKLIGHT_POWER_OFF ; + } bl->props.brightness =1 ; init_brightness =backlight_get_brightness (bl); - ret =gpiod_direction_output (gbl->gpiod, init_brightness); -if (ret) { -dev_err (dev,"failed to set initial brightness\n" ); -return ret; + +for (i =0 ; i < gbl->num_gpios; i++) { + ret =gpiod_direction_output (gbl->gpiods[i], init_brightness); +if (ret) +return dev_err_probe (dev, ret, +"failed to set gpio %u direction\n" , + i); }platform_set_drvdata (pdev, bl);Signature · 1 line
2.34.1
Re: [PATCH v10 3/5] backlight: gpio: add support for multiple GPIOs for backlight control
Quoted 11 lines · Bjorn Andersson
Quoted 3 lines · Sudarshan Shetty
Extend the gpio-backlight driver to handle multiple GPIOs instead of a single one. This allows panels that require driving several enable pins to be controlled by the backlight framework.
Can you please elaborate on the problem described here. Preferrably in the form described in
https://docs.kernel.org/process/submitting-patches.html#describe-your-changes,
i.e. start with your problem description, then a description of your solution.
Quoted 9 lines
What does it mean for a backlight device to have multiple enable GPIOs?
PS. The associated binding patch needs to be merged before the DeviceTree (dts) changes can be merged, but it would be more efficient to upstream them separately - as each set of reviewers could focus on their part and you could update the patches based on the feedback from each part.
Initially, I had included the gpio-backlight driver and binding changes
together in the v10 patch series. Later I separated these
gpio-backlight changes and submitted them as individual patches to the respective maintainers.Here is the link to the updated patch series:
https://lore.kernel.org/all/[email protected]/T/#t
Quoted 117 lines
Regards,
BjornQuoted 114 lines
Signed-off-by Sudarshan Shetty <[email protected]>--- drivers/video/backlight/gpio_backlight.c | 61 +++++++++++++++++------- 1 file changed, 45 insertions(+), 16 deletions(-)drivers/video/backlight/gpio_backlight.c +45
-16@@ -17,14 +17,18 @@struct gpio_backlight {struct device *dev; -struct gpio_desc *gpiod; +struct gpio_desc **gpiods; +unsigned int num_gpios; };static int gpio_backlight_update_status (struct backlight_device *bl) {struct gpio_backlight *gbl =bl_get_data (bl); +unsigned int i; +int br =backlight_get_brightness (bl); -gpiod_set_value_cansleep (gbl->gpiod,backlight_get_brightness (bl)); +for (i =0 ; i < gbl->num_gpios; i++) +gpiod_set_value_cansleep (gbl->gpiods[i], br);return 0 ; }@@ -52,6 +56,7 @@ static int gpio_backlight_probe(struct platform_device *pdev)struct backlight_device *bl;struct gpio_backlight *gbl;int ret, init_brightness, def_value; +unsigned int i; gbl =devm_kzalloc (dev,sizeof (*gbl),GFP_KERNEL );if (gbl ==NULL )@@ -62,10 +67,22 @@ static int gpio_backlight_probe(struct platform_device *pdev) def_value =device_property_read_bool (dev,"default-on" ); - gbl->gpiod =devm_gpiod_get (dev,NULL ,GPIOD_ASIS ); -if (IS_ERR (gbl->gpiod)) -return dev_err_probe (dev,PTR_ERR (gbl->gpiod), -"The gpios parameter is missing or invalid\n" ); + gbl->num_gpios =gpiod_count (dev,NULL ); +if (gbl->num_gpios ==0 ) +return dev_err_probe (dev, -EINVAL , +"The gpios parameter is missing or invalid\n" ); + gbl->gpiods =devm_kcalloc (dev, gbl->num_gpios,sizeof (*gbl->gpiods), +GFP_KERNEL ); +if (!gbl->gpiods) +return -ENOMEM ; + +for (i =0 ; i < gbl->num_gpios; i++) { + gbl->gpiods[i] = +devm_gpiod_get_index (dev,NULL , i,GPIOD_ASIS ); +if (IS_ERR (gbl->gpiods[i])) +return dev_err_probe (dev,PTR_ERR (gbl->gpiods[i]), +"Failed to get GPIO at index %u\n" , i); + }memset (&props,0 ,sizeof (props)); props.type =BACKLIGHT_RAW ;@@ -78,22 +95,34 @@ static int gpio_backlight_probe(struct platform_device *pdev) }/* Set the initial power state */ -if (!of_node || !of_node->phandle) +if (!of_node || !of_node->phandle) {/* Not booted with device tree or no phandle link to the node */ bl->props.power = def_value ?BACKLIGHT_POWER_ON - :BACKLIGHT_POWER_OFF ; -else if (gpiod_get_value_cansleep (gbl->gpiod) ==0 ) - bl->props.power =BACKLIGHT_POWER_OFF ; -else - bl->props.power =BACKLIGHT_POWER_ON ; + :BACKLIGHT_POWER_OFF ; + }else { +bool all_high = true; + +for (i =0 ; i < gbl->num_gpios; i++) { +if (gpiod_get_value_cansleep (gbl->gpiods[i]) !=0 ) { + all_high = false; +break ; + } + } + + bl->props.power = + all_high ?BACKLIGHT_POWER_ON :BACKLIGHT_POWER_OFF ; + } bl->props.brightness =1 ; init_brightness =backlight_get_brightness (bl); - ret =gpiod_direction_output (gbl->gpiod, init_brightness); -if (ret) { -dev_err (dev,"failed to set initial brightness\n" ); -return ret; + +for (i =0 ; i < gbl->num_gpios; i++) { + ret =gpiod_direction_output (gbl->gpiods[i], init_brightness); +if (ret) +return dev_err_probe (dev, ret, +"failed to set gpio %u direction\n" , + i); }platform_set_drvdata (pdev, bl);Signature · 1 line
2.34.1
Re: [PATCH v10 3/5] backlight: gpio: add support for multiple GPIOs for backlight control
Quoted 24 lines · On Wed, Jan 07, 2026 at 11:27:44AM +0530, [email protected] wrote:
Quoted 11 lines · Bjorn Andersson
Quoted 3 lines · Sudarshan Shetty
Extend the gpio-backlight driver to handle multiple GPIOs instead of a single one. This allows panels that require driving several enable pins to be controlled by the backlight framework.
Can you please elaborate on the problem described here. Preferrably in the form described in
https://docs.kernel.org/process/submitting-patches.html#describe-your-changes,
i.e. start with your problem description, then a description of your solution.Quoted 9 lines
What does it mean for a backlight device to have multiple enable GPIOs?
PS. The associated binding patch needs to be merged before the DeviceTree (dts) changes can be merged, but it would be more efficient to upstream them separately - as each set of reviewers could focus on their part and you could update the patches based on the feedback from each part.
Quoted 4 lines
Initially, I had included the gpio-backlight driver and binding changes
together in the v10 patch series. Later I separated these
gpio-backlight changes and submitted them as individual patches to the respective maintainers.Here is the link to the updated patch series:
https://lore.kernel.org/all/[email protected]/T/#t
Your commit message should be answering on such questions.
Quoted 9 lines
Quoted 9 lines
Regards,
BjornQuoted 5 lines
Signed-off-by Sudarshan Shetty <[email protected]>--- drivers/video/backlight/gpio_backlight.c | 61 +++++++++++++++++------- 1 file changed, 45 insertions(+), 16 deletions(-)
Signature · 2 lines
With best wishes Dmitry
PATCH v10 4/5 arm64: dts: qcom: talos: Fix inconsistent USB PHY node naming
In reply to Sudarshan ShettyThe USB PHY nodes has inconsistent labels as 'usb_1_hspy' and 'usb_hsphy_2'. This patch renames them to follow a consistent naming scheme.
No functional changes, only label renaming.
--- arch/arm64/boot/dts/qcom/talos.dtsi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
arch/arm64/boot/dts/qcom/talos.dtsi +2 -2
@@ -4304,7 +4304,7 @@ osm_l3: interconnect@18321000 { #interconnect-cells = <1>; }; - usb_1_hsphy: phy@88e2000 { + usb_hsphy_1: phy@88e2000 { compatible = "qcom,qcs615-qusb2-phy"; reg = <0x0 0x88e2000 0x0 0x180>;
@@ -4412,7 +4412,7 @@ usb_1_dwc3: usb@a600000 { iommus = <&apps_smmu 0x140 0x0>; interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>; - phys = <&usb_1_hsphy>, <&usb_qmpphy>; + phys = <&usb_hsphy_1>, <&usb_qmpphy>; phy-names = "usb2-phy", "usb3-phy"; snps,dis-u1-entry-quirk;
Signature · 1 line
2.34.1
Re: [PATCH v10 4/5] arm64: dts: qcom: talos: Fix inconsistent USB PHY node naming
Quoted 11 lines · Sudarshan Shetty
The USB PHY nodes has inconsistent labels as '
usb_1_hspy' and 'usb_hsphy_2'. This patch renames them to follow a consistent naming scheme.No functional changes, only label renaming.
Signed-off-by Sudarshan Shetty <[email protected]>--- arch/arm64/boot/dts/qcom/talos.dtsi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
Signature · 2 lines
With best wishes Dmitry
Re: [PATCH v10 4/5] arm64: dts: qcom: talos: Fix inconsistent USB PHY node naming
In reply to Sudarshan ShettyQuoted 17 lines · Sudarshan Shetty
The USB PHY nodes has inconsistent labels as '
usb_1_hspy' and 'usb_hsphy_2'. This patch renames them to follow a consistent naming scheme.No functional changes, only label renaming.
Signed-off-by Sudarshan Shetty <[email protected]>Reviewed-by Dmitry Baryshkov <[email protected]>--- arch/arm64/boot/dts/qcom/talos.dtsi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)arch/arm64/boot/dts/qcom/talos.dtsi +0
-0
arch/arm64/boot/dts/qcom/talos.dtsi osm_l3: interconnect@18321000 { · line 4307
Quoted 5 lines
arch/arm64/boot/dts/qcom/talos.dtsi +1
-1@@ -4304,7 +4304,7 @@ osm_l3: interconnect@18321000 { #interconnect-cells = <1>; }; - usb_1_hsphy: phy@88e2000 { + usb_hsphy_1: phy@88e2000 {
Here just modify talos.dtsi, not modify qcs615-ride.dts
we will meet compile error.
Error: arch/arm64/boot/dts/qcom/qcs615-ride.dts:635.1-13 Label or path usb_1_hsphy not found.
Thanks,
Yuanjie
compatible = "qcom,qcs615-qusb2-phy";
Quoted 13 lines
arch/arm64/boot/dts/qcom/talos.dtsi +1
-1reg = <0x0 0x88e2000 0x0 0x180>;@@ -4412,7 +4412,7 @@ usb_1_dwc3: usb@a600000 { iommus = <&apps_smmu 0x140 0x0>; interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>; - phys = <&usb_1_hsphy>, <&usb_qmpphy>; + phys = <&usb_hsphy_1>, <&usb_qmpphy>; phy-names = "usb2-phy", "usb3-phy"; snps,dis-u1-entry-quirk;Signature · 1 line
2.34.1
Re: [PATCH v10 4/5] arm64: dts: qcom: talos: Fix inconsistent USB PHY node naming
Quoted 21 lines · yuanjiey
Quoted 20 lines · Sudarshan Shetty
The USB PHY nodes has inconsistent labels as '
usb_1_hspy' and 'usb_hsphy_2'. This patch renames them to follow a consistent naming scheme.No functional changes, only label renaming.
Signed-off-by Sudarshan Shetty <[email protected]>Reviewed-by Dmitry Baryshkov <[email protected]>--- arch/arm64/boot/dts/qcom/talos.dtsi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)arch/arm64/boot/dts/qcom/talos.dtsi +0
-0@@ -4304,7 +4304,7 @@ osm_l3: interconnect@18321000 { #interconnect-cells = <1>; };
Quoted 9 lines
arch/arm64/boot/dts/qcom/talos.dtsi osm_l3: interconnect@18321000 { · line 4307
Quoted 2 lines
arch/arm64/boot/dts/qcom/talos.dtsi +1
-1- usb_1_hsphy: phy@88e2000 { + usb_hsphy_1: phy@88e2000 {Here just modify
talos.dtsi, not modifyqcs615-ride.dtswe will meet compile error.
Error: arch/arm64/boot/dts/qcom/qcs615-ride.dts:635.1-13 Label or path
usb_1_hsphynot found.
Okay, got it. I will make the necessary changes in qcs615-ride.dts in the next patch series.
Quoted 17 lines
Thanks,
Yuanjiecompatible = "qcom,qcs615-qusb2-phy";
Quoted 13 lines
arch/arm64/boot/dts/qcom/talos.dtsi +1
-1reg = <0x0 0x88e2000 0x0 0x180>;@@ -4412,7 +4412,7 @@ usb_1_dwc3: usb@a600000 { iommus = <&apps_smmu 0x140 0x0>; interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>; - phys = <&usb_1_hsphy>, <&usb_qmpphy>; + phys = <&usb_hsphy_1>, <&usb_qmpphy>; phy-names = "usb2-phy", "usb3-phy"; snps,dis-u1-entry-quirk;Signature · 1 line
2.34.1
PATCH v10 5/5 arm64: dts: qcom: talos-evk: Add support for QCS615 talos evk board
In reply to Sudarshan ShettyAdd the device tree for the QCS615-based Talos EVK platform. The platform is composed of a System-on-Module following the SMARC standard, and a Carrier Board.
The Carrier Board supports several display configurations, HDMI and LVDS. Both configurations use the same base hardware, with the display selection controlled by a DIP switch.
Use a DTBO file, talos-evk-lvds-auo,g133han01.dtso, which defines an overlay that disables HDMI and adds LVDS. The DTs file talos-evk can describe the HDMI display configurations.
The initial device tree includes support for:
- CPU and memory
- UART
- GPIOs
- Regulators
- PMIC
- Early console
- AT24MAC602 EEPROM
- MCP2515 SPI to CAN
- ADV7535 DSI-to-HDMI bridge
- DisplayPort interface
- SN65DSI84ZXHR DSI-to-LVDS bridge
- Wi-Fi/BT
--- arch/arm64/boot/dts/qcom/Makefile | 4 + .../qcom/talos-evk-lvds-auo,g133han01.dtso | 126 ++++ arch/arm64/boot/dts/qcom/talos-evk-som.dtsi | 598 ++++++++++++++++++ arch/arm64/boot/dts/qcom/talos-evk.dts | 139 ++++ 4 files changed, 867 insertions(+) create mode 100644 arch/arm64/boot/dts/qcom/talos-evk-lvds-auo,g133han01.dtso create mode 100644 arch/arm64/boot/dts/qcom/talos-evk-som.dtsi create mode 100644 arch/arm64/boot/dts/qcom/talos-evk.dts
arch/arm64/boot/dts/qcom/Makefile +4 -0
@@ -324,6 +324,10 @@ dtb-$(CONFIG_ARCH_QCOM) += sm8650-mtp.dtb dtb-$(CONFIG_ARCH_QCOM) += sm8650-qrd.dtb dtb-$(CONFIG_ARCH_QCOM) += sm8750-mtp.dtb dtb-$(CONFIG_ARCH_QCOM) += sm8750-qrd.dtb +dtb-$(CONFIG_ARCH_QCOM) += talos-evk.dtb +talos-evk-lvds-auo,g133han01-dtbs := \ + talos-evk.dtb talos-evk-lvds-auo,g133han01.dtbo +dtb-$(CONFIG_ARCH_QCOM) += talos-evk-lvds-auo,g133han01.dtb x1e001de-devkit-el2-dtbs := x1e001de-devkit.dtb x1-el2.dtbo dtb-$(CONFIG_ARCH_QCOM) += x1e001de-devkit.dtb x1e001de-devkit-el2.dtb x1e78100-lenovo-thinkpad-t14s-el2-dtbs := x1e78100-lenovo-thinkpad-t14s.dtb x1-el2.dtbo
arch/arm64/boot/dts/qcom/talos-evk-lvds-auo,g133han01.dtso new file +126 -0
126 lines not on this page · raw message
arch/arm64/boot/dts/qcom/talos-evk-som.dtsi new file +598 -0
598 lines not on this page · raw message
arch/arm64/boot/dts/qcom/talos-evk.dts new file +139 -0
139 lines not on this page · raw message
Signature · 1 line
2.34.1
Re: [PATCH v10 5/5] arm64: dts: qcom: talos-evk: Add support for QCS615 talos evk board
Quoted 27 lines · Sudarshan Shetty
Add the device tree for the QCS615-based Talos EVK platform. The platform is composed of a System-on-Module following the SMARC standard, and a Carrier Board.
The Carrier Board supports several display configurations, HDMI and LVDS. Both configurations use the same base hardware, with the display selection controlled by a DIP switch.
Use a DTBO file, talos-evk-lvds-auo,g133han01.dtso, which defines an overlay that disables HDMI and adds LVDS. The DTs file talos-evk can describe the HDMI display configurations.
The initial device tree includes support for:
- CPU and memory
- UART
- GPIOs
- Regulators
- PMIC
- Early console
- AT24MAC602 EEPROM
- MCP2515 SPI to CAN
- ADV7535 DSI-to-HDMI bridge
- DisplayPort interface
- SN65DSI84ZXHR DSI-to-LVDS bridge
- Wi-Fi/BTSigned-off-by Sudarshan Shetty <[email protected]>
Quoted 10 lines
--- arch/arm64/boot/dts/qcom/Makefile | 4 + .../qcom/talos-evk-lvds-auo,g133han01.dtso | 126 ++++ arch/arm64/boot/dts/qcom/talos-evk-som.dtsi | 598 ++++++++++++++++++ arch/arm64/boot/dts/qcom/talos-evk.dts | 139 ++++ 4 files changed, 867 insertions(+) create mode 100644 arch/arm64/boot/dts/qcom/talos-evk-lvds-auo,g133han01.dtso create mode 100644 arch/arm64/boot/dts/qcom/talos-evk-som.dtsi create mode 100644 arch/arm64/boot/dts/qcom/talos-evk.dts
Signature · 2 lines
With best wishes Dmitry
Re: [PATCH v10 5/5] arm64: dts: qcom: talos-evk: Add support for QCS615 talos evk board
In reply to Sudarshan ShettyQuoted 7 lines · Sudarshan Shetty
Add the device tree for the QCS615-based Talos EVK platform. The platform is composed of a System-on-Module following the SMARC standard, and a Carrier Board.
The Carrier Board supports several display configurations, HDMI and LVDS. Both configurations use the same base hardware, with the display selection controlled by a DIP switch.
[...]
Quoted 12 lines
+++
b/arch/arm64/boot/dts/qcom/talos-evk-lvds-auo,g133han01.dtsoarch/arm64/boot/dts/qcom/talos-evk-lvds-auo,g133han01.dtso new file +10
-0@@ -0,0 +1,126 @@ +// SPDX-License-Identifier: BSD-3-Clause +/* + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + */ +/dts-v1/; +/plugin/; + +#include <dt-bindings/gpio/gpio.h> + +&{/} {
arch/arm64/boot/dts/qcom/talos-evk-lvds-auo,g133han01.dtso line 20
Quoted 10 lines
arch/arm64/boot/dts/qcom/talos-evk-lvds-auo,g133han01.dtso new file +10
-0+ backlight: backlight { + compatible = "gpio-backlight"; + gpios = <&tlmm 59 GPIO_ACTIVE_HIGH>, + <&tlmm 115 GPIO_ACTIVE_HIGH>; + default-on; + }; + + hdmi_connector: hdmi-out { + status = "disabled"; + };
This should be a &label_reference
[...]
arch/arm64/boot/dts/qcom/talos-evk-som.dtsi line 157
Quoted 9 lines
arch/arm64/boot/dts/qcom/talos-evk-som.dtsi new file +9
-0+ wifi_1p8v: regulator-wifi-1p8v { + compatible = "regulator-fixed"; + regulator-name = "wifi_1p8v"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + gpio = <&tlmm 91 GPIO_ACTIVE_HIGH>; + enable-active-high; + pinctrl-names = "default"; + pinctrl-0 = <&wifi_reg_en_pins_state>;
property-n
property-names
consistently, please
arch/arm64/boot/dts/qcom/talos-evk-som.dtsi line 170
Quoted 13 lines
arch/arm64/boot/dts/qcom/talos-evk-som.dtsi new file +13
-0+ regulator-boot-on; + regulator-always-on; + }; + + wifi_3p85v: regulator-wifi-3p85v { + compatible = "regulator-fixed"; + regulator-name = "wifi_3p85v"; + regulator-min-microvolt = <3850000>; + regulator-max-microvolt = <3850000>; + gpio = <&tlmm 91 GPIO_ACTIVE_HIGH>; + enable-active-high; + pinctrl-names = "default"; + pinctrl-0 = <&wifi_reg_en_pins_state>;
ditto
[...]
arch/arm64/boot/dts/qcom/talos-evk-som.dtsi line 468
Quoted 6 lines
arch/arm64/boot/dts/qcom/talos-evk-som.dtsi new file +6
-0+&tlmm { + bt_en_state: bt-en-state { + pins = "gpio85"; + function = "gpio"; + bias-pull-down; + output-low;
output-low/high should be unnecessary as these pins are governed by the kernel driver
lg otherwise
Konrad
Re: [PATCH v10 5/5] arm64: dts: qcom: talos-evk: Add support for QCS615 talos evk board
Quoted 27 lines · Konrad Dybcio
Quoted 7 lines · Sudarshan Shetty
Add the device tree for the QCS615-based Talos EVK platform. The platform is composed of a System-on-Module following the SMARC standard, and a Carrier Board.
The Carrier Board supports several display configurations, HDMI and LVDS. Both configurations use the same base hardware, with the display selection controlled by a DIP switch.
[...]
Quoted 16 lines
+++
b/arch/arm64/boot/dts/qcom/talos-evk-lvds-auo,g133han01.dtsoarch/arm64/boot/dts/qcom/talos-evk-lvds-auo,g133han01.dtso new file +14
-0@@ -0,0 +1,126 @@ +// SPDX-License-Identifier: BSD-3-Clause +/* + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + */ +/dts-v1/; +/plugin/; + +#include <dt-bindings/gpio/gpio.h> + +&{/} { + backlight: backlight { + compatible = "gpio-backlight"; + gpios = <&tlmm 59 GPIO_ACTIVE_HIGH>, + <&tlmm 115 GPIO_ACTIVE_HIGH>;
Quoted 9 lines
arch/arm64/boot/dts/qcom/talos-evk-lvds-auo,g133han01.dtso line 20
Quoted 6 lines
arch/arm64/boot/dts/qcom/talos-evk-lvds-auo,g133han01.dtso new file +6
-0+ default-on; + }; + + hdmi_connector: hdmi-out { + status = "disabled"; + };This should be a
&label_reference
Okay, will add it in the next patch.
Quoted 15 lines
[...]
arch/arm64/boot/dts/qcom/talos-evk-som.dtsi line 157
Quoted 9 lines
arch/arm64/boot/dts/qcom/talos-evk-som.dtsi new file +9
-0+ wifi_1p8v: regulator-wifi-1p8v { + compatible = "regulator-fixed"; + regulator-name = "wifi_1p8v"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + gpio = <&tlmm 91 GPIO_ACTIVE_HIGH>; + enable-active-high; + pinctrl-names = "default"; + pinctrl-0 = <&wifi_reg_en_pins_state>;property-n
property-names
Quoted 2 lines
consistently, please
I didn’t fully understand your comment.
Could you please elaborate a bit more so I can make the
necessary changes correctly. >> + regulator-boot-on;
Quoted 17 lines
arch/arm64/boot/dts/qcom/talos-evk-som.dtsi line 170
Quoted 12 lines
arch/arm64/boot/dts/qcom/talos-evk-som.dtsi new file +12
-0+ regulator-always-on; + }; + + wifi_3p85v: regulator-wifi-3p85v { + compatible = "regulator-fixed"; + regulator-name = "wifi_3p85v"; + regulator-min-microvolt = <3850000>; + regulator-max-microvolt = <3850000>; + gpio = <&tlmm 91 GPIO_ACTIVE_HIGH>; + enable-active-high; + pinctrl-names = "default"; + pinctrl-0 = <&wifi_reg_en_pins_state>;ditto
[...]
Quoted 10 lines
arch/arm64/boot/dts/qcom/talos-evk-som.dtsi line 468
Quoted 6 lines
+&tlmm {
arch/arm64/boot/dts/qcom/talos-evk-som.dtsi new file +5
-0+ bt_en_state: bt-en-state { + pins = "gpio85"; + function = "gpio"; + bias-pull-down; + output-low;output-low/high should be unnecessary as these pins are governed by the kernel driver
Okay,got it. Will make the necessary change in the next patch.
Quoted 3 lines
lg otherwise
Konrad
Re: [PATCH v10 5/5] arm64: dts: qcom: talos-evk: Add support for QCS615 talos evk board
Quoted 20 lines · On Sun, Jan 04, 2026 at 07:16:20PM +0530, [email protected] wrote:
Quoted 17 lines · Konrad Dybcio
Quoted 7 lines · Sudarshan Shetty
Add the device tree for the QCS615-based Talos EVK platform. The platform is composed of a System-on-Module following the SMARC standard, and a Carrier Board.
The Carrier Board supports several display configurations, HDMI and LVDS. Both configurations use the same base hardware, with the display selection controlled by a DIP switch.
[...]
Review
Quoted 2 lines
(quoted diff) +2
-0+ pinctrl-names = "default"; + pinctrl-0 = <&wifi_reg_en_pins_state>;property-n
property-names
Quoted 6 lines
Quoted 2 lines
consistently, please
I didn’t fully understand your comment.
Could you please elaborate a bit more so I can make the
necessary changes correctly. >> + regulator-boot-on;
What is the order of these two properties in most of the other DT files? What is the order of them in your patch?
Quoted 2 lines
Quoted 2 lines
Quoted 2 lines
(quoted diff) +2
-0+ regulator-always-on; + };
Signature · 2 lines
With best wishes Dmitry
Re: [PATCH v10 5/5] arm64: dts: qcom: talos-evk: Add support for QCS615 talos evk board
Quoted 24 lines · Dmitry Baryshkov
Quoted 23 lines · On Sun, Jan 04, 2026 at 07:16:20PM +0530, [email protected] wrote:
Quoted 19 lines · Konrad Dybcio
Quoted 7 lines · Sudarshan Shetty
Add the device tree for the QCS615-based Talos EVK platform. The platform is composed of a System-on-Module following the SMARC standard, and a Carrier Board.
The Carrier Board supports several display configurations, HDMI and LVDS. Both configurations use the same base hardware, with the display selection controlled by a DIP switch.
[...]
Review
Quoted 2 lines
(quoted diff) +2
-0+ pinctrl-names = "default"; + pinctrl-0 = <&wifi_reg_en_pins_state>;property-n
property-namesconsistently, please
Quoted 7 lines
Quoted 3 lines
I didn’t fully understand your comment.
Could you please elaborate a bit more so I can make the
necessary changes correctly. >> + regulator-boot-on;What is the order of these two properties in most of the other DT files? What is the order of them in your patch?
I got your point now. I will rearrange the order of the properties to be consistent with other DT files in the next patch series.
Quoted 3 lines
Quoted 2 lines
Quoted 2 lines
Quoted 2 lines
(quoted diff) +2
-0+ regulator-always-on; + };
Re: [PATCH v10 5/5] arm64: dts: qcom: talos-evk: Add support for QCS615 talos evk board
In reply to [email protected]Quoted 40 lines · On 04-01-2026 19:16, [email protected] wrote:
Quoted 27 lines · Konrad Dybcio
Quoted 7 lines · Sudarshan Shetty
Add the device tree for the QCS615-based Talos EVK platform. The platform is composed of a System-on-Module following the SMARC standard, and a Carrier Board.
The Carrier Board supports several display configurations, HDMI and LVDS. Both configurations use the same base hardware, with the display selection controlled by a DIP switch.
[...]
Quoted 16 lines
+++
b/arch/arm64/boot/dts/qcom/talos-evk-lvds-auo,g133han01.dtsoarch/arm64/boot/dts/qcom/talos-evk-lvds-auo,g133han01.dtso new file +14
-0@@ -0,0 +1,126 @@ +// SPDX-License-Identifier: BSD-3-Clause +/* + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + */ +/dts-v1/; +/plugin/; + +#include <dt-bindings/gpio/gpio.h> + +&{/} { + backlight: backlight { + compatible = "gpio-backlight"; + gpios = <&tlmm 59 GPIO_ACTIVE_HIGH>, + <&tlmm 115 GPIO_ACTIVE_HIGH>;Quoted 9 lines
arch/arm64/boot/dts/qcom/talos-evk-lvds-auo,g133han01.dtso line 20
Quoted 6 lines
arch/arm64/boot/dts/qcom/talos-evk-lvds-auo,g133han01.dtso new file +6
-0+ default-on; + }; + + hdmi_connector: hdmi-out { + status = "disabled"; + };This should be a
&label_reference
Quoted 1 line
Okay, will add it in the next patch.
I noticed that in several existing .dtso files, the root node is
commonly referenced as &{/}. In your comment, you suggested using &label_reference. Could you please clarify which specific label or node you would like me to update here.
Quoted 54 lines
Quoted 15 lines
[...]
arch/arm64/boot/dts/qcom/talos-evk-som.dtsi line 157
Quoted 9 lines
arch/arm64/boot/dts/qcom/talos-evk-som.dtsi new file +9
-0+ wifi_1p8v: regulator-wifi-1p8v { + compatible = "regulator-fixed"; + regulator-name = "wifi_1p8v"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + gpio = <&tlmm 91 GPIO_ACTIVE_HIGH>; + enable-active-high; + pinctrl-names = "default"; + pinctrl-0 = <&wifi_reg_en_pins_state>;property-n
property-namesQuoted 2 lines
consistently, please
I didn’t fully understand your comment.
Could you please elaborate a bit more so I can make the
necessary changes correctly. >> + regulator-boot-on;Quoted 17 lines
arch/arm64/boot/dts/qcom/talos-evk-som.dtsi line 170
Quoted 12 lines
arch/arm64/boot/dts/qcom/talos-evk-som.dtsi new file +12
-0+ regulator-always-on; + }; + + wifi_3p85v: regulator-wifi-3p85v { + compatible = "regulator-fixed"; + regulator-name = "wifi_3p85v"; + regulator-min-microvolt = <3850000>; + regulator-max-microvolt = <3850000>; + gpio = <&tlmm 91 GPIO_ACTIVE_HIGH>; + enable-active-high; + pinctrl-names = "default"; + pinctrl-0 = <&wifi_reg_en_pins_state>;ditto
[...]
Quoted 10 lines
arch/arm64/boot/dts/qcom/talos-evk-som.dtsi line 468
Quoted 6 lines
+&tlmm {
arch/arm64/boot/dts/qcom/talos-evk-som.dtsi new file +5
-0+ bt_en_state: bt-en-state { + pins = "gpio85"; + function = "gpio"; + bias-pull-down; + output-low;output-low/high should be unnecessary as these pins are governed by the kernel driver
Okay,got it. Will make the necessary change in the next patch.
Quoted 3 lines
lg otherwise
Konrad
Re: [PATCH v10 5/5] arm64: dts: qcom: talos-evk: Add support for QCS615 talos evk board
Quoted 43 lines · On 1/8/26 8:36 AM, [email protected] wrote:
Quoted 40 lines · On 04-01-2026 19:16, [email protected] wrote:
Quoted 36 lines · Konrad Dybcio
Quoted 7 lines · Sudarshan Shetty
Add the device tree for the QCS615-based Talos EVK platform. The platform is composed of a System-on-Module following the SMARC standard, and a Carrier Board.
The Carrier Board supports several display configurations, HDMI and LVDS. Both configurations use the same base hardware, with the display selection controlled by a DIP switch.
[...]
Quoted 12 lines
+++
b/arch/arm64/boot/dts/qcom/talos-evk-lvds-auo,g133han01.dtsoarch/arm64/boot/dts/qcom/talos-evk-lvds-auo,g133han01.dtso new file +10
-0@@ -0,0 +1,126 @@ +// SPDX-License-Identifier: BSD-3-Clause +/* + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + */ +/dts-v1/; +/plugin/; + +#include <dt-bindings/gpio/gpio.h> + +&{/} {arch/arm64/boot/dts/qcom/talos-evk-lvds-auo,g133han01.dtso line 20
Quoted 10 lines
arch/arm64/boot/dts/qcom/talos-evk-lvds-auo,g133han01.dtso new file +10
-0+ backlight: backlight { + compatible = "gpio-backlight"; + gpios = <&tlmm 59 GPIO_ACTIVE_HIGH>, + <&tlmm 115 GPIO_ACTIVE_HIGH>; + default-on; + }; + + hdmi_connector: hdmi-out { + status = "disabled"; + };This should be a
&label_reference
Quoted 5 lines
Quoted 1 line
Okay, will add it in the next patch.
I noticed that in several existing .dtso files, the root node is
commonly referenced as &{/}. In your comment, you suggested using&label_reference. Could you please clarify which specific label or node you would like me to update here.
&{/} must be used for root nodes in a .dtso (for it to compile). I meant using a &label_reference for hdmi_connector
Konrad
Re: [PATCH v10 5/5] arm64: dts: qcom: talos-evk: Add support for QCS615 talos evk board
Quoted 19 lines · Konrad Dybcio
Quoted 19 lines
Quoted 19 lines
Quoted 19 lines
Quoted 7 lines
+ */
(quoted diff) +6
-0+/dts-v1/; +/plugin/; + +#include <dt-bindings/gpio/gpio.h> + +&{/} {Review
Quoted 10 lines
(quoted diff) +10
-0+ backlight: backlight { + compatible = "gpio-backlight"; + gpios = <&tlmm 59 GPIO_ACTIVE_HIGH>, + <&tlmm 115 GPIO_ACTIVE_HIGH>; + default-on; + }; + + hdmi_connector: hdmi-out { + status = "disabled"; + };This should be a
&label_reference
Quoted 6 lines
Quoted 4 lines
Quoted 1 line
Okay, will add it in the next patch.
I noticed that in several existing .dtso files, the root node is
commonly referenced as &{/}. In your comment, you suggested using&label_reference. Could you please clarify which specific label or node you would like me to update here.&{/} must be used for root nodes in a .dtso (for it to compile). I meant using a
&label_referenceforhdmi_connector
Thank you for clarifying. I’ve updated the patch to move hdmi_connector out of the root node and reference it using &hdmi_connector instead of defining it under &{/} like below:
git diff arch/arm64/boot/dts/qcom/talos-evk-lvds-auo,g133han01.
arch/arm64/boot/dts/qcom/talos-evk-lvds-auo,g133han01.dtso +4 -4
@@ -15,10 +15,6 @@ backlight: backlight { default-on; }; - hdmi_connector: hdmi-out { - status = "disabled"; - }; - panel-lvds { compatible = "auo,g133han01";
@@ -49,6 +45,10 @@ lvds_panel_out_b: endpoint { }; }; +&hdmi_connector { + status = "disabled"; +}; + &i2c1 { clock-frequency = <400000>;
Could you please confirm if this change aligns with your expectation.
Re: [PATCH v10 5/5] arm64: dts: qcom: talos-evk: Add support for QCS615 talos evk board
Quoted 60 lines · On 1/8/26 2:02 PM, [email protected] wrote:
Quoted 19 lines · Konrad Dybcio
Quoted 19 lines
Quoted 19 lines
Quoted 19 lines
Quoted 7 lines
+ */
(quoted diff) +6
-0+/dts-v1/; +/plugin/; + +#include <dt-bindings/gpio/gpio.h> + +&{/} {Review
Quoted 10 lines
(quoted diff) +10
-0+ backlight: backlight { + compatible = "gpio-backlight"; + gpios = <&tlmm 59 GPIO_ACTIVE_HIGH>, + <&tlmm 115 GPIO_ACTIVE_HIGH>; + default-on; + }; + + hdmi_connector: hdmi-out { + status = "disabled"; + };This should be a
&label_referenceQuoted 6 lines
Quoted 4 lines
Quoted 1 line
Okay, will add it in the next patch.
I noticed that in several existing .dtso files, the root node is
commonly referenced as &{/}. In your comment, you suggested using&label_reference. Could you please clarify which specific label or node you would like me to update here.&{/} must be used for root nodes in a .dtso (for it to compile). I meant using a
&label_referenceforhdmi_connectorThank you for clarifying. I’ve updated the patch to move
hdmi_connectorout of the root node and reference it using&hdmi_connectorinstead of defining it under &{/} like below:git diff
arch/arm64/boot/dts/qcom/talos-evk-lvds-auo,g133han01.arch/arm64/boot/dts/qcom/talos-evk-lvds-auo,g133han01.dtso +4
-4@@ -15,10 +15,6 @@ backlight: backlight { default-on; }; - hdmi_connector: hdmi-out { - status = "disabled"; - }; - panel-lvds { compatible = "auo,g133han01";@@ -49,6 +45,10 @@ lvds_panel_out_b: endpoint { }; }; +&hdmi_connector { + status = "disabled"; +}; + &i2c1 { clock-frequency = <400000>;
Quoted 2 lines
Could you please confirm if this change aligns with your expectation.
Yes, exactly :)
Thank you!
Konrad
Re: [PATCH v10 5/5] arm64: dts: qcom: talos-evk: Add support for QCS615 talos evk board
In reply to Sudarshan ShettyQuoted 116 lines · Sudarshan Shetty
Add the device tree for the QCS615-based Talos EVK platform. The platform is composed of a System-on-Module following the SMARC standard, and a Carrier Board.
The Carrier Board supports several display configurations, HDMI and LVDS. Both configurations use the same base hardware, with the display selection controlled by a DIP switch.
Use a DTBO file, talos-evk-lvds-auo,g133han01.dtso, which defines an overlay that disables HDMI and adds LVDS. The DTs file talos-evk can describe the HDMI display configurations.
The initial device tree includes support for:
- CPU and memory
- UART
- GPIOs
- Regulators
- PMIC
- Early console
- AT24MAC602 EEPROM
- MCP2515 SPI to CAN
- ADV7535 DSI-to-HDMI bridge
- DisplayPort interface
- SN65DSI84ZXHR DSI-to-LVDS bridge
- Wi-Fi/BTSigned-off-by Sudarshan Shetty <[email protected]>Reviewed-by Dmitry Baryshkov <[email protected]>--- arch/arm64/boot/dts/qcom/Makefile | 4 + .../qcom/talos-evk-lvds-auo,g133han01.dtso | 126 ++++ arch/arm64/boot/dts/qcom/talos-evk-som.dtsi | 598 ++++++++++++++++++ arch/arm64/boot/dts/qcom/talos-evk.dts | 139 ++++ 4 files changed, 867 insertions(+) create mode 100644 arch/arm64/boot/dts/qcom/talos-evk-lvds-auo,g133han01.dtso create mode 100644 arch/arm64/boot/dts/qcom/talos-evk-som.dtsi create mode 100644 arch/arm64/boot/dts/qcom/talos-evk.dtsarch/arm64/boot/dts/qcom/Makefile +4
-0@@ -324,6 +324,10 @@ dtb-$(CONFIG_ARCH_QCOM) += sm8650-mtp.dtb dtb-$(CONFIG_ARCH_QCOM) += sm8650-qrd.dtb dtb-$(CONFIG_ARCH_QCOM) += sm8750-mtp.dtb dtb-$(CONFIG_ARCH_QCOM) += sm8750-qrd.dtb +dtb-$(CONFIG_ARCH_QCOM) += talos-evk.dtb +talos-evk-lvds-auo,g133han01-dtbs := \ + talos-evk.dtb talos-evk-lvds-auo,g133han01.dtbo +dtb-$(CONFIG_ARCH_QCOM) += talos-evk-lvds-auo,g133han01.dtb x1e001de-devkit-el2-dtbs := x1e001de-devkit.dtb x1-el2.dtbo dtb-$(CONFIG_ARCH_QCOM) += x1e001de-devkit.dtb x1e001de-devkit-el2.dtb x1e78100-lenovo-thinkpad-t14s-el2-dtbs := x1e78100-lenovo-thinkpad-t14s.dtb x1-el2.dtboarch/arm64/boot/dts/qcom/talos-evk-lvds-auo,g133han01.dtso new file +57
-0@@ -0,0 +1,126 @@ +// SPDX-License-Identifier: BSD-3-Clause +/* + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + */ +/dts-v1/; +/plugin/; + +#include <dt-bindings/gpio/gpio.h> + +&{/} { + backlight: backlight { + compatible = "gpio-backlight"; + gpios = <&tlmm 59 GPIO_ACTIVE_HIGH>, + <&tlmm 115 GPIO_ACTIVE_HIGH>; + default-on; + }; + + hdmi_connector: hdmi-out { + status = "disabled"; + }; + + panel-lvds { + compatible = "auo,g133han01"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + /* LVDS A (Odd pixels) */ + port@0 { + reg = <0>; + dual-lvds-odd-pixels; + + lvds_panel_out_a: endpoint { + remote-endpoint = <&sn65dsi84_out_a>; + }; + }; + + /* LVDS B (Even pixels) */ + port@1 { + reg = <1>; + dual-lvds-even-pixels; + + lvds_panel_out_b: endpoint { + remote-endpoint = <&sn65dsi84_out_b>; + }; + }; + }; + }; +}; + +&i2c1 { + clock-frequency = <400000>; + + status = "okay"; + + hdmi_bridge: bridge@3d {
arch/arm64/boot/dts/qcom/talos-evk-lvds-auo,g133han01.dtso line 67
Quoted 10 lines
arch/arm64/boot/dts/qcom/talos-evk-lvds-auo,g133han01.dtso new file +10
-0+ status = "disabled"; + }; + + lvds_bridge: bridge@2c { + compatible = "ti,sn65dsi84"; + reg = <0x2c>; + enable-gpios = <&tlmm 42 GPIO_ACTIVE_HIGH>; + ti,dsi-lanes = <4>; + ti,lvds-format = "jeida-24"; + ti,lvds-bpp = <24>;
These properties can work?
dtbinding check says:
/local/mnt/workspace/yyj/develop_linux/git-repository/Talos_repository/upstream_linux-next/linux-sheepdog/linux-next/arch/arm64/boot/dts/qcom/talos-evk-lvds-auo,g133han01.dtb: panel-lvds: 'power-supply' is a required property
from schema $id: http://devicetree.org/schemas/display/panel/panel-simple-lvds-dual-ports.yaml#
/local/mnt/workspace/yyj/develop_linux/git-repository/Talos_repository/upstream_linux-next/linux-sheepdog/linux-next/arch/arm64/boot/dts/qcom/talos-evk-lvds-auo,g133han01.dtb: clock-controller@100000: 'clock-names' is a required property
from schema $id: http://devicetree.org/schemas/clock/qcom,qcs615-gcc.yaml#
/local/mnt/workspace/yyj/develop_linux/git-repository/Talos_repository/upstream_linux-next/linux-sheepdog/linux-next/arch/arm64/boot/dts/qcom/talos-evk-lvds-auo,g133han01.dtb: bridge@2c: ports:port@0:endpoint:data-lanes:0: 1 was expected
from schema $id: http://devicetree.org/schemas/display/bridge/ti,sn65dsi83.yaml#
/local/mnt/workspace/yyj/develop_linux/git-repository/Talos_repository/upstream_linux-next/linux-sheepdog/linux-next/arch/arm64/boot/dts/qcom/talos-evk-lvds-auo,g133han01.dtb: bridge@2c: ports:port@0:endpoint:data-lanes:1: 2 was expected
from schema $id: http://devicetree.org/schemas/display/bridge/ti,sn65dsi83.yaml#
/local/mnt/workspace/yyj/develop_linux/git-repository/Talos_repository/upstream_linux-next/linux-sheepdog/linux-next/arch/arm64/boot/dts/qcom/talos-evk-lvds-auo,g133han01.dtb: bridge@2c: ports:port@0:endpoint:data-lanes:2: 3 was expected
from schema $id: http://devicetree.org/schemas/display/bridge/ti,sn65dsi83.yaml#
/local/mnt/workspace/yyj/develop_linux/git-repository/Talos_repository/upstream_linux-next/linux-sheepdog/linux-next/arch/arm64/boot/dts/qcom/talos-evk-lvds-auo,g133han01.dtb: bridge@2c: ports:port@0:endpoint:data-lanes:3: 4 was expected
from schema $id: http://devicetree.org/schemas/display/bridge/ti,sn65dsi83.yaml#
/local/mnt/workspace/yyj/develop_linux/git-repository/Talos_repository/upstream_linux-next/linux-sheepdog/linux-next/arch/arm64/boot/dts/qcom/talos-evk-lvds-auo,g133han01.dtb: bridge@2c: 'ti,dsi-lanes', 'ti,lvds-bpp', 'ti,lvds-format' do not match any of the regexes: 'pinctrl-[0-9]+'
from schema $id: http://devicetree.org/schemas/display/bridge/ti,sn65dsi83.yaml#
Thanks,
Yuanjie
Quoted 809 lines
arch/arm64/boot/dts/qcom/talos-evk-lvds-auo,g133han01.dtso new file +58
-0+ ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + + sn65dsi84_in: endpoint { + data-lanes = <0 1 2 3>; + remote-endpoint = <&mdss_dsi0_out>; + }; + }; + + port@2 { + reg = <2>; + + sn65dsi84_out_a: endpoint { + data-lanes = <0 1 2 3>; + remote-endpoint = <&lvds_panel_out_a>; + }; + }; + + port@3 { + reg = <3>; + + sn65dsi84_out_b: endpoint { + data-lanes = <0 1 2 3>; + remote-endpoint = <&lvds_panel_out_b>; + }; + }; + }; + }; +}; + +&mdss_dsi0 { + vdda-supply = <&vreg_l11a>; + + status = "okay"; +}; + +&mdss_dsi0_out { + remote-endpoint = <&sn65dsi84_in>; + data-lanes = <0 1 2 3>; +}; + +&tlmm { + lcd_bklt_en: lcd-bklt-en-state { + pins = "gpio115"; + function = "gpio"; + bias-disable; + }; + + lcd_bklt_pwm: lcd-bklt-pwm-state { + pins = "gpio59"; + function = "gpio"; + bias-disable; + }; +};arch/arm64/boot/dts/qcom/talos-evk-som.dtsi new file +598
-0@@ -0,0 +1,598 @@ +// SPDX-License-Identifier: BSD-3-Clause +/* + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + */ +/dts-v1/; + +#include <dt-bindings/gpio/gpio.h> +#include <dt-bindings/regulator/qcom,rpmh-regulator.h> +#include "talos.dtsi" +#include "pm8150.dtsi" +/ { + aliases { + mmc0 = &sdhc_1; + serial0 = &uart0; + serial1 = &uart7; + }; + + chosen { + stdout-path = "serial0:115200n8"; + }; + + clocks { + can_osc: can-oscillator { + compatible = "fixed-clock"; + clock-frequency = <20000000>; + #clock-cells = <0>; + }; + + sleep_clk: sleep-clk { + compatible = "fixed-clock"; + clock-frequency = <32764>; + #clock-cells = <0>; + }; + + xo_board_clk: xo-board-clk { + compatible = "fixed-clock"; + clock-frequency = <38400000>; + #clock-cells = <0>; + }; + }; + + regulator-usb2-vbus { + compatible = "regulator-fixed"; + regulator-name = "USB2_VBUS"; + gpio = <&pm8150_gpios 10 GPIO_ACTIVE_HIGH>; + pinctrl-0 = <&usb2_en>; + pinctrl-names = "default"; + enable-active-high; + regulator-always-on; + }; + + vreg_conn_1p8: regulator-conn-1p8 { + compatible = "regulator-fixed"; + regulator-name = "vreg_conn_1p8"; + startup-delay-us = <4000>; + enable-active-high; + gpio = <&pm8150_gpios 1 GPIO_ACTIVE_HIGH>; + }; + + vreg_conn_pa: regulator-conn-pa { + compatible = "regulator-fixed"; + regulator-name = "vreg_conn_pa"; + startup-delay-us = <4000>; + enable-active-high; + gpio = <&pm8150_gpios 6 GPIO_ACTIVE_HIGH>; + }; + + vreg_v3p3_can: regulator-v3p3-can { + compatible = "regulator-fixed"; + regulator-name = "vreg-v3p3-can"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + regulator-always-on; + }; + + vreg_v5p0_can: regulator-v5p0-can { + compatible = "regulator-fixed"; + regulator-name = "vreg-v5p0-can"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + regulator-boot-on; + regulator-always-on; + }; + + wcn6855-pmu { + compatible = "qcom,wcn6855-pmu"; + + pinctrl-0 = <&bt_en_state>, <&wlan_en_state>; + pinctrl-names = "default"; + + bt-enable-gpios = <&tlmm 85 GPIO_ACTIVE_HIGH>; + wlan-enable-gpios = <&tlmm 84 GPIO_ACTIVE_HIGH>; + + vddio-supply = <&vreg_conn_pa>; + vddaon-supply = <&vreg_s5a>; + vddpmu-supply = <&vreg_conn_1p8>; + vddpmumx-supply = <&vreg_conn_1p8>; + vddpmucx-supply = <&vreg_conn_pa>; + vddrfa0p95-supply = <&vreg_s5a>; + vddrfa1p3-supply = <&vreg_s6a>; + vddrfa1p9-supply = <&vreg_l15a>; + vddpcie1p3-supply = <&vreg_s6a>; + vddpcie1p9-supply = <&vreg_l15a>; + + regulators { + vreg_pmu_rfa_cmn: ldo0 { + regulator-name = "vreg_pmu_rfa_cmn"; + }; + + vreg_pmu_aon_0p59: ldo1 { + regulator-name = "vreg_pmu_aon_0p59"; + }; + + vreg_pmu_wlcx_0p8: ldo2 { + regulator-name = "vreg_pmu_wlcx_0p8"; + }; + + vreg_pmu_wlmx_0p85: ldo3 { + regulator-name = "vreg_pmu_wlmx_0p85"; + }; + + vreg_pmu_btcmx_0p85: ldo4 { + regulator-name = "vreg_pmu_btcmx_0p85"; + }; + + vreg_pmu_rfa_0p8: ldo5 { + regulator-name = "vreg_pmu_rfa_0p8"; + }; + + vreg_pmu_rfa_1p2: ldo6 { + regulator-name = "vreg_pmu_rfa_1p2"; + }; + + vreg_pmu_rfa_1p7: ldo7 { + regulator-name = "vreg_pmu_rfa_1p7"; + }; + + vreg_pmu_pcie_0p9: ldo8 { + regulator-name = "vreg_pmu_pcie_0p9"; + }; + + vreg_pmu_pcie_1p8: ldo9 { + regulator-name = "vreg_pmu_pcie_1p8"; + }; + }; + }; + + wifi_1p8v: regulator-wifi-1p8v { + compatible = "regulator-fixed"; + regulator-name = "wifi_1p8v"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + gpio = <&tlmm 91 GPIO_ACTIVE_HIGH>; + enable-active-high; + pinctrl-names = "default"; + pinctrl-0 = <&wifi_reg_en_pins_state>; + regulator-boot-on; + regulator-always-on; + }; + + wifi_3p85v: regulator-wifi-3p85v { + compatible = "regulator-fixed"; + regulator-name = "wifi_3p85v"; + regulator-min-microvolt = <3850000>; + regulator-max-microvolt = <3850000>; + gpio = <&tlmm 91 GPIO_ACTIVE_HIGH>; + enable-active-high; + pinctrl-names = "default"; + pinctrl-0 = <&wifi_reg_en_pins_state>; + regulator-boot-on; + regulator-always-on; + }; +}; + +&apps_rsc { + regulators-0 { + compatible = "qcom,pm8150-rpmh-regulators"; + qcom,pmic-id = "a"; + + vreg_s3a: smps3 { + regulator-name = "vreg_s3a"; + regulator-min-microvolt = <600000>; + regulator-max-microvolt = <650000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_s4a: smps4 { + regulator-name = "vreg_s4a"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1829000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_s5a: smps5 { + regulator-name = "vreg_s5a"; + regulator-min-microvolt = <1896000>; + regulator-max-microvolt = <2040000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_s6a: smps6 { + regulator-name = "vreg_s6a"; + regulator-min-microvolt = <1304000>; + regulator-max-microvolt = <1404000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l1a: ldo1 { + regulator-name = "vreg_l1a"; + regulator-min-microvolt = <488000>; + regulator-max-microvolt = <852000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>; + regulator-allow-set-load; + regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM + RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l2a: ldo2 { + regulator-name = "vreg_l2a"; + regulator-min-microvolt = <1650000>; + regulator-max-microvolt = <3100000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>; + regulator-allow-set-load; + regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM + RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l3a: ldo3 { + regulator-name = "vreg_l3a"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1248000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>; + regulator-allow-set-load; + regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM + RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l5a: ldo5 { + regulator-name = "vreg_l5a"; + regulator-min-microvolt = <875000>; + regulator-max-microvolt = <975000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + regulator-allow-set-load; + regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM + RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l7a: ldo7 { + regulator-name = "vreg_l7a"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1900000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + regulator-allow-set-load; + regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM + RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l8a: ldo8 { + regulator-name = "vreg_l8a"; + regulator-min-microvolt = <1150000>; + regulator-max-microvolt = <1350000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + regulator-allow-set-load; + regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM + RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l10a: ldo10 { + regulator-name = "vreg_l10a"; + regulator-min-microvolt = <2950000>; + regulator-max-microvolt = <3312000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + regulator-allow-set-load; + regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM + RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l11a: ldo11 { + regulator-name = "vreg_l11a"; + regulator-min-microvolt = <1232000>; + regulator-max-microvolt = <1260000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>; + regulator-allow-set-load; + regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM + RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l12a: ldo12 { + regulator-name = "vreg_l12a"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1890000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l13a: ldo13 { + regulator-name = "vreg_l13a"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3230000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>; + regulator-allow-set-load; + regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM + RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l15a: ldo15 { + regulator-name = "vreg_l15a"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1904000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>; + regulator-allow-set-load; + regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM + RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l16a: ldo16 { + regulator-name = "vreg_l16a"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3312000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>; + regulator-allow-set-load; + regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM + RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l17a: ldo17 { + regulator-name = "vreg_l17a"; + regulator-min-microvolt = <2950000>; + regulator-max-microvolt = <3312000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + }; +}; + +&gpi_dma0 { + status = "okay"; +}; + +&gpi_dma1 { + status = "okay"; +}; + +&i2c5 { + clock-frequency = <400000>; + status = "okay"; + + eeprom@57 { + compatible = "atmel,24c02"; + reg = <0x57>; + pagesize = <16>; + }; + + eeprom@5f { + compatible = "atmel,24mac602"; + reg = <0x5f>; + pagesize = <16>; + }; +}; + +&mdss { + status = "okay"; +}; + +&mdss_dp0 { + status = "okay"; +}; + +&mdss_dp0_out { + link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000>; + remote-endpoint = <&dp0_connector_in>; +}; + +&mdss_dsi0 { + vdda-supply = <&vreg_l11a>; + status = "okay"; +}; + +&mdss_dsi0_phy { + vcca-supply = <&vreg_l5a>; + status = "okay"; +}; + +&pcie { + perst-gpios = <&tlmm 89 GPIO_ACTIVE_LOW>; + wake-gpios = <&tlmm 100 GPIO_ACTIVE_HIGH>; + + pinctrl-0 = <&pcie_default_state>; + pinctrl-names = "default"; + + status = "okay"; +}; + +&pcie_phy { + vdda-phy-supply = <&vreg_l5a>; + vdda-pll-supply = <&vreg_l12a>; + + status = "okay"; +}; + +&pm8150_gpios { + usb2_en: usb2-en-state { + pins = "gpio10"; + function = "normal"; + output-enable; + power-source = <0>; + }; +}; + +&qupv3_id_0 { + status = "okay"; +}; + +&qupv3_id_1 { + status = "okay"; +}; + +&remoteproc_adsp { + firmware-name = "qcom/qcs615/adsp.mbn"; + + status = "okay"; +}; + +&remoteproc_cdsp { + firmware-name = "qcom/qcs615/cdsp.mbn"; + + status = "okay"; +}; + +&sdhc_1 { + pinctrl-0 = <&sdc1_state_on>; + pinctrl-1 = <&sdc1_state_off>; + pinctrl-names = "default", "sleep"; + + bus-width = <8>; + mmc-ddr-1_8v; + mmc-hs200-1_8v; + mmc-hs400-1_8v; + mmc-hs400-enhanced-strobe; + vmmc-supply = <&vreg_l17a>; + vqmmc-supply = <&vreg_s4a>; + + non-removable; + no-sd; + no-sdio; + + status = "okay"; +}; + +&spi6 { + status = "okay"; + + can@0 { + compatible = "microchip,mcp2515"; + reg = <0>; + clocks = <&can_osc>; + interrupts-extended = <&tlmm 87 IRQ_TYPE_LEVEL_LOW>; + spi-max-frequency = <10000000>; + vdd-supply = <&vreg_v3p3_can>; + xceiver-supply = <&vreg_v5p0_can>; + }; +}; + +&tlmm { + bt_en_state: bt-en-state { + pins = "gpio85"; + function = "gpio"; + bias-pull-down; + output-low; + }; + + pcie_default_state: pcie-default-state { + clkreq-pins { + pins = "gpio90"; + function = "pcie_clk_req"; + drive-strength = <2>; + bias-pull-up; + }; + + perst-pins { + pins = "gpio89"; + function = "gpio"; + drive-strength = <2>; + bias-disable; + }; + + wake-pins { + pins = "gpio100"; + function = "gpio"; + drive-strength = <2>; + bias-pull-up; + }; + }; + + wifi_reg_en_pins_state: wifi-reg-en-pins-state { + pins = "gpio91"; + function = "gpio"; + drive-strength = <8>; + output-high; + bias-pull-up; + }; + + wlan_en_state: wlan-en-state { + pins = "gpio84"; + function = "gpio"; + drive-strength = <16>; + bias-pull-down; + output-low; + }; +}; + +&uart0 { + status = "okay"; +}; + +&uart7 { + status = "okay"; + + bluetooth { + compatible = "qcom,wcn6855-bt"; + firmware-name = "QCA6698/hpnv21", "QCA6698/hpbtfw21.tlv"; + + vddrfacmn-supply = <&vreg_pmu_rfa_cmn>; + vddaon-supply = <&vreg_pmu_aon_0p59>; + vddwlcx-supply = <&vreg_pmu_wlcx_0p8>; + vddwlmx-supply = <&vreg_pmu_wlmx_0p85>; + vddbtcmx-supply = <&vreg_pmu_btcmx_0p85>; + vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>; + vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>; + vddrfa1p8-supply = <&vreg_pmu_rfa_1p7>; + }; +}; + +&usb_1 { + status = "okay"; +}; + +&usb_1_dwc3 { + dr_mode = "host"; +}; + +&usb_hsphy_1 { + vdd-supply = <&vreg_l5a>; + vdda-pll-supply = <&vreg_l12a>; + vdda-phy-dpdm-supply = <&vreg_l13a>; + + status = "okay"; +}; + +&usb_2 { + status = "okay"; +}; + +&usb_2_dwc3 { + dr_mode = "host"; +}; + +&usb_hsphy_2 { + vdd-supply = <&vreg_l5a>; + vdda-pll-supply = <&vreg_l12a>; + vdda-phy-dpdm-supply = <&vreg_l13a>; + + status = "okay"; +}; + +&usb_qmpphy { + vdda-phy-supply = <&vreg_l5a>; + vdda-pll-supply = <&vreg_l12a>; + + status = "okay"; +}; + +&usb_qmpphy_2 { + vdda-phy-supply = <&vreg_l11a>; + vdda-pll-supply = <&vreg_l5a>; + + status = "okay"; +}; + +&ufs_mem_hc { + reset-gpios = <&tlmm 123 GPIO_ACTIVE_LOW>; + vcc-supply = <&vreg_l17a>; + vcc-max-microamp = <600000>; + vccq2-supply = <&vreg_s4a>; + vccq2-max-microamp = <600000>; + + status = "okay"; +}; + +&ufs_mem_phy { + vdda-phy-supply = <&vreg_l5a>; + vdda-pll-supply = <&vreg_l12a>; + + status = "okay"; +}; + +&venus { + status = "okay"; +};arch/arm64/boot/dts/qcom/talos-evk.dts new file +139
-0@@ -0,0 +1,139 @@ +// SPDX-License-Identifier: BSD-3-Clause +/* + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + */ +/dts-v1/; + +#include "talos-evk-som.dtsi" + +/ { + model = "Qualcomm QCS615 IQ 615 EVK"; + compatible = "qcom,talos-evk", "qcom,qcs615", "qcom,sm6150"; + chassis-type = "embedded"; + + aliases { + mmc1 = &sdhc_2; + }; + + dp0-connector { + compatible = "dp-connector"; + label = "DP0"; + type = "full-size"; + + hpd-gpios = <&tlmm 104 GPIO_ACTIVE_HIGH>; + + port { + dp0_connector_in: endpoint { + remote-endpoint = <&mdss_dp0_out>; + }; + }; + }; + + hdmi_connector: hdmi-out { + compatible = "hdmi-connector"; + type = "d"; + + port { + hdmi_con_out: endpoint { + remote-endpoint = <&adv7535_out>; + }; + }; + }; + + vreg_v1p8_out: regulator-v1p8-out { + compatible = "regulator-fixed"; + regulator-name = "vreg-v1p8-out"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + vin-supply = <&vreg_v5p0_out>; + regulator-boot-on; + regulator-always-on; + }; + + vreg_v3p3_out: regulator-v3p3-out { + compatible = "regulator-fixed"; + regulator-name = "vreg-v3p3-out"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + vin-supply = <&vreg_v5p0_out>; + regulator-boot-on; + regulator-always-on; + }; + + vreg_v5p0_out: regulator-v5p0-out { + compatible = "regulator-fixed"; + regulator-name = "vreg-v5p0-out"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + regulator-boot-on; + regulator-always-on; + /* Powered by system 20V rail (USBC_VBUS_IN) */ + }; +}; + +&i2c1 { + clock-frequency = <400000>; + status = "okay"; + + hdmi_bridge: bridge@3d { + compatible = "adi,adv7535"; + reg = <0x3d>; + avdd-supply = <&vreg_v1p8_out>; + dvdd-supply = <&vreg_v1p8_out>; + pvdd-supply = <&vreg_v1p8_out>; + a2vdd-supply = <&vreg_v1p8_out>; + v3p3-supply = <&vreg_v3p3_out>; + interrupts-extended = <&tlmm 26 IRQ_TYPE_LEVEL_LOW>; + adi,dsi-lanes = <4>; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + + adv7535_in: endpoint { + remote-endpoint = <&mdss_dsi0_out>; + }; + }; + + port@1 { + reg = <1>; + + adv7535_out: endpoint { + remote-endpoint = <&hdmi_con_out>; + }; + }; + }; + }; +}; + +&mdss_dsi0_out { + remote-endpoint = <&adv7535_in>; + data-lanes = <0 1 2 3>; +}; + +&pon_pwrkey { + status = "okay"; +}; + +&pon_resin { + linux,code = <KEY_VOLUMEDOWN>; + + status = "okay"; +}; + +&sdhc_2 { + pinctrl-0 = <&sdc2_state_on>; + pinctrl-1 = <&sdc2_state_off>; + pinctrl-names = "default", "sleep"; + + bus-width = <4>; + cd-gpios = <&tlmm 99 GPIO_ACTIVE_LOW>; + + vmmc-supply = <&vreg_l10a>; + vqmmc-supply = <&vreg_s4a>; + + status = "okay"; +};Signature · 1 line
2.34.1
Re: [PATCH v10 5/5] arm64: dts: qcom: talos-evk: Add support for QCS615 talos evk board
Quoted 132 lines · yuanjiey
Quoted 116 lines · Sudarshan Shetty
Add the device tree for the QCS615-based Talos EVK platform. The platform is composed of a System-on-Module following the SMARC standard, and a Carrier Board.
The Carrier Board supports several display configurations, HDMI and LVDS. Both configurations use the same base hardware, with the display selection controlled by a DIP switch.
Use a DTBO file, talos-evk-lvds-auo,g133han01.dtso, which defines an overlay that disables HDMI and adds LVDS. The DTs file talos-evk can describe the HDMI display configurations.
The initial device tree includes support for:
- CPU and memory
- UART
- GPIOs
- Regulators
- PMIC
- Early console
- AT24MAC602 EEPROM
- MCP2515 SPI to CAN
- ADV7535 DSI-to-HDMI bridge
- DisplayPort interface
- SN65DSI84ZXHR DSI-to-LVDS bridge
- Wi-Fi/BTSigned-off-by Sudarshan Shetty <[email protected]>Reviewed-by Dmitry Baryshkov <[email protected]>--- arch/arm64/boot/dts/qcom/Makefile | 4 + .../qcom/talos-evk-lvds-auo,g133han01.dtso | 126 ++++ arch/arm64/boot/dts/qcom/talos-evk-som.dtsi | 598 ++++++++++++++++++ arch/arm64/boot/dts/qcom/talos-evk.dts | 139 ++++ 4 files changed, 867 insertions(+) create mode 100644 arch/arm64/boot/dts/qcom/talos-evk-lvds-auo,g133han01.dtso create mode 100644 arch/arm64/boot/dts/qcom/talos-evk-som.dtsi create mode 100644 arch/arm64/boot/dts/qcom/talos-evk.dtsarch/arm64/boot/dts/qcom/Makefile +4
-0@@ -324,6 +324,10 @@ dtb-$(CONFIG_ARCH_QCOM) += sm8650-mtp.dtb dtb-$(CONFIG_ARCH_QCOM) += sm8650-qrd.dtb dtb-$(CONFIG_ARCH_QCOM) += sm8750-mtp.dtb dtb-$(CONFIG_ARCH_QCOM) += sm8750-qrd.dtb +dtb-$(CONFIG_ARCH_QCOM) += talos-evk.dtb +talos-evk-lvds-auo,g133han01-dtbs := \ + talos-evk.dtb talos-evk-lvds-auo,g133han01.dtbo +dtb-$(CONFIG_ARCH_QCOM) += talos-evk-lvds-auo,g133han01.dtb x1e001de-devkit-el2-dtbs := x1e001de-devkit.dtb x1-el2.dtbo dtb-$(CONFIG_ARCH_QCOM) += x1e001de-devkit.dtb x1e001de-devkit-el2.dtb x1e78100-lenovo-thinkpad-t14s-el2-dtbs := x1e78100-lenovo-thinkpad-t14s.dtb x1-el2.dtboarch/arm64/boot/dts/qcom/talos-evk-lvds-auo,g133han01.dtso new file +57
-0@@ -0,0 +1,126 @@ +// SPDX-License-Identifier: BSD-3-Clause +/* + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + */ +/dts-v1/; +/plugin/; + +#include <dt-bindings/gpio/gpio.h> + +&{/} { + backlight: backlight { + compatible = "gpio-backlight"; + gpios = <&tlmm 59 GPIO_ACTIVE_HIGH>, + <&tlmm 115 GPIO_ACTIVE_HIGH>; + default-on; + }; + + hdmi_connector: hdmi-out { + status = "disabled"; + }; + + panel-lvds { + compatible = "auo,g133han01"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + /* LVDS A (Odd pixels) */ + port@0 { + reg = <0>; + dual-lvds-odd-pixels; + + lvds_panel_out_a: endpoint { + remote-endpoint = <&sn65dsi84_out_a>; + }; + }; + + /* LVDS B (Even pixels) */ + port@1 { + reg = <1>; + dual-lvds-even-pixels; + + lvds_panel_out_b: endpoint { + remote-endpoint = <&sn65dsi84_out_b>; + }; + }; + }; + }; +}; + +&i2c1 { + clock-frequency = <400000>; + + status = "okay"; + + hdmi_bridge: bridge@3d {arch/arm64/boot/dts/qcom/talos-evk-lvds-auo,g133han01.dtso line 67
Quoted 10 lines
arch/arm64/boot/dts/qcom/talos-evk-lvds-auo,g133han01.dtso new file +10
-0+ status = "disabled"; + }; + + lvds_bridge: bridge@2c { + compatible = "ti,sn65dsi84"; + reg = <0x2c>; + enable-gpios = <&tlmm 42 GPIO_ACTIVE_HIGH>; + ti,dsi-lanes = <4>; + ti,lvds-format = "jeida-24"; + ti,lvds-bpp = <24>;These properties can work?
dtbinding check says:
Quoted 15 lines
/local/mnt/workspace/yyj/develop_linux/git-repository/Talos_repository/upstream_linux-next/linux-sheepdog/linux-next/arch/arm64/boot/dts/qcom/talos-evk-lvds-auo,g133han01.dtb: panel-lvds: 'power-supply' is a required property
from schema $id: http://devicetree.org/schemas/display/panel/panel-simple-lvds-dual-ports.yaml#
/local/mnt/workspace/yyj/develop_linux/git-repository/Talos_repository/upstream_linux-next/linux-sheepdog/linux-next/arch/arm64/boot/dts/qcom/talos-evk-lvds-auo,g133han01.dtb: clock-controller@100000: 'clock-names' is a required property
from schema $id: http://devicetree.org/schemas/clock/qcom,qcs615-gcc.yaml#
/local/mnt/workspace/yyj/develop_linux/git-repository/Talos_repository/upstream_linux-next/linux-sheepdog/linux-next/arch/arm64/boot/dts/qcom/talos-evk-lvds-auo,g133han01.dtb: bridge@2c: ports:port@0:endpoint:data-lanes:0: 1 was expected
from schema $id: http://devicetree.org/schemas/display/bridge/ti,sn65dsi83.yaml#
/local/mnt/workspace/yyj/develop_linux/git-repository/Talos_repository/upstream_linux-next/linux-sheepdog/linux-next/arch/arm64/boot/dts/qcom/talos-evk-lvds-auo,g133han01.dtb: bridge@2c: ports:port@0:endpoint:data-lanes:1: 2 was expected
from schema $id: http://devicetree.org/schemas/display/bridge/ti,sn65dsi83.yaml#
/local/mnt/workspace/yyj/develop_linux/git-repository/Talos_repository/upstream_linux-next/linux-sheepdog/linux-next/arch/arm64/boot/dts/qcom/talos-evk-lvds-auo,g133han01.dtb: bridge@2c: ports:port@0:endpoint:data-lanes:2: 3 was expected
from schema $id: http://devicetree.org/schemas/display/bridge/ti,sn65dsi83.yaml#
/local/mnt/workspace/yyj/develop_linux/git-repository/Talos_repository/upstream_linux-next/linux-sheepdog/linux-next/arch/arm64/boot/dts/qcom/talos-evk-lvds-auo,g133han01.dtb: bridge@2c: ports:port@0:endpoint:data-lanes:3: 4 was expected
from schema $id: http://devicetree.org/schemas/display/bridge/ti,sn65dsi83.yaml#
/local/mnt/workspace/yyj/develop_linux/git-repository/Talos_repository/upstream_linux-next/linux-sheepdog/linux-next/arch/arm64/boot/dts/qcom/talos-evk-lvds-auo,g133han01.dtb: bridge@2c: 'ti,dsi-lanes', 'ti,lvds-bpp', 'ti,lvds-format' do not match any of the regexes: 'pinctrl-[0-9]+'
from schema $id: http://devicetree.org/schemas/display/bridge/ti,sn65dsi83.yaml#
With regard to the power-supply property for the LVDS panel: the panel does not incorporate a dedicated power regulator, and therefore this property cannot be defined.
Concerning the data-lanes configuration, the LVDS display operates correctly only with <0,1,2,3> in my environment. Modifying this to <1,2,3,4> as proposed, prevents the display from initializing.
Quoted 812 lines
Thanks,
YuanjieQuoted 809 lines
arch/arm64/boot/dts/qcom/talos-evk-lvds-auo,g133han01.dtso new file +58
-0+ ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + + sn65dsi84_in: endpoint { + data-lanes = <0 1 2 3>; + remote-endpoint = <&mdss_dsi0_out>; + }; + }; + + port@2 { + reg = <2>; + + sn65dsi84_out_a: endpoint { + data-lanes = <0 1 2 3>; + remote-endpoint = <&lvds_panel_out_a>; + }; + }; + + port@3 { + reg = <3>; + + sn65dsi84_out_b: endpoint { + data-lanes = <0 1 2 3>; + remote-endpoint = <&lvds_panel_out_b>; + }; + }; + }; + }; +}; + +&mdss_dsi0 { + vdda-supply = <&vreg_l11a>; + + status = "okay"; +}; + +&mdss_dsi0_out { + remote-endpoint = <&sn65dsi84_in>; + data-lanes = <0 1 2 3>; +}; + +&tlmm { + lcd_bklt_en: lcd-bklt-en-state { + pins = "gpio115"; + function = "gpio"; + bias-disable; + }; + + lcd_bklt_pwm: lcd-bklt-pwm-state { + pins = "gpio59"; + function = "gpio"; + bias-disable; + }; +};arch/arm64/boot/dts/qcom/talos-evk-som.dtsi new file +598
-0@@ -0,0 +1,598 @@ +// SPDX-License-Identifier: BSD-3-Clause +/* + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + */ +/dts-v1/; + +#include <dt-bindings/gpio/gpio.h> +#include <dt-bindings/regulator/qcom,rpmh-regulator.h> +#include "talos.dtsi" +#include "pm8150.dtsi" +/ { + aliases { + mmc0 = &sdhc_1; + serial0 = &uart0; + serial1 = &uart7; + }; + + chosen { + stdout-path = "serial0:115200n8"; + }; + + clocks { + can_osc: can-oscillator { + compatible = "fixed-clock"; + clock-frequency = <20000000>; + #clock-cells = <0>; + }; + + sleep_clk: sleep-clk { + compatible = "fixed-clock"; + clock-frequency = <32764>; + #clock-cells = <0>; + }; + + xo_board_clk: xo-board-clk { + compatible = "fixed-clock"; + clock-frequency = <38400000>; + #clock-cells = <0>; + }; + }; + + regulator-usb2-vbus { + compatible = "regulator-fixed"; + regulator-name = "USB2_VBUS"; + gpio = <&pm8150_gpios 10 GPIO_ACTIVE_HIGH>; + pinctrl-0 = <&usb2_en>; + pinctrl-names = "default"; + enable-active-high; + regulator-always-on; + }; + + vreg_conn_1p8: regulator-conn-1p8 { + compatible = "regulator-fixed"; + regulator-name = "vreg_conn_1p8"; + startup-delay-us = <4000>; + enable-active-high; + gpio = <&pm8150_gpios 1 GPIO_ACTIVE_HIGH>; + }; + + vreg_conn_pa: regulator-conn-pa { + compatible = "regulator-fixed"; + regulator-name = "vreg_conn_pa"; + startup-delay-us = <4000>; + enable-active-high; + gpio = <&pm8150_gpios 6 GPIO_ACTIVE_HIGH>; + }; + + vreg_v3p3_can: regulator-v3p3-can { + compatible = "regulator-fixed"; + regulator-name = "vreg-v3p3-can"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + regulator-always-on; + }; + + vreg_v5p0_can: regulator-v5p0-can { + compatible = "regulator-fixed"; + regulator-name = "vreg-v5p0-can"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + regulator-boot-on; + regulator-always-on; + }; + + wcn6855-pmu { + compatible = "qcom,wcn6855-pmu"; + + pinctrl-0 = <&bt_en_state>, <&wlan_en_state>; + pinctrl-names = "default"; + + bt-enable-gpios = <&tlmm 85 GPIO_ACTIVE_HIGH>; + wlan-enable-gpios = <&tlmm 84 GPIO_ACTIVE_HIGH>; + + vddio-supply = <&vreg_conn_pa>; + vddaon-supply = <&vreg_s5a>; + vddpmu-supply = <&vreg_conn_1p8>; + vddpmumx-supply = <&vreg_conn_1p8>; + vddpmucx-supply = <&vreg_conn_pa>; + vddrfa0p95-supply = <&vreg_s5a>; + vddrfa1p3-supply = <&vreg_s6a>; + vddrfa1p9-supply = <&vreg_l15a>; + vddpcie1p3-supply = <&vreg_s6a>; + vddpcie1p9-supply = <&vreg_l15a>; + + regulators { + vreg_pmu_rfa_cmn: ldo0 { + regulator-name = "vreg_pmu_rfa_cmn"; + }; + + vreg_pmu_aon_0p59: ldo1 { + regulator-name = "vreg_pmu_aon_0p59"; + }; + + vreg_pmu_wlcx_0p8: ldo2 { + regulator-name = "vreg_pmu_wlcx_0p8"; + }; + + vreg_pmu_wlmx_0p85: ldo3 { + regulator-name = "vreg_pmu_wlmx_0p85"; + }; + + vreg_pmu_btcmx_0p85: ldo4 { + regulator-name = "vreg_pmu_btcmx_0p85"; + }; + + vreg_pmu_rfa_0p8: ldo5 { + regulator-name = "vreg_pmu_rfa_0p8"; + }; + + vreg_pmu_rfa_1p2: ldo6 { + regulator-name = "vreg_pmu_rfa_1p2"; + }; + + vreg_pmu_rfa_1p7: ldo7 { + regulator-name = "vreg_pmu_rfa_1p7"; + }; + + vreg_pmu_pcie_0p9: ldo8 { + regulator-name = "vreg_pmu_pcie_0p9"; + }; + + vreg_pmu_pcie_1p8: ldo9 { + regulator-name = "vreg_pmu_pcie_1p8"; + }; + }; + }; + + wifi_1p8v: regulator-wifi-1p8v { + compatible = "regulator-fixed"; + regulator-name = "wifi_1p8v"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + gpio = <&tlmm 91 GPIO_ACTIVE_HIGH>; + enable-active-high; + pinctrl-names = "default"; + pinctrl-0 = <&wifi_reg_en_pins_state>; + regulator-boot-on; + regulator-always-on; + }; + + wifi_3p85v: regulator-wifi-3p85v { + compatible = "regulator-fixed"; + regulator-name = "wifi_3p85v"; + regulator-min-microvolt = <3850000>; + regulator-max-microvolt = <3850000>; + gpio = <&tlmm 91 GPIO_ACTIVE_HIGH>; + enable-active-high; + pinctrl-names = "default"; + pinctrl-0 = <&wifi_reg_en_pins_state>; + regulator-boot-on; + regulator-always-on; + }; +}; + +&apps_rsc { + regulators-0 { + compatible = "qcom,pm8150-rpmh-regulators"; + qcom,pmic-id = "a"; + + vreg_s3a: smps3 { + regulator-name = "vreg_s3a"; + regulator-min-microvolt = <600000>; + regulator-max-microvolt = <650000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_s4a: smps4 { + regulator-name = "vreg_s4a"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1829000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_s5a: smps5 { + regulator-name = "vreg_s5a"; + regulator-min-microvolt = <1896000>; + regulator-max-microvolt = <2040000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_s6a: smps6 { + regulator-name = "vreg_s6a"; + regulator-min-microvolt = <1304000>; + regulator-max-microvolt = <1404000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l1a: ldo1 { + regulator-name = "vreg_l1a"; + regulator-min-microvolt = <488000>; + regulator-max-microvolt = <852000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>; + regulator-allow-set-load; + regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM + RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l2a: ldo2 { + regulator-name = "vreg_l2a"; + regulator-min-microvolt = <1650000>; + regulator-max-microvolt = <3100000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>; + regulator-allow-set-load; + regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM + RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l3a: ldo3 { + regulator-name = "vreg_l3a"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1248000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>; + regulator-allow-set-load; + regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM + RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l5a: ldo5 { + regulator-name = "vreg_l5a"; + regulator-min-microvolt = <875000>; + regulator-max-microvolt = <975000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + regulator-allow-set-load; + regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM + RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l7a: ldo7 { + regulator-name = "vreg_l7a"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1900000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + regulator-allow-set-load; + regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM + RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l8a: ldo8 { + regulator-name = "vreg_l8a"; + regulator-min-microvolt = <1150000>; + regulator-max-microvolt = <1350000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + regulator-allow-set-load; + regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM + RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l10a: ldo10 { + regulator-name = "vreg_l10a"; + regulator-min-microvolt = <2950000>; + regulator-max-microvolt = <3312000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + regulator-allow-set-load; + regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM + RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l11a: ldo11 { + regulator-name = "vreg_l11a"; + regulator-min-microvolt = <1232000>; + regulator-max-microvolt = <1260000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>; + regulator-allow-set-load; + regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM + RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l12a: ldo12 { + regulator-name = "vreg_l12a"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1890000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l13a: ldo13 { + regulator-name = "vreg_l13a"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3230000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>; + regulator-allow-set-load; + regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM + RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l15a: ldo15 { + regulator-name = "vreg_l15a"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1904000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>; + regulator-allow-set-load; + regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM + RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l16a: ldo16 { + regulator-name = "vreg_l16a"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3312000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>; + regulator-allow-set-load; + regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM + RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l17a: ldo17 { + regulator-name = "vreg_l17a"; + regulator-min-microvolt = <2950000>; + regulator-max-microvolt = <3312000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + }; +}; + +&gpi_dma0 { + status = "okay"; +}; + +&gpi_dma1 { + status = "okay"; +}; + +&i2c5 { + clock-frequency = <400000>; + status = "okay"; + + eeprom@57 { + compatible = "atmel,24c02"; + reg = <0x57>; + pagesize = <16>; + }; + + eeprom@5f { + compatible = "atmel,24mac602"; + reg = <0x5f>; + pagesize = <16>; + }; +}; + +&mdss { + status = "okay"; +}; + +&mdss_dp0 { + status = "okay"; +}; + +&mdss_dp0_out { + link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000>; + remote-endpoint = <&dp0_connector_in>; +}; + +&mdss_dsi0 { + vdda-supply = <&vreg_l11a>; + status = "okay"; +}; + +&mdss_dsi0_phy { + vcca-supply = <&vreg_l5a>; + status = "okay"; +}; + +&pcie { + perst-gpios = <&tlmm 89 GPIO_ACTIVE_LOW>; + wake-gpios = <&tlmm 100 GPIO_ACTIVE_HIGH>; + + pinctrl-0 = <&pcie_default_state>; + pinctrl-names = "default"; + + status = "okay"; +}; + +&pcie_phy { + vdda-phy-supply = <&vreg_l5a>; + vdda-pll-supply = <&vreg_l12a>; + + status = "okay"; +}; + +&pm8150_gpios { + usb2_en: usb2-en-state { + pins = "gpio10"; + function = "normal"; + output-enable; + power-source = <0>; + }; +}; + +&qupv3_id_0 { + status = "okay"; +}; + +&qupv3_id_1 { + status = "okay"; +}; + +&remoteproc_adsp { + firmware-name = "qcom/qcs615/adsp.mbn"; + + status = "okay"; +}; + +&remoteproc_cdsp { + firmware-name = "qcom/qcs615/cdsp.mbn"; + + status = "okay"; +}; + +&sdhc_1 { + pinctrl-0 = <&sdc1_state_on>; + pinctrl-1 = <&sdc1_state_off>; + pinctrl-names = "default", "sleep"; + + bus-width = <8>; + mmc-ddr-1_8v; + mmc-hs200-1_8v; + mmc-hs400-1_8v; + mmc-hs400-enhanced-strobe; + vmmc-supply = <&vreg_l17a>; + vqmmc-supply = <&vreg_s4a>; + + non-removable; + no-sd; + no-sdio; + + status = "okay"; +}; + +&spi6 { + status = "okay"; + + can@0 { + compatible = "microchip,mcp2515"; + reg = <0>; + clocks = <&can_osc>; + interrupts-extended = <&tlmm 87 IRQ_TYPE_LEVEL_LOW>; + spi-max-frequency = <10000000>; + vdd-supply = <&vreg_v3p3_can>; + xceiver-supply = <&vreg_v5p0_can>; + }; +}; + +&tlmm { + bt_en_state: bt-en-state { + pins = "gpio85"; + function = "gpio"; + bias-pull-down; + output-low; + }; + + pcie_default_state: pcie-default-state { + clkreq-pins { + pins = "gpio90"; + function = "pcie_clk_req"; + drive-strength = <2>; + bias-pull-up; + }; + + perst-pins { + pins = "gpio89"; + function = "gpio"; + drive-strength = <2>; + bias-disable; + }; + + wake-pins { + pins = "gpio100"; + function = "gpio"; + drive-strength = <2>; + bias-pull-up; + }; + }; + + wifi_reg_en_pins_state: wifi-reg-en-pins-state { + pins = "gpio91"; + function = "gpio"; + drive-strength = <8>; + output-high; + bias-pull-up; + }; + + wlan_en_state: wlan-en-state { + pins = "gpio84"; + function = "gpio"; + drive-strength = <16>; + bias-pull-down; + output-low; + }; +}; + +&uart0 { + status = "okay"; +}; + +&uart7 { + status = "okay"; + + bluetooth { + compatible = "qcom,wcn6855-bt"; + firmware-name = "QCA6698/hpnv21", "QCA6698/hpbtfw21.tlv"; + + vddrfacmn-supply = <&vreg_pmu_rfa_cmn>; + vddaon-supply = <&vreg_pmu_aon_0p59>; + vddwlcx-supply = <&vreg_pmu_wlcx_0p8>; + vddwlmx-supply = <&vreg_pmu_wlmx_0p85>; + vddbtcmx-supply = <&vreg_pmu_btcmx_0p85>; + vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>; + vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>; + vddrfa1p8-supply = <&vreg_pmu_rfa_1p7>; + }; +}; + +&usb_1 { + status = "okay"; +}; + +&usb_1_dwc3 { + dr_mode = "host"; +}; + +&usb_hsphy_1 { + vdd-supply = <&vreg_l5a>; + vdda-pll-supply = <&vreg_l12a>; + vdda-phy-dpdm-supply = <&vreg_l13a>; + + status = "okay"; +}; + +&usb_2 { + status = "okay"; +}; + +&usb_2_dwc3 { + dr_mode = "host"; +}; + +&usb_hsphy_2 { + vdd-supply = <&vreg_l5a>; + vdda-pll-supply = <&vreg_l12a>; + vdda-phy-dpdm-supply = <&vreg_l13a>; + + status = "okay"; +}; + +&usb_qmpphy { + vdda-phy-supply = <&vreg_l5a>; + vdda-pll-supply = <&vreg_l12a>; + + status = "okay"; +}; + +&usb_qmpphy_2 { + vdda-phy-supply = <&vreg_l11a>; + vdda-pll-supply = <&vreg_l5a>; + + status = "okay"; +}; + +&ufs_mem_hc { + reset-gpios = <&tlmm 123 GPIO_ACTIVE_LOW>; + vcc-supply = <&vreg_l17a>; + vcc-max-microamp = <600000>; + vccq2-supply = <&vreg_s4a>; + vccq2-max-microamp = <600000>; + + status = "okay"; +}; + +&ufs_mem_phy { + vdda-phy-supply = <&vreg_l5a>; + vdda-pll-supply = <&vreg_l12a>; + + status = "okay"; +}; + +&venus { + status = "okay"; +};arch/arm64/boot/dts/qcom/talos-evk.dts new file +139
-0@@ -0,0 +1,139 @@ +// SPDX-License-Identifier: BSD-3-Clause +/* + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + */ +/dts-v1/; + +#include "talos-evk-som.dtsi" + +/ { + model = "Qualcomm QCS615 IQ 615 EVK"; + compatible = "qcom,talos-evk", "qcom,qcs615", "qcom,sm6150"; + chassis-type = "embedded"; + + aliases { + mmc1 = &sdhc_2; + }; + + dp0-connector { + compatible = "dp-connector"; + label = "DP0"; + type = "full-size"; + + hpd-gpios = <&tlmm 104 GPIO_ACTIVE_HIGH>; + + port { + dp0_connector_in: endpoint { + remote-endpoint = <&mdss_dp0_out>; + }; + }; + }; + + hdmi_connector: hdmi-out { + compatible = "hdmi-connector"; + type = "d"; + + port { + hdmi_con_out: endpoint { + remote-endpoint = <&adv7535_out>; + }; + }; + }; + + vreg_v1p8_out: regulator-v1p8-out { + compatible = "regulator-fixed"; + regulator-name = "vreg-v1p8-out"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + vin-supply = <&vreg_v5p0_out>; + regulator-boot-on; + regulator-always-on; + }; + + vreg_v3p3_out: regulator-v3p3-out { + compatible = "regulator-fixed"; + regulator-name = "vreg-v3p3-out"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + vin-supply = <&vreg_v5p0_out>; + regulator-boot-on; + regulator-always-on; + }; + + vreg_v5p0_out: regulator-v5p0-out { + compatible = "regulator-fixed"; + regulator-name = "vreg-v5p0-out"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + regulator-boot-on; + regulator-always-on; + /* Powered by system 20V rail (USBC_VBUS_IN) */ + }; +}; + +&i2c1 { + clock-frequency = <400000>; + status = "okay"; + + hdmi_bridge: bridge@3d { + compatible = "adi,adv7535"; + reg = <0x3d>; + avdd-supply = <&vreg_v1p8_out>; + dvdd-supply = <&vreg_v1p8_out>; + pvdd-supply = <&vreg_v1p8_out>; + a2vdd-supply = <&vreg_v1p8_out>; + v3p3-supply = <&vreg_v3p3_out>; + interrupts-extended = <&tlmm 26 IRQ_TYPE_LEVEL_LOW>; + adi,dsi-lanes = <4>; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + + adv7535_in: endpoint { + remote-endpoint = <&mdss_dsi0_out>; + }; + }; + + port@1 { + reg = <1>; + + adv7535_out: endpoint { + remote-endpoint = <&hdmi_con_out>; + }; + }; + }; + }; +}; + +&mdss_dsi0_out { + remote-endpoint = <&adv7535_in>; + data-lanes = <0 1 2 3>; +}; + +&pon_pwrkey { + status = "okay"; +}; + +&pon_resin { + linux,code = <KEY_VOLUMEDOWN>; + + status = "okay"; +}; + +&sdhc_2 { + pinctrl-0 = <&sdc2_state_on>; + pinctrl-1 = <&sdc2_state_off>; + pinctrl-names = "default", "sleep"; + + bus-width = <4>; + cd-gpios = <&tlmm 99 GPIO_ACTIVE_LOW>; + + vmmc-supply = <&vreg_l10a>; + vqmmc-supply = <&vreg_s4a>; + + status = "okay"; +};Signature · 1 line
2.34.1
Re: [PATCH v10 5/5] arm64: dts: qcom: talos-evk: Add support for QCS615 talos evk board
Quoted 7 lines · On 1/8/26 10:29 AM, [email protected] wrote:
Quoted 4 lines · yuanjiey
Quoted 3 lines · Sudarshan Shetty
Add the device tree for the QCS615-based Talos EVK platform. The platform is composed of a System-on-Module following the SMARC standard, and a Carrier Board.
[...]
Quoted 20 lines
Quoted 4 lines
These properties can work?
dtbinding check says:
Quoted 15 lines
/local/mnt/workspace/yyj/develop_linux/git-repository/Talos_repository/upstream_linux-next/linux-sheepdog/linux-next/arch/arm64/boot/dts/qcom/talos-evk-lvds-auo,g133han01.dtb: panel-lvds: 'power-supply' is a required property
from schema $id: http://devicetree.org/schemas/display/panel/panel-simple-lvds-dual-ports.yaml#
/local/mnt/workspace/yyj/develop_linux/git-repository/Talos_repository/upstream_linux-next/linux-sheepdog/linux-next/arch/arm64/boot/dts/qcom/talos-evk-lvds-auo,g133han01.dtb: clock-controller@100000: 'clock-names' is a required property
from schema $id: http://devicetree.org/schemas/clock/qcom,qcs615-gcc.yaml#
/local/mnt/workspace/yyj/develop_linux/git-repository/Talos_repository/upstream_linux-next/linux-sheepdog/linux-next/arch/arm64/boot/dts/qcom/talos-evk-lvds-auo,g133han01.dtb: bridge@2c: ports:port@0:endpoint:data-lanes:0: 1 was expected
from schema $id: http://devicetree.org/schemas/display/bridge/ti,sn65dsi83.yaml#
/local/mnt/workspace/yyj/develop_linux/git-repository/Talos_repository/upstream_linux-next/linux-sheepdog/linux-next/arch/arm64/boot/dts/qcom/talos-evk-lvds-auo,g133han01.dtb: bridge@2c: ports:port@0:endpoint:data-lanes:1: 2 was expected
from schema $id: http://devicetree.org/schemas/display/bridge/ti,sn65dsi83.yaml#
/local/mnt/workspace/yyj/develop_linux/git-repository/Talos_repository/upstream_linux-next/linux-sheepdog/linux-next/arch/arm64/boot/dts/qcom/talos-evk-lvds-auo,g133han01.dtb: bridge@2c: ports:port@0:endpoint:data-lanes:2: 3 was expected
from schema $id: http://devicetree.org/schemas/display/bridge/ti,sn65dsi83.yaml#
/local/mnt/workspace/yyj/develop_linux/git-repository/Talos_repository/upstream_linux-next/linux-sheepdog/linux-next/arch/arm64/boot/dts/qcom/talos-evk-lvds-auo,g133han01.dtb: bridge@2c: ports:port@0:endpoint:data-lanes:3: 4 was expected
from schema $id: http://devicetree.org/schemas/display/bridge/ti,sn65dsi83.yaml#
/local/mnt/workspace/yyj/develop_linux/git-repository/Talos_repository/upstream_linux-next/linux-sheepdog/linux-next/arch/arm64/boot/dts/qcom/talos-evk-lvds-auo,g133han01.dtb: bridge@2c: 'ti,dsi-lanes', 'ti,lvds-bpp', 'ti,lvds-format' do not match any of the regexes: 'pinctrl-[0-9]+'
from schema $id: http://devicetree.org/schemas/display/bridge/ti,sn65dsi83.yaml#
Quoted 6 lines
With regard to the power-supply property for the LVDS panel: the panel does not incorporate a dedicated power regulator, and therefore this property cannot be defined.
Concerning the data-lanes configuration, the LVDS display operates correctly only with <0,1,2,3> in my environment. Modifying this to <1,2,3,4> as proposed, prevents the display from initializing.
You'll need to fix the bindings checker errors one way or another.
For the power-supply, I think it may be made optional
For data-lanes, I'm not sure it's even parsed. Are you sure altering the value under the TI bridge endpoint (*not* mdss_dsi0) causes issues?
Konrad
Re: [PATCH v10 5/5] arm64: dts: qcom: talos-evk: Add support for QCS615 talos evk board
Quoted 38 lines · Konrad Dybcio
Quoted 7 lines · On 1/8/26 10:29 AM, [email protected] wrote:
Quoted 4 lines · yuanjiey
Quoted 3 lines · Sudarshan Shetty
Add the device tree for the QCS615-based Talos EVK platform. The platform is composed of a System-on-Module following the SMARC standard, and a Carrier Board.
[...]
Quoted 20 lines
Quoted 4 lines
These properties can work?
dtbinding check says:
Quoted 15 lines
/local/mnt/workspace/yyj/develop_linux/git-repository/Talos_repository/upstream_linux-next/linux-sheepdog/linux-next/arch/arm64/boot/dts/qcom/talos-evk-lvds-auo,g133han01.dtb: panel-lvds: 'power-supply' is a required property
from schema $id: http://devicetree.org/schemas/display/panel/panel-simple-lvds-dual-ports.yaml#
/local/mnt/workspace/yyj/develop_linux/git-repository/Talos_repository/upstream_linux-next/linux-sheepdog/linux-next/arch/arm64/boot/dts/qcom/talos-evk-lvds-auo,g133han01.dtb: clock-controller@100000: 'clock-names' is a required property
from schema $id: http://devicetree.org/schemas/clock/qcom,qcs615-gcc.yaml#
/local/mnt/workspace/yyj/develop_linux/git-repository/Talos_repository/upstream_linux-next/linux-sheepdog/linux-next/arch/arm64/boot/dts/qcom/talos-evk-lvds-auo,g133han01.dtb: bridge@2c: ports:port@0:endpoint:data-lanes:0: 1 was expected
from schema $id: http://devicetree.org/schemas/display/bridge/ti,sn65dsi83.yaml#
/local/mnt/workspace/yyj/develop_linux/git-repository/Talos_repository/upstream_linux-next/linux-sheepdog/linux-next/arch/arm64/boot/dts/qcom/talos-evk-lvds-auo,g133han01.dtb: bridge@2c: ports:port@0:endpoint:data-lanes:1: 2 was expected
from schema $id: http://devicetree.org/schemas/display/bridge/ti,sn65dsi83.yaml#
/local/mnt/workspace/yyj/develop_linux/git-repository/Talos_repository/upstream_linux-next/linux-sheepdog/linux-next/arch/arm64/boot/dts/qcom/talos-evk-lvds-auo,g133han01.dtb: bridge@2c: ports:port@0:endpoint:data-lanes:2: 3 was expected
from schema $id: http://devicetree.org/schemas/display/bridge/ti,sn65dsi83.yaml#
/local/mnt/workspace/yyj/develop_linux/git-repository/Talos_repository/upstream_linux-next/linux-sheepdog/linux-next/arch/arm64/boot/dts/qcom/talos-evk-lvds-auo,g133han01.dtb: bridge@2c: ports:port@0:endpoint:data-lanes:3: 4 was expected
from schema $id: http://devicetree.org/schemas/display/bridge/ti,sn65dsi83.yaml#
/local/mnt/workspace/yyj/develop_linux/git-repository/Talos_repository/upstream_linux-next/linux-sheepdog/linux-next/arch/arm64/boot/dts/qcom/talos-evk-lvds-auo,g133han01.dtb: bridge@2c: 'ti,dsi-lanes', 'ti,lvds-bpp', 'ti,lvds-format' do not match any of the regexes: 'pinctrl-[0-9]+'
from schema $id: http://devicetree.org/schemas/display/bridge/ti,sn65dsi83.yaml#Quoted 6 lines
With regard to the power-supply property for the LVDS panel: the panel does not incorporate a dedicated power regulator, and therefore this property cannot be defined.
Concerning the data-lanes configuration, the LVDS display operates correctly only with <0,1,2,3> in my environment. Modifying this to <1,2,3,4> as proposed, prevents the display from initializing.
Quoted 7 lines
You'll need to fix the bindings checker errors one way or another.
For the power-supply, I think it may be made optional
For data-lanes, I'm not sure it's even parsed. Are you sure altering the value under the TI bridge endpoint (*not*
mdss_dsi0) causes issues?
Okay, I will fix the bindings checker errors in the next patch. Regarding data-lanes: altering the value under mdss_dsi0 is causing the issue, not the value under the TI bridge endpoint. I will address this properly in the next patch.
Quoted 2 lines
Konrad