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,64 @@
# 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:
enum:
- jadard,jd9365tx
- jadard,jd9365tx-tp

reg:
maxItems: 1

jadard,poll-interval-ms:
description: Polling interval in milliseconds (default 16)
minimum: 8
maximum: 100

jadard,max-touch-number:
description: Maximum simultaneous contacts
minimum: 1
maximum: 10

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>;
jadard,poll-interval-ms = <16>;
jadard,max-touch-number = <10>;
};
};
...
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
# 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

default-brightness:
description: Brightness applied at probe (0..255)
minimum: 0
maximum: 255

required:
- compatible
- reg

additionalProperties: false

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

backlight@45 {
compatible = "viewe,i2c-backlight";
reg = <0x45>;
default-brightness = <200>;
};
};
...
2 changes: 2 additions & 0 deletions arch/arm/boot/dts/overlays/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -362,6 +362,8 @@ 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-dsi-viewe-7inch-pi5.dtbo \
vc4-kms-kippah-7inch.dtbo \
vc4-kms-v3d.dtbo \
vc4-kms-v3d-pi4.dtbo \
Expand Down
23 changes: 23 additions & 0 deletions arch/arm/boot/dts/overlays/README
Original file line number Diff line number Diff line change
Expand Up @@ -6239,6 +6239,29 @@ 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, for Raspberry Pi 3/4 on DSI1.
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-dsi-viewe-7inch-pi5
Info: Enable the VIEWE 7" panel on Raspberry Pi 5 DISP1.
Load: dtoverlay=vc4-kms-dsi-viewe-7inch-pi5,<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
116 changes: 116 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,116 @@
/*
* dtoverlay=vc4-kms-dsi-viewe-7inch
* VIEWE 7" 720x1280 JD9365TX, DSI1 + i2c_csi_dsi (Pi 3/4).
* Pi 5: use vc4-kms-dsi-viewe-7inch-pi5.
*/

/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-tp";
reg = <0x68>;
touchscreen-size-x = <720>;
touchscreen-size-y = <1280>;
jadard,max-touch-number = <10>;
jadard,poll-interval-ms = <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";
invx = <&jadard_tp>, "touchscreen-inverted-x?";
invy = <&jadard_tp>, "touchscreen-inverted-y?";
swapxy = <&jadard_tp>, "touchscreen-swapped-x-y?";
};
};
Loading