Support for the Pixel 3a XL with the Tianma panel
Subsystems (6)
v3 cover Support for the Pixel 3a XL with the Tianma panel
This expands Pixel 3a support to the Pixel 3a XL, starting with one of the panel variants. The Pixel 3a XL has two variants with panels from Samsung or from Tianma/Novatek.
This series depends on the IMX355 front camera devicetree patches
(https://lore.kernel.org/r/[email protected]).
Changes since v2 (https://lore.kernel.org/r/[email protected]):
- add support for regulator (Dmitry's review retained) (3/5)
- use common set page function (Dmitry's review retained) (3/5)
- squash new labels into common dtsi patch (review tags dropped) (4/5)
- specify framebuffer in terms of memory region (4/5)
- only specify height in XL/non-XL specific devicetrees (4/5, 5/5)
- remove status in display devices (4/5, 5/5)
- preserve same touchscreen physical width in sargo (4/5)
- move entry in Makefile to correct place (5/5)
- omit copyright year in new file (4/5)
- correct top-of-file comment about which panel is supported (5/5)
- explain license identifier change from GPL-2.0 to GPL-2.0-only (4/5)
- add review tags (1/5, 3/5, 5/5)
Changes since v1 (https://lore.kernel.org/r/[email protected]):
- use multi functions in disable callback (3/6)
- add and reformat comments about XL differences (5/6)
- mention the sdc panel (6/6)
- explain google,bonito compatible (1/6)
- remove TODO item in code (3/6)
- add review and testing tags (2/6, 3/6, 5/6)
Richard Acayan (5):
dt-bindings: arm: qcom: document google,bonito-tianma board
dt-bindings: panel-simple-dsi: add nt37700f compatible drm/panel: Add Novatek/Tianma NT37700F panel
arm64: dts: qcom: sdm670-google: add common device tree include
arm64: dts: qcom: add support for pixel 3a xl with the tianma panel
.../devicetree/bindings/arm/qcom.yaml | 6 +
.../display/panel/panel-simple-dsi.yaml | 2 +
arch/arm64/boot/dts/qcom/Makefile | 1 +
.../dts/qcom/sdm670-google-bonito-tianma.dts | 32 +
...le-sargo.dts => sdm670-google-common.dtsi} | 22 +-
.../boot/dts/qcom/sdm670-google-sargo.dts | 709 +-----------------
drivers/gpu/drm/panel/Kconfig | 9 +
drivers/gpu/drm/panel/Makefile | 1 +
.../gpu/drm/panel/panel-novatek-nt37700f.c | 299 ++++++++
9 files changed, 370 insertions(+), 711 deletions(-)
create mode 100644 arch/arm64/boot/dts/qcom/sdm670-google-bonito-tianma.dts
copy arch/arm64/boot/dts/qcom/{sdm670-google-sargo.dts => sdm670-google-common.dtsi} (97%)
create mode 100644 drivers/gpu/drm/panel/panel-novatek-nt37700f.cSignature · 1 line
2.53.0
PATCH v3 1/5 dt-bindings: arm: qcom: document google, bonito-tianma board
The Pixel 3a XL is code-named by Google as "bonito". The google,bonito-tianma compatible represents a variant of the Pixel 3a XL board with a Tianma/Novatek NT37700F panel. Document the google,bonito board compatible and the google,bonito-tianma variant in the bindings.
--- Documentation/devicetree/bindings/arm/qcom.yaml | 6 ++++++ 1 file changed, 6 insertions(+)
Documentation/devicetree/bindings/arm/qcom.yaml +6 -0
@@ -844,6 +844,12 @@ properties: - google,sargo - const: qcom,sdm670 + - items: + - enum: + - google,bonito-tianma + - const: google,bonito + - const: qcom,sdm670 + - items: - enum: - qcom,sdx55-mtp
Signature · 1 line
2.53.0
PATCH v3 2/5 dt-bindings: panel-simple-dsi: add nt37700f compatible
In reply to Richard AcayanAdd the compatible for the NT37700F panel found on the Pixel 3a XL.
--- .../devicetree/bindings/display/panel/panel-simple-dsi.yaml | 2 ++ 1 file changed, 2 insertions(+)
Documentation/devicetree/bindings/display/panel/panel-simple-dsi.yaml +2 -0
@@ -49,6 +49,8 @@ properties: - lg,lh500wx1-sd03 # Lincoln LCD197 5" 1080x1920 LCD panel - lincolntech,lcd197 + # Novatek NT37700F 1080x2160 AMOLED panel + - novatek,nt37700f # One Stop Displays OSD101T2587-53TS 10.1" 1920x1200 panel - osddisplays,osd101t2587-53ts # Panasonic 10" WUXGA TFT LCD panel
Signature · 1 line
2.53.0
PATCH v3 3/5 drm/panel: Add Novatek/Tianma NT37700F panel
In reply to Richard AcayanSome Pixel 3a XL devices have a Tianma panel. Add support for it, with the aid of linux-mdss-dsi-panel-driver-generator.
--- drivers/gpu/drm/panel/Kconfig | 9 + drivers/gpu/drm/panel/Makefile | 1 + .../gpu/drm/panel/panel-novatek-nt37700f.c | 299 ++++++++++++++++++ 3 files changed, 309 insertions(+) create mode 100644 drivers/gpu/drm/panel/panel-novatek-nt37700f.c
drivers/gpu/drm/panel/Kconfig +9 -0
@@ -553,6 +553,15 @@ config DRM_PANEL_NOVATEK_NT36672E LCD panel module. The panel has a resolution of 1080x2408 and uses 24 bit RGB per pixel. +config DRM_PANEL_NOVATEK_NT37700F + tristate "Novatek NT37700F DSI panel" + depends on OF + depends on DRM_MIPI_DSI + depends on BACKLIGHT_CLASS_DEVICE + help + Say Y here if you want to enable support for Novatek NT37700F DSI + panel module. The panel has a resolution of 1080x2160. + config DRM_PANEL_NOVATEK_NT37801 tristate "Novatek NT37801/NT37810 AMOLED DSI panel" depends on OF
drivers/gpu/drm/panel/Makefile +1 -0
@@ -54,6 +54,7 @@ obj-$(CONFIG_DRM_PANEL_NOVATEK_NT35950) += panel-novatek-nt35950.o obj-$(CONFIG_DRM_PANEL_NOVATEK_NT36523) += panel-novatek-nt36523.o obj-$(CONFIG_DRM_PANEL_NOVATEK_NT36672A) += panel-novatek-nt36672a.o obj-$(CONFIG_DRM_PANEL_NOVATEK_NT36672E) += panel-novatek-nt36672e.o +obj-$(CONFIG_DRM_PANEL_NOVATEK_NT37700F) += panel-novatek-nt37700f.o obj-$(CONFIG_DRM_PANEL_NOVATEK_NT37801) += panel-novatek-nt37801.o obj-$(CONFIG_DRM_PANEL_NOVATEK_NT39016) += panel-novatek-nt39016.o obj-$(CONFIG_DRM_PANEL_MANTIX_MLAF057WE51) += panel-mantix-mlaf057we51.o
drivers/gpu/drm/panel/panel-novatek-nt37700f.c new file +299 -0
299 lines not on this page · raw message
Signature · 1 line
2.53.0
PATCH v3 4/5 arm64: dts: qcom: sdm670-google: add common device tree include
In reply to Richard AcayanThe Pixel 3a XL can be supported by reusing most of the device tree from the Pixel 3a. Move the common elements to a common device tree include like with other devices.
Since the original devicetree should only specify non-XL properties, it needs to be completely rewritten. Also change the SPDX license identifier from GPL-2.0 (which was deprecated as it can be misinterpreted as GPLv2 or later) into GPL-2.0-only.
---
...le-sargo.dts => sdm670-google-common.dtsi} | 22 +-
.../boot/dts/qcom/sdm670-google-sargo.dts | 709 +-----------------
2 files changed, 20 insertions(+), 711 deletions(-)
copy arch/arm64/boot/dts/qcom/{sdm670-google-sargo.dts => sdm670-google-common.dtsi} (97%)arch/arm64/boot/dts/qcom/sdm670-google-common.dtsi renamed from arch/arm64/boot/dts/qcom/sdm670-google-sargo.dts +7 -15
@@ -6,8 +6,6 @@ * Copyright (c) 2022, Richard Acayan. All rights reserved. */ -/dts-v1/; - #include <dt-bindings/gpio/gpio.h> #include <dt-bindings/input/input.h> #include <dt-bindings/leds/common.h>
@@ -28,9 +26,6 @@ /delete-node/ &gpu_mem; / { - model = "Google Pixel 3a"; - compatible = "google,sargo", "qcom,sdm670"; - aliases { }; battery: battery {
@@ -38,7 +33,6 @@ battery: battery { voltage-min-design-microvolt = <3312000>; voltage-max-design-microvolt = <4400000>; - charge-full-design-microamp-hours = <3000000>; }; chosen {
@@ -48,11 +42,11 @@ chosen { #size-cells = <2>; ranges; - framebuffer@9c000000 { + framebuffer: framebuffer@9c000000 { compatible = "simple-framebuffer"; - reg = <0 0x9c000000 0 (1080 * 2220 * 4)>; + memory-region = <&fb_mem>; width = <1080>; - height = <2220>; + /* height is in specific device trees */ stride = <(1080 * 4)>; format = "a8r8g8b8"; };
@@ -121,7 +115,7 @@ gpu_mem: gpu@97a15000 { no-map; }; - framebuffer-region@9c000000 { + fb_mem: framebuffer-region@9c000000 { reg = <0 0x9c000000 0 0x2400000>; no-map; };
@@ -516,10 +510,8 @@ rmi4-f01@1 { syna,nosleep-mode = <1>; }; - rmi4-f12@12 { + rmi4_f12: rmi4-f12@12 { reg = <0x12>; - touchscreen-x-mm = <62>; - touchscreen-y-mm = <127>; syna,sensor-type = <1>; }; };
@@ -533,8 +525,8 @@ &mdss_dsi0 { vdda-supply = <&vreg_l1a_1p225>; status = "okay"; - panel@0 { - compatible = "samsung,s6e3fa7-ams559nk06"; + panel: panel@0 { + /* compatible is provided in specific device trees */ reg = <0>; reset-gpios = <&tlmm 75 GPIO_ACTIVE_LOW>;
arch/arm64/boot/dts/qcom/sdm670-google-sargo.dts +13 -696
728 lines not on this page · raw message
Signature · 1 line
2.53.0
Re: [PATCH v3 4/5] arm64: dts: qcom: sdm670-google: add common device tree include
Quoted 11 lines · Richard Acayan
The Pixel 3a XL can be supported by reusing most of the device tree from the Pixel 3a. Move the common elements to a common device tree include like with other devices.
Since the original devicetree should only specify non-XL properties, it needs to be completely rewritten. Also change the SPDX license identifier from GPL-2.0 (which was deprecated as it can be misinterpreted as GPLv2 or later) into GPL-2.0-only.
Signed-off-by Richard Acayan <[email protected]>---
Konrad
PATCH v3 5/5 arm64: dts: qcom: add support for pixel 3a xl with the tianma panel
In reply to Richard AcayanThe Pixel 3a XL has variants with either a Samsung Display Controller (SDC) panel or a Tianma panel. Add the device tree for the variant with the Tianma panel.
--- arch/arm64/boot/dts/qcom/Makefile | 1 + .../dts/qcom/sdm670-google-bonito-tianma.dts | 32 +++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 arch/arm64/boot/dts/qcom/sdm670-google-bonito-tianma.dts
arch/arm64/boot/dts/qcom/Makefile +1 -0
@@ -264,6 +264,7 @@ dtb-$(CONFIG_ARCH_QCOM) += sdm632-fairphone-fp3.dtb dtb-$(CONFIG_ARCH_QCOM) += sdm632-motorola-ocean.dtb dtb-$(CONFIG_ARCH_QCOM) += sdm636-sony-xperia-ganges-mermaid.dtb dtb-$(CONFIG_ARCH_QCOM) += sdm660-xiaomi-lavender.dtb +dtb-$(CONFIG_ARCH_QCOM) += sdm670-google-bonito-tianma.dtb dtb-$(CONFIG_ARCH_QCOM) += sdm670-google-sargo.dtb dtb-$(CONFIG_ARCH_QCOM) += sdm845-db845c.dtb
arch/arm64/boot/dts/qcom/sdm670-google-bonito-tianma.dts new file +32 -0
@@ -0,0 +1,32 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* + * Device tree for Google Pixel 3a XL with the Tianma panel. + * + * Copyright (c) Richard Acayan. All rights reserved. + */ + +/dts-v1/; + +#include "sdm670-google-common.dtsi" + +/ { + model = "Google Pixel 3a XL (with Tianma panel)"; + compatible = "google,bonito-tianma", "google,bonito", "qcom,sdm670"; +}; + +&battery { + charge-full-design-microamp-hours = <3700000>; +}; + +&framebuffer { + height = <2160>; +}; + +&panel { + compatible = "novatek,nt37700f"; +}; + +&rmi4_f12 { + touchscreen-x-mm = <69>; + touchscreen-y-mm = <137>; +};
Signature · 1 line
2.53.0
Re: (subset) [PATCH v3 0/5] Support for the Pixel 3a XL with the Tianma panel
In reply to Richard AcayanHi,
Quoted 8 lines · Richard Acayan
This expands Pixel 3a support to the Pixel 3a XL, starting with one of the panel variants. The Pixel 3a XL has two variants with panels from Samsung or from Tianma/Novatek.
This series depends on the IMX355 front camera devicetree patches
(https://lore.kernel.org/r/[email protected]).[...]
Thanks, Applied to https://gitlab.freedesktop.org/drm/misc/kernel.git (drm-misc-next)
[1/5] dt-bindings: arm: qcom: document google,bonito-tianma board
https://gitlab.freedesktop.org/drm/misc/kernel/-/commit/8bcf6264b73f5cfa24e734c0027a69f207e26445 [2/5] dt-bindings: panel-simple-dsi: add nt37700f compatible https://gitlab.freedesktop.org/drm/misc/kernel/-/commit/e0102c94ec12640a6b66037adc6e9ae5c9c0dc27 [3/5] drm/panel: Add Novatek/Tianma NT37700F panel https://gitlab.freedesktop.org/drm/misc/kernel/-/commit/2db443036fe9daf170e5919face475307d486641
Signature · 1 line
Neil
Bjorn Andersson
maintainerQuoted 6 lines · Richard Acayan
This expands Pixel 3a support to the Pixel 3a XL, starting with one of the panel variants. The Pixel 3a XL has two variants with panels from Samsung or from Tianma/Novatek.
This series depends on the IMX355 front camera devicetree patches
(https://lore.kernel.org/r/[email protected]).
Please resubmit the DeviceTree patches once this dependency has been resolved.
Regards,
Bjorn
Quoted 47 lines
Changes since v2 (https://lore.kernel.org/r/[email protected]):
- add support for regulator (Dmitry's review retained) (3/5)
- use common set page function (Dmitry's review retained) (3/5)
- squash new labels into common dtsi patch (review tags dropped) (4/5)
- specify framebuffer in terms of memory region (4/5)
- only specify height in XL/non-XL specific devicetrees (4/5, 5/5)
- remove status in display devices (4/5, 5/5)
- preserve same touchscreen physical width in sargo (4/5)
- move entry inMakefileto correct place (5/5)
- omit copyright year in new file (4/5)
- correct top-of-file comment about which panel is supported (5/5)
- explain license identifier change from GPL-2.0 to GPL-2.0-only (4/5)
- add review tags (1/5, 3/5, 5/5)Changes since v1 (https://lore.kernel.org/r/[email protected]):
- use multi functions in disable callback (3/6)
- add and reformat comments about XL differences (5/6)
- mention the sdc panel (6/6)
- explain google,bonito compatible (1/6)
- remove TODO item in code (3/6)
- add review and testing tags (2/6, 3/6, 5/6)Richard Acayan (5):
dt-bindings: arm: qcom: document google,bonito-tianma board
dt-bindings: panel-simple-dsi: add nt37700f compatible drm/panel: Add Novatek/Tianma NT37700F panel
arm64: dts: qcom: sdm670-google: add common device tree include
arm64: dts: qcom: add support for pixel 3a xl with the tianma panel.../devicetree/bindings/arm/qcom.yaml | 6 + .../display/panel/panel-simple-dsi.yaml | 2 + arch/arm64/boot/dts/qcom/Makefile | 1 + .../dts/qcom/sdm670-google-bonito-tianma.dts | 32 + ...le-sargo.dts => sdm670-google-common.dtsi} | 22 +- .../boot/dts/qcom/sdm670-google-sargo.dts | 709 +----------------- drivers/gpu/drm/panel/Kconfig | 9 + drivers/gpu/drm/panel/Makefile | 1 + .../gpu/drm/panel/panel-novatek-nt37700f.c | 299 ++++++++ 9 files changed, 370 insertions(+), 711 deletions(-) create mode 100644 arch/arm64/boot/dts/qcom/sdm670-google-bonito-tianma.dts copy arch/arm64/boot/dts/qcom/{sdm670-google-sargo.dts => sdm670-google-common.dtsi} (97%) create mode 100644 drivers/gpu/drm/panel/panel-novatek-nt37700f.cSignature · 1 line
2.53.0
Quoted 10 lines · Bjorn Andersson
Quoted 6 lines · Richard Acayan
This expands Pixel 3a support to the Pixel 3a XL, starting with one of the panel variants. The Pixel 3a XL has two variants with panels from Samsung or from Tianma/Novatek.
This series depends on the IMX355 front camera devicetree patches
(https://lore.kernel.org/r/[email protected]).Please resubmit the DeviceTree patches once this dependency has been resolved.
Actually, did anyone see v12 of the front camera patches? I'll just rebase this on the revision of the camera patches that get applied.
Re: (subset) [PATCH v3 0/5] Support for the Pixel 3a XL with the Tianma panel
In reply to Richard AcayanQuoted 8 lines · Richard Acayan
This expands Pixel 3a support to the Pixel 3a XL, starting with one of the panel variants. The Pixel 3a XL has two variants with panels from Samsung or from Tianma/Novatek.
This series depends on the IMX355 front camera devicetree patches
(https://lore.kernel.org/r/[email protected]).[...]
Applied, thanks!
[4/5] arm64: dts: qcom: sdm670-google: add common device tree include
commit: fe9f4a46895dc3062cedcdd38772dd578de9e62f
[5/5] arm64: dts: qcom: add support for pixel 3a xl with the tianma panel
commit: f3919fa784a3e6dd557dfe2c41072f55742e013fBest regards,
Signature · 1 line
Bjorn Andersson <[email protected]>