* [PATCH v3 1/5] dt-bindings: display: Add bindings for JDI LPM102A188A
2023-08-07 13:33 [PATCH v3 0/5] Add JDI LPM102A188A display panel support Diogo Ivo
@ 2023-08-07 13:33 ` Diogo Ivo
2023-08-07 13:33 ` [PATCH v3 3/5] arm64: dts: smaug: Add DSI/CSI regulator Diogo Ivo
` (5 subsequent siblings)
6 siblings, 0 replies; 9+ messages in thread
From: Diogo Ivo @ 2023-08-07 13:33 UTC (permalink / raw)
To: neil.armstrong, sam, airlied, daniel, robh+dt,
krzysztof.kozlowski+dt, conor+dt, dri-devel, devicetree
Cc: Diogo Ivo, Krzysztof Kozlowski
The LPM102A188A is a 10.2" 2560x1800 IPS panel found in
the Google Pixel C.
Signed-off-by: Diogo Ivo <diogo.ivo@tecnico.ulisboa.pt>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
---
Changes in v2:
- removed the touch screen property
Changes in v3:
- add Reviewed-by from Krzysztof Kozlowski
.../display/panel/jdi,lpm102a188a.yaml | 94 +++++++++++++++++++
1 file changed, 94 insertions(+)
create mode 100644 Documentation/devicetree/bindings/display/panel/jdi,lpm102a188a.yaml
diff --git a/Documentation/devicetree/bindings/display/panel/jdi,lpm102a188a.yaml b/Documentation/devicetree/bindings/display/panel/jdi,lpm102a188a.yaml
new file mode 100644
index 000000000000..2f4d27a309a7
--- /dev/null
+++ b/Documentation/devicetree/bindings/display/panel/jdi,lpm102a188a.yaml
@@ -0,0 +1,94 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/display/panel/jdi,lpm102a188a.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: JDI LPM102A188A 2560x1800 10.2" DSI Panel
+
+maintainers:
+ - Diogo Ivo <diogo.ivo@tecnico.ulisboa.pt>
+
+description: |
+ This panel requires a dual-channel DSI host to operate. It supports two modes:
+ - left-right: each channel drives the left or right half of the screen
+ - even-odd: each channel drives the even or odd lines of the screen
+
+ Each of the DSI channels controls a separate DSI peripheral. The peripheral
+ driven by the first link (DSI-LINK1) is considered the primary peripheral
+ and controls the device. The 'link2' property contains a phandle to the
+ peripheral driven by the second link (DSI-LINK2).
+
+allOf:
+ - $ref: panel-common.yaml#
+
+properties:
+ compatible:
+ const: jdi,lpm102a188a
+
+ reg: true
+ enable-gpios: true
+ reset-gpios: true
+ power-supply: true
+ backlight: true
+
+ ddi-supply:
+ description: The regulator that provides IOVCC (1.8V).
+
+ link2:
+ $ref: /schemas/types.yaml#/definitions/phandle
+ description: |
+ phandle to the DSI peripheral on the secondary link. Note that the
+ presence of this property marks the containing node as DSI-LINK1.
+
+required:
+ - compatible
+ - reg
+
+if:
+ required:
+ - link2
+then:
+ required:
+ - power-supply
+ - ddi-supply
+ - enable-gpios
+ - reset-gpios
+
+additionalProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/gpio/gpio.h>
+ #include <dt-bindings/gpio/tegra-gpio.h>
+
+ dsia: dsi@54300000 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ reg = <0x0 0x54300000 0x0 0x00040000>;
+
+ link2: panel@0 {
+ compatible = "jdi,lpm102a188a";
+ reg = <0>;
+ };
+ };
+
+ dsib: dsi@54400000{
+ #address-cells = <1>;
+ #size-cells = <0>;
+ reg = <0x0 0x54400000 0x0 0x00040000>;
+ nvidia,ganged-mode = <&dsia>;
+
+ link1: panel@0 {
+ compatible = "jdi,lpm102a188a";
+ reg = <0>;
+ power-supply = <&pplcd_vdd>;
+ ddi-supply = <&pp1800_lcdio>;
+ enable-gpios = <&gpio TEGRA_GPIO(V, 1) GPIO_ACTIVE_HIGH>;
+ reset-gpios = <&gpio TEGRA_GPIO(V, 2) GPIO_ACTIVE_LOW>;
+ link2 = <&link2>;
+ backlight = <&backlight>;
+ };
+ };
+
+...
--
2.41.0
^ permalink raw reply related [flat|nested] 9+ messages in thread* [PATCH v3 3/5] arm64: dts: smaug: Add DSI/CSI regulator
2023-08-07 13:33 [PATCH v3 0/5] Add JDI LPM102A188A display panel support Diogo Ivo
2023-08-07 13:33 ` [PATCH v3 1/5] dt-bindings: display: Add bindings for JDI LPM102A188A Diogo Ivo
@ 2023-08-07 13:33 ` Diogo Ivo
2023-08-07 13:33 ` [PATCH v3 4/5] arm64: dts: smaug: Add backlight node Diogo Ivo
` (4 subsequent siblings)
6 siblings, 0 replies; 9+ messages in thread
From: Diogo Ivo @ 2023-08-07 13:33 UTC (permalink / raw)
To: robh+dt, krzysztof.kozlowski+dt, conor+dt, thierry.reding,
jonathanh, devicetree, linux-tegra
Cc: Diogo Ivo
Add the node for the DSI/CSI regulator in the Pixel C.
Signed-off-by: Diogo Ivo <diogo.ivo@tecnico.ulisboa.pt>
---
arch/arm64/boot/dts/nvidia/tegra210-smaug.dts | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/arch/arm64/boot/dts/nvidia/tegra210-smaug.dts b/arch/arm64/boot/dts/nvidia/tegra210-smaug.dts
index 7de4da9a0191..bfdb0f8531f6 100644
--- a/arch/arm64/boot/dts/nvidia/tegra210-smaug.dts
+++ b/arch/arm64/boot/dts/nvidia/tegra210-smaug.dts
@@ -1929,4 +1929,12 @@ usbc_vbus: regulator-usbc-vbus {
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
};
+
+ vdd_dsi_csi: regulator-vdd-dsi-csi {
+ compatible = "regulator-fixed";
+ regulator-name = "AVDD_DSI_CSI_1V2";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ vin-supply = <&pp1200_avdd>;
+ };
};
--
2.41.0
^ permalink raw reply related [flat|nested] 9+ messages in thread* [PATCH v3 4/5] arm64: dts: smaug: Add backlight node
2023-08-07 13:33 [PATCH v3 0/5] Add JDI LPM102A188A display panel support Diogo Ivo
2023-08-07 13:33 ` [PATCH v3 1/5] dt-bindings: display: Add bindings for JDI LPM102A188A Diogo Ivo
2023-08-07 13:33 ` [PATCH v3 3/5] arm64: dts: smaug: Add DSI/CSI regulator Diogo Ivo
@ 2023-08-07 13:33 ` Diogo Ivo
2023-08-07 13:33 ` [PATCH v3 5/5] arm64: dts: smaug: Add display panel node Diogo Ivo
` (3 subsequent siblings)
6 siblings, 0 replies; 9+ messages in thread
From: Diogo Ivo @ 2023-08-07 13:33 UTC (permalink / raw)
To: robh+dt, krzysztof.kozlowski+dt, conor+dt, thierry.reding,
jonathanh, devicetree, linux-tegra
Cc: Diogo Ivo
The Google Pixel C has a TI LP8557 backlight controller, so add a
DT node for it.
Signed-off-by: Diogo Ivo <diogo.ivo@tecnico.ulisboa.pt>
---
arch/arm64/boot/dts/nvidia/tegra210-smaug.dts | 31 +++++++++++++++++++
1 file changed, 31 insertions(+)
diff --git a/arch/arm64/boot/dts/nvidia/tegra210-smaug.dts b/arch/arm64/boot/dts/nvidia/tegra210-smaug.dts
index bfdb0f8531f6..84ccb1495f21 100644
--- a/arch/arm64/boot/dts/nvidia/tegra210-smaug.dts
+++ b/arch/arm64/boot/dts/nvidia/tegra210-smaug.dts
@@ -1648,6 +1648,37 @@ nau8825@1a {
status = "okay";
};
+ backlight: backlight@2c {
+ compatible = "ti,lp8557";
+ reg = <0x2c>;
+ power-supply = <&pplcd_vdd>;
+ enable-supply = <&pp1800_lcdio>;
+ bl-name = "lp8557-backlight";
+ dev-ctrl = /bits/ 8 <0x01>;
+ init-brt = /bits/ 8 <0x80>;
+
+ /* Full scale current, 20mA */
+ rom-11h {
+ rom-addr = /bits/ 8 <0x11>;
+ rom-val = /bits/ 8 <0x05>;
+ };
+ /* Frequency = 4.9kHz, magic undocumented val */
+ rom-12h {
+ rom-addr = /bits/ 8 <0x12>;
+ rom-val = /bits/ 8 <0x29>;
+ };
+ /* Boost freq = 1MHz, BComp option = 1 */
+ rom-13h {
+ rom-addr = /bits/ 8 <0x13>;
+ rom-val = /bits/ 8 <0x03>;
+ };
+ /* 4V OV, 6 output LED string enabled */
+ rom-14h {
+ rom-addr = /bits/ 8 <0x14>;
+ rom-val = /bits/ 8 <0xbf>;
+ };
+ };
+
audio-codec@2d {
compatible = "realtek,rt5677";
reg = <0x2d>;
--
2.41.0
^ permalink raw reply related [flat|nested] 9+ messages in thread* [PATCH v3 5/5] arm64: dts: smaug: Add display panel node
2023-08-07 13:33 [PATCH v3 0/5] Add JDI LPM102A188A display panel support Diogo Ivo
` (2 preceding siblings ...)
2023-08-07 13:33 ` [PATCH v3 4/5] arm64: dts: smaug: Add backlight node Diogo Ivo
@ 2023-08-07 13:33 ` Diogo Ivo
2023-08-16 16:29 ` (subset) [PATCH v3 0/5] Add JDI LPM102A188A display panel support Thierry Reding
` (2 subsequent siblings)
6 siblings, 0 replies; 9+ messages in thread
From: Diogo Ivo @ 2023-08-07 13:33 UTC (permalink / raw)
To: robh+dt, krzysztof.kozlowski+dt, conor+dt, thierry.reding,
jonathanh, devicetree, linux-tegra
Cc: Diogo Ivo
The Google Pixel C has a JDI LPM102A188A display panel, so add a
DT node for it.
Signed-off-by: Diogo Ivo <diogo.ivo@tecnico.ulisboa.pt>
---
arch/arm64/boot/dts/nvidia/tegra210-smaug.dts | 27 +++++++++++++++++++
1 file changed, 27 insertions(+)
diff --git a/arch/arm64/boot/dts/nvidia/tegra210-smaug.dts b/arch/arm64/boot/dts/nvidia/tegra210-smaug.dts
index 84ccb1495f21..8c68106eaa98 100644
--- a/arch/arm64/boot/dts/nvidia/tegra210-smaug.dts
+++ b/arch/arm64/boot/dts/nvidia/tegra210-smaug.dts
@@ -31,6 +31,33 @@ memory {
};
host1x@50000000 {
+ dsia: dsi@54300000 {
+ avdd-dsi-csi-supply = <&vdd_dsi_csi>;
+ status = "okay";
+
+ link2: panel@0 {
+ compatible = "jdi,lpm102a188a";
+ reg = <0>;
+ };
+ };
+
+ dsib: dsi@54400000 {
+ avdd-dsi-csi-supply = <&vdd_dsi_csi>;
+ nvidia,ganged-mode = <&dsia>;
+ status = "okay";
+
+ link1: panel@0 {
+ compatible = "jdi,lpm102a188a";
+ reg = <0>;
+ power-supply = <&pplcd_vdd>;
+ ddi-supply = <&pp1800_lcdio>;
+ enable-gpios = <&gpio TEGRA_GPIO(V, 1) GPIO_ACTIVE_HIGH>;
+ reset-gpios = <&gpio TEGRA_GPIO(V, 2) GPIO_ACTIVE_LOW>;
+ link2 = <&link2>;
+ backlight = <&backlight>;
+ };
+ };
+
dpaux: dpaux@545c0000 {
status = "okay";
};
--
2.41.0
^ permalink raw reply related [flat|nested] 9+ messages in thread* Re: (subset) [PATCH v3 0/5] Add JDI LPM102A188A display panel support
2023-08-07 13:33 [PATCH v3 0/5] Add JDI LPM102A188A display panel support Diogo Ivo
` (3 preceding siblings ...)
2023-08-07 13:33 ` [PATCH v3 5/5] arm64: dts: smaug: Add display panel node Diogo Ivo
@ 2023-08-16 16:29 ` Thierry Reding
2023-08-16 16:30 ` Thierry Reding
2023-08-16 16:56 ` (subset) " Neil Armstrong
6 siblings, 0 replies; 9+ messages in thread
From: Thierry Reding @ 2023-08-16 16:29 UTC (permalink / raw)
To: neil.armstrong, sam, airlied, daniel, robh+dt,
krzysztof.kozlowski+dt, conor+dt, thierry.reding, dri-devel,
devicetree, linux-tegra, Diogo Ivo
From: Thierry Reding <treding@nvidia.com>
On Mon, 07 Aug 2023 14:33:00 +0100, Diogo Ivo wrote:
> These patches add support for the JDI LPM102A188A display panel,
> found in the Google Pixel C.
>
> Patch 1 adds the DT bindings for the panel.
>
> Patch 2 adds the panel driver, which is based on the downstream
> kernel driver published by Google and developed by Sean Paul.
>
> [...]
Applied, thanks!
[3/5] arm64: dts: smaug: Add DSI/CSI regulator
(no commit info)
[4/5] arm64: dts: smaug: Add backlight node
(no commit info)
[5/5] arm64: dts: smaug: Add display panel node
(no commit info)
Best regards,
--
Thierry Reding <treding@nvidia.com>
^ permalink raw reply [flat|nested] 9+ messages in thread* Re: [PATCH v3 0/5] Add JDI LPM102A188A display panel support
2023-08-07 13:33 [PATCH v3 0/5] Add JDI LPM102A188A display panel support Diogo Ivo
` (4 preceding siblings ...)
2023-08-16 16:29 ` (subset) [PATCH v3 0/5] Add JDI LPM102A188A display panel support Thierry Reding
@ 2023-08-16 16:30 ` Thierry Reding
2023-08-16 16:57 ` neil.armstrong
2023-08-16 16:56 ` (subset) " Neil Armstrong
6 siblings, 1 reply; 9+ messages in thread
From: Thierry Reding @ 2023-08-16 16:30 UTC (permalink / raw)
To: Diogo Ivo
Cc: neil.armstrong, sam, airlied, daniel, robh+dt,
krzysztof.kozlowski+dt, conor+dt, dri-devel, devicetree,
linux-tegra
[-- Attachment #1: Type: text/plain, Size: 1711 bytes --]
On Mon, Aug 07, 2023 at 02:33:00PM +0100, Diogo Ivo wrote:
> Hello,
>
> These patches add support for the JDI LPM102A188A display panel,
> found in the Google Pixel C.
>
> Patch 1 adds the DT bindings for the panel.
>
> Patch 2 adds the panel driver, which is based on the downstream
> kernel driver published by Google and developed by Sean Paul.
>
> Patches 3-5 add DT nodes for the regulator, backlight controller and
> display panel.
>
> The first version of this patch series can be found at:
> https://lore.kernel.org/all/20220929170502.1034040-1-diogo.ivo@tecnico.ulisboa.pt/
>
> The first submission of v2 can be found at:
> https://lore.kernel.org/all/20221025153746.101278-1-diogo.ivo@tecnico.ulisboa.pt/
>
> Changes in v2:
> - Patch 1: remove touchscreen reset gpio property
> - Patch 2: clear register based on its value rather than a DT property
> - Patch 3: tune backlight delay values
> - Patch 4: add generic node names, remove underscores
>
> Changes in v3:
> - Patch 1: add Reviewed-by
> - Patch 2: fix error handling, remove enabled/prepared booleans, add
> dc/dc setting
> - Patches 3-5: Split previous patch 3 into three different patches,
> each adding a separate node
> - removed previous patch 2 pertaining to Tegra DSI reset as it was upstreamed
>
> Diogo Ivo (5):
> dt-bindings: display: Add bindings for JDI LPM102A188A
> drm/panel: Add driver for JDI LPM102A188A
> arm64: dts: smaug: Add DSI/CSI regulator
> arm64: dts: smaug: Add backlight node
> arm64: dts: smaug: Add display panel node
I've picked up patches 3-5 into the Tegra tree and I assume the other
two will go in through drm-misc?
Thierry
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 9+ messages in thread* Re: [PATCH v3 0/5] Add JDI LPM102A188A display panel support
2023-08-16 16:30 ` Thierry Reding
@ 2023-08-16 16:57 ` neil.armstrong
0 siblings, 0 replies; 9+ messages in thread
From: neil.armstrong @ 2023-08-16 16:57 UTC (permalink / raw)
To: Thierry Reding, Diogo Ivo
Cc: sam, airlied, daniel, robh+dt, krzysztof.kozlowski+dt, conor+dt,
dri-devel, devicetree, linux-tegra
On 16/08/2023 18:30, Thierry Reding wrote:
> On Mon, Aug 07, 2023 at 02:33:00PM +0100, Diogo Ivo wrote:
>> Hello,
>>
>> These patches add support for the JDI LPM102A188A display panel,
>> found in the Google Pixel C.
>>
>> Patch 1 adds the DT bindings for the panel.
>>
>> Patch 2 adds the panel driver, which is based on the downstream
>> kernel driver published by Google and developed by Sean Paul.
>>
>> Patches 3-5 add DT nodes for the regulator, backlight controller and
>> display panel.
>>
>> The first version of this patch series can be found at:
>> https://lore.kernel.org/all/20220929170502.1034040-1-diogo.ivo@tecnico.ulisboa.pt/
>>
>> The first submission of v2 can be found at:
>> https://lore.kernel.org/all/20221025153746.101278-1-diogo.ivo@tecnico.ulisboa.pt/
>>
>> Changes in v2:
>> - Patch 1: remove touchscreen reset gpio property
>> - Patch 2: clear register based on its value rather than a DT property
>> - Patch 3: tune backlight delay values
>> - Patch 4: add generic node names, remove underscores
>>
>> Changes in v3:
>> - Patch 1: add Reviewed-by
>> - Patch 2: fix error handling, remove enabled/prepared booleans, add
>> dc/dc setting
>> - Patches 3-5: Split previous patch 3 into three different patches,
>> each adding a separate node
>> - removed previous patch 2 pertaining to Tegra DSI reset as it was upstreamed
>>
>> Diogo Ivo (5):
>> dt-bindings: display: Add bindings for JDI LPM102A188A
>> drm/panel: Add driver for JDI LPM102A188A
>> arm64: dts: smaug: Add DSI/CSI regulator
>> arm64: dts: smaug: Add backlight node
>> arm64: dts: smaug: Add display panel node
>
> I've picked up patches 3-5 into the Tegra tree and I assume the other
> two will go in through drm-misc?
Sure, done !
>
> Thierry
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: (subset) [PATCH v3 0/5] Add JDI LPM102A188A display panel support
2023-08-07 13:33 [PATCH v3 0/5] Add JDI LPM102A188A display panel support Diogo Ivo
` (5 preceding siblings ...)
2023-08-16 16:30 ` Thierry Reding
@ 2023-08-16 16:56 ` Neil Armstrong
6 siblings, 0 replies; 9+ messages in thread
From: Neil Armstrong @ 2023-08-16 16:56 UTC (permalink / raw)
To: sam, airlied, daniel, robh+dt, krzysztof.kozlowski+dt, conor+dt,
thierry.reding, dri-devel, devicetree, linux-tegra, Diogo Ivo
Hi,
On Mon, 07 Aug 2023 14:33:00 +0100, Diogo Ivo wrote:
> These patches add support for the JDI LPM102A188A display panel,
> found in the Google Pixel C.
>
> Patch 1 adds the DT bindings for the panel.
>
> Patch 2 adds the panel driver, which is based on the downstream
> kernel driver published by Google and developed by Sean Paul.
>
> [...]
Thanks, Applied to https://anongit.freedesktop.org/git/drm/drm-misc.git (drm-misc-next)
[1/5] dt-bindings: display: Add bindings for JDI LPM102A188A
https://cgit.freedesktop.org/drm/drm-misc/commit/?id=a913a739ab6e6ef10c0c47cb85dd4a105b3d9df7
[2/5] drm/panel: Add driver for JDI LPM102A188A
https://cgit.freedesktop.org/drm/drm-misc/commit/?id=25205087df1ffe06ccea9302944ed1f77dc68c6f
--
Neil
^ permalink raw reply [flat|nested] 9+ messages in thread