Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/display/panel/viewe,jd9365tx.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: VIEWE 7.0" 720x1280 Jadard JD9365TX MIPI-DSI in-cell panel

maintainers:
- Hefei <3066883572@qq.com>

description: |
The VIEWE 7KF82 module is a 720x1280 RGB888 video-mode MIPI-DSI panel
based on Jadard JD9365TX. It uses two DSI data lanes and exposes in-cell
touch over I2C on the same FPC.

allOf:
- $ref: panel-common.yaml#

properties:
compatible:
const: viewe,7kf82

reg:
maxItems: 1

vdd-supply:
description: Panel VDD supply, usually 3.3V

iovcc-supply:
description: Panel IO voltage supply, usually 3.3V

vccio-supply:
description: Alternate name for iovcc-supply

reset-gpios:
description: Optional panel reset GPIO (omit if board uses POR only).
maxItems: 1

backlight: true
rotation: true
port: true

required:
- compatible
- reg
- vdd-supply

anyOf:
- required: [iovcc-supply]
- required: [vccio-supply]

additionalProperties: false

examples:
- |
dsi {
#address-cells = <1>;
#size-cells = <0>;

panel@0 {
compatible = "viewe,7kf82";
reg = <0>;
vdd-supply = <&reg_vdd>;
iovcc-supply = <&reg_iovcc>;
backlight = <&viewe_bl>;

port {
endpoint {
remote-endpoint = <&dsi_out>;
data-lanes = <0 1>;
};
};
};
};
...
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/input/touchscreen/jadard,jd9365tx.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Jadard JD9365TX in-cell touchscreen

maintainers:
- Hefei <3066883572@qq.com>

description: |
In-cell touch integrated with Jadard JD9365TX DSI panels. The module FPC
often exposes only I2C (no interrupt GPIO); the driver polls coordinate
reports.

allOf:
- $ref: touchscreen.yaml#

properties:
compatible:
const: jadard,jd9365tx

reg:
maxItems: 1

poll-interval: true

jadard,coord-addr:
description: Optional fixed coordinate SRAM address override
$ref: /schemas/types.yaml#/definitions/uint32

required:
- compatible
- reg

unevaluatedProperties: false

examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;

touchscreen@68 {
compatible = "jadard,jd9365tx";
reg = <0x68>;
touchscreen-size-x = <720>;
touchscreen-size-y = <1280>;
poll-interval = <16>;
};
};
...
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/leds/backlight/viewe,i2c-backlight.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: VIEWE I2C panel backlight

maintainers:
- Hefei <3066883572@qq.com>

description: |
Simple I2C backlight used on VIEWE DSI modules. Default protocol is device
address 0x45, register 0x86, brightness 0..255.

allOf:
- $ref: common.yaml#

properties:
compatible:
const: viewe,i2c-backlight

reg:
maxItems: 1

required:
- compatible
- reg

unevaluatedProperties: false

examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;

backlight@45 {
compatible = "viewe,i2c-backlight";
reg = <0x45>;
default-brightness = <200>;
};
};
...
1 change: 1 addition & 0 deletions arch/arm/boot/dts/overlays/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -362,6 +362,7 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \
vc4-kms-dsi-waveshare-800x480.dtbo \
vc4-kms-dsi-waveshare-panel.dtbo \
vc4-kms-dsi-waveshare-panel-v2.dtbo \
vc4-kms-dsi-viewe-7inch.dtbo \
vc4-kms-kippah-7inch.dtbo \
vc4-kms-v3d.dtbo \
vc4-kms-v3d-pi4.dtbo \
Expand Down
12 changes: 12 additions & 0 deletions arch/arm/boot/dts/overlays/README
Original file line number Diff line number Diff line change
Expand Up @@ -6239,6 +6239,18 @@ Params: 3_4_inch_c 3.4" 800x800 2lane
the default DSI1 and i2c_csi_dsi).


Name: vc4-kms-dsi-viewe-7inch
Info: Enable the VIEWE 7" 720x1280 JD9365TX in-cell DSI panel.
2-lane, DSI1 + i2c_csi_dsi (Pi 3/4/5).

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there a reason it doesn't work on Pi1, or by implication Compute Modules?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No hardware reason known against Pi 1 / Compute Modules that expose DSI + i2c_csi_dsi — we only listed Pi 3/4/5 because that is what we tested. We asked in the main thread whether you want full MIPI-capable Pi / CM coverage before we update the README wording.

Load: dtoverlay=vc4-kms-dsi-viewe-7inch,<param>
Params: rotation Display rotation {0,90,180,270}
notouch Disable the touch controller
nobl Disable the backlight
invx Touchscreen inverted x axis
invy Touchscreen inverted y axis
swapxy Touchscreen swapped x y axis


Name: vc4-kms-kippah-7inch
Info: This overlay is now deprecated - see vc4-kms-dpi-panel,kippah-7inch
Load: <Deprecated>
Expand Down
114 changes: 114 additions & 0 deletions arch/arm/boot/dts/overlays/vc4-kms-dsi-viewe-7inch-overlay.dts
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
/*
* dtoverlay=vc4-kms-dsi-viewe-7inch
* VIEWE 7" 720x1280 JD9365TX on DSI1 + i2c_csi_dsi (Pi 3/4/5).
*/

/dts-v1/;
/plugin/;

/ {
compatible = "brcm,bcm2835";

fragment@0 {
target = <&dsi1>;
__overlay__ {
status = "okay";
#address-cells = <1>;
#size-cells = <0>;

port {
dsi_out: endpoint {
remote-endpoint = <&panel_in>;
data-lanes = <0 1>;
};
};

panel: panel@0 {
compatible = "viewe,7kf82";
reg = <0>;
status = "okay";

vdd-supply = <&vdd_viewe7>;
iovcc-supply = <&iovcc_viewe7>;
backlight = <&viewe_bl>;

port {
panel_in: endpoint {
remote-endpoint = <&dsi_out>;
data-lanes = <0 1>;
};
};
};
};
};

fragment@1 {
target-path = "/";
__overlay__ {
vdd_viewe7: regulator-vdd-viewe7 {
compatible = "regulator-fixed";
regulator-name = "vdd-viewe7";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
};

iovcc_viewe7: regulator-iovcc-viewe7 {
compatible = "regulator-fixed";
regulator-name = "iovcc-viewe7";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
};
};
};

fragment@2 {
target = <&i2c_csi_dsi>;
__overlay__ {
status = "okay";
clock-frequency = <100000>;
#address-cells = <1>;
#size-cells = <0>;

jadard_tp: touch@68 {
compatible = "jadard,jd9365tx";
reg = <0x68>;
touchscreen-size-x = <720>;
touchscreen-size-y = <1280>;
poll-interval = <16>;
status = "okay";
};

viewe_bl: bl@45 {
compatible = "viewe,i2c-backlight";
reg = <0x45>;
default-brightness = <200>;
status = "okay";
};
};
};

fragment@3 {
target = <&i2c0if>;
__overlay__ {
status = "okay";
};
};

fragment@4 {
target = <&i2c0mux>;
__overlay__ {
status = "okay";
};
};

__overrides__ {
rotation = <&panel>, "rotation:0";
notouch = <&jadard_tp>, "status=disabled";
nobl = <&viewe_bl>, "status=disabled", <&panel>, "backlight=";
invx = <&jadard_tp>, "touchscreen-inverted-x?";
invy = <&jadard_tp>, "touchscreen-inverted-y?";
swapxy = <&jadard_tp>, "touchscreen-swapped-x-y?";
};
};
3 changes: 3 additions & 0 deletions arch/arm64/configs/bcm2711_defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -710,6 +710,7 @@ CONFIG_TOUCHSCREEN_GOODIX=m
CONFIG_TOUCHSCREEN_ILI210X=m
CONFIG_TOUCHSCREEN_ILITEK=m
CONFIG_TOUCHSCREEN_ILITEK_V3=m
CONFIG_TOUCHSCREEN_JADARD_JD9365TX=m
CONFIG_TOUCHSCREEN_EDT_FT5X06=m
CONFIG_TOUCHSCREEN_RASPBERRYPI_FW=m
CONFIG_TOUCHSCREEN_USB_COMPOSITE=m
Expand Down Expand Up @@ -1089,6 +1090,7 @@ CONFIG_DRM_PANEL_ILITEK_ILI9806E=m
CONFIG_DRM_PANEL_ILITEK_ILI9806E_SPI=m
CONFIG_DRM_PANEL_ILITEK_ILI9881C=m
CONFIG_DRM_PANEL_JDI_LT070ME05000=m
CONFIG_DRM_PANEL_VIEWE_JD9365TX=m
CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN=m
CONFIG_DRM_PANEL_SITRONIX_ST7701=m
CONFIG_DRM_PANEL_SIMPLE=m
Expand Down Expand Up @@ -1126,6 +1128,7 @@ CONFIG_BACKLIGHT_PWM=m
CONFIG_BACKLIGHT_RPI=m
CONFIG_BACKLIGHT_LM3630A=m
CONFIG_BACKLIGHT_GPIO=m
CONFIG_BACKLIGHT_VIEWE_I2C=m
CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
CONFIG_LOGO=y
# CONFIG_LOGO_LINUX_MONO is not set
Expand Down
3 changes: 3 additions & 0 deletions arch/arm64/configs/bcm2712_defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -713,6 +713,7 @@ CONFIG_TOUCHSCREEN_GOODIX=m
CONFIG_TOUCHSCREEN_ILI210X=m
CONFIG_TOUCHSCREEN_ILITEK=m
CONFIG_TOUCHSCREEN_ILITEK_V3=m
CONFIG_TOUCHSCREEN_JADARD_JD9365TX=m
CONFIG_TOUCHSCREEN_EDT_FT5X06=m
CONFIG_TOUCHSCREEN_RASPBERRYPI_FW=m
CONFIG_TOUCHSCREEN_USB_COMPOSITE=m
Expand Down Expand Up @@ -1091,6 +1092,7 @@ CONFIG_DRM_PANEL_ILITEK_ILI9806E=m
CONFIG_DRM_PANEL_ILITEK_ILI9806E_SPI=m
CONFIG_DRM_PANEL_ILITEK_ILI9881C=m
CONFIG_DRM_PANEL_JDI_LT070ME05000=m
CONFIG_DRM_PANEL_VIEWE_JD9365TX=m
CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN=m
CONFIG_DRM_PANEL_SITRONIX_ST7701=m
CONFIG_DRM_PANEL_SIMPLE=m
Expand Down Expand Up @@ -1128,6 +1130,7 @@ CONFIG_BACKLIGHT_PWM=m
CONFIG_BACKLIGHT_RPI=m
CONFIG_BACKLIGHT_LM3630A=m
CONFIG_BACKLIGHT_GPIO=m
CONFIG_BACKLIGHT_VIEWE_I2C=m
CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
CONFIG_LOGO=y
# CONFIG_LOGO_LINUX_MONO is not set
Expand Down
11 changes: 11 additions & 0 deletions drivers/gpu/drm/panel/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -324,6 +324,17 @@ config DRM_PANEL_INNOLUX_P079ZCA
24 bit RGB per pixel. It provides a MIPI DSI interface to
the host and has a built-in LED backlight.

config DRM_PANEL_VIEWE_JD9365TX
tristate "VIEWE 7\" JD9365TX DSI panel"
depends on OF
depends on DRM_MIPI_DSI
depends on BACKLIGHT_CLASS_DEVICE
help
Say Y here to enable the VIEWE 7" 720x1280 Jadard JD9365TX
MIPI-DSI panel.

If unsure, say N.

config DRM_PANEL_JADARD_JD9365DA_H3
tristate "Jadard JD9365DA-H3 WXGA DSI panel"
depends on OF
Expand Down
1 change: 1 addition & 0 deletions drivers/gpu/drm/panel/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ obj-$(CONFIG_DRM_PANEL_ILITEK_ILI9881C) += panel-ilitek-ili9881c.o
obj-$(CONFIG_DRM_PANEL_ILITEK_ILI9882T) += panel-ilitek-ili9882t.o
obj-$(CONFIG_DRM_PANEL_INNOLUX_EJ030NA) += panel-innolux-ej030na.o
obj-$(CONFIG_DRM_PANEL_INNOLUX_P079ZCA) += panel-innolux-p079zca.o
obj-$(CONFIG_DRM_PANEL_VIEWE_JD9365TX) += panel-viewe-jd9365tx.o
obj-$(CONFIG_DRM_PANEL_JADARD_JD9365DA_H3) += panel-jadard-jd9365da-h3.o
obj-$(CONFIG_DRM_PANEL_JDI_LT070ME05000) += panel-jdi-lt070me05000.o
obj-$(CONFIG_DRM_PANEL_JDI_LPM102A188A) += panel-jdi-lpm102a188a.o
Expand Down
Loading