Files
tactility/Devices/guition-jc1060p470ciwy/guition,jc1060p470ciwy.dts
T
Ken Van Hoeylandt d896657bf9 Device migrations, drivers and fixes (#571)
Device migrations:

- cyd-4848S040c
- guition-jc1060p470ciwy
- guition-jc2432w328c
- guition-jc3248w535c (known issue with display and touch, Shadowtrance will look into it)
- guition-jc8048w550c
- heltec-wifi-lora-32-v3
- lilygo-tdeck-max (excluding graphics)
- lilygo-tdisplay
- lilygo-tdisplay-s3
- lilygo-tdongle-s3
- lilygo-tlora-pager

Driver migrations:

- Implemented haptic driver interface in kernel
- AXS15231b
- BQ25896
- BQ27220
- CST328
- CST6xx
- DRV2605
- JD9165
- Custom LilyGO driver for T-Lora Pager
- SSD1306
- ST7701
- ST7735
- SY6970
- TCA8418

Fixes/improvements:

- Boot app: support for multiple power devices, improved UI
- lvgl_devices and related code: fixes for mapping
- Support for arrays in dts parser
2026-07-18 15:01:42 +02:00

195 lines
5.6 KiB
Devicetree

/dts-v1/;
#include <tactility/bindings/root.h>
#include <tactility/bindings/esp32_ble.h>
#include <tactility/bindings/esp32_gpio.h>
#include <tactility/bindings/esp32_i2c.h>
#include <tactility/bindings/esp32_i2s.h>
#include <tactility/bindings/esp32_sdmmc.h>
#include <tactility/bindings/esp32_wifi.h>
#include <tactility/bindings/esp32_adc_oneshot.h>
#include <tactility/bindings/battery_sense.h>
#include <tactility/bindings/esp32_pwm_ledc.h>
#include <tactility/bindings/pwm_backlight.h>
#include <bindings/jd9165.h>
#include <bindings/gt911.h>
/**
* For future reference:
* - ES8311 on I2C with PA PIN at GPIO 11
* - Built-in led at GPIO 26
* - Boot button at GPIO 21
* - LCD reset: GPIO 0 (matches P4 EV board reset line - deprecated HAL's old Display.cpp
* comment claimed GPIO 27 here, but its actual LCD_PIN_RESET constant was GPIO_NUM_0)
* - LCD backlight: GPIO 23
*/
/ {
compatible = "root";
model = "Guition JC1060P470C-I-W-Y";
wifi0 {
compatible = "espressif,esp32-wifi";
status = "disabled";
};
ble0 {
compatible = "espressif,esp32-ble";
status = "disabled";
};
gpio0 {
compatible = "espressif,esp32-gpio";
gpio-count = <57>;
};
i2c_internal {
compatible = "espressif,esp32-i2c";
port = <I2C_NUM_0>;
clock-frequency = <400000>;
pin-sda = <&gpio0 7 GPIO_FLAG_NONE>;
pin-scl = <&gpio0 8 GPIO_FLAG_NONE>;
touch0 {
compatible = "goodix,gt911";
reg = <0x5D>;
x-max = <1024>;
y-max = <600>;
};
};
i2s0 {
compatible = "espressif,esp32-i2s";
port = <I2S_NUM_0>;
pin-bclk = <&gpio0 12 GPIO_FLAG_NONE>;
pin-ws = <&gpio0 10 GPIO_FLAG_NONE>;
pin-data-out = <&gpio0 9 GPIO_FLAG_NONE>;
pin-data-in = <&gpio0 48 GPIO_FLAG_NONE>;
pin-mclk = <&gpio0 13 GPIO_FLAG_NONE>;
};
sdcard {
compatible = "espressif,esp32-sdmmc";
pin-clk = <&gpio0 43 GPIO_FLAG_NONE>;
pin-cmd = <&gpio0 44 GPIO_FLAG_NONE>;
pin-d0 = <&gpio0 39 GPIO_FLAG_NONE>;
pin-d1 = <&gpio0 40 GPIO_FLAG_NONE>;
pin-d2 = <&gpio0 41 GPIO_FLAG_NONE>;
pin-d3 = <&gpio0 42 GPIO_FLAG_NONE>;
slot = <SDMMC_HOST_SLOT_0>;
bus-width = <4>;
on-chip-ldo-chan = <4>;
};
adc0 {
compatible = "espressif,esp32-adc-oneshot";
unit-id = <ADC_UNIT_2>;
channels = <ADC_CHANNEL_4 ADC_ATTEN_DB_12 ADC_BITWIDTH_DEFAULT>;
};
// Matches the deprecated HAL's old Power.cpp: ADC2 CH4 behind an 85k/100k divider
// (multiplier = (85000+100000)/100000 = 1.850), reference-voltage-mv is the nominal
// full-scale value at ADC_ATTEN_DB_12 (battery-sense has no calibration path, unlike the
// old driver's adc_cali fallback).
battery-sense {
compatible = "battery-sense";
io-channel = <&adc0 0>;
reference-voltage-mv = <3300>;
multiplier = <1850>;
};
display_backlight_pwm {
compatible = "espressif,esp32-pwm-ledc";
pin = <&gpio0 23 GPIO_FLAG_NONE>;
period-ns = <50000>;
ledc-timer = <1>;
ledc-channel = <0>;
};
display_backlight {
compatible = "pwm-backlight";
pwm = <&display_backlight_pwm>;
};
display0 {
compatible = "jdi,jd9165";
horizontal-resolution = <1024>;
vertical-resolution = <600>;
pin-reset = <&gpio0 0 GPIO_FLAG_NONE>;
ldo-channel = <3>; // LDO_VO3 connects to VDD_MIPI_DPHY
ldo-voltage-mv = <2500>;
num-data-lanes = <2>;
lane-bit-rate-mbps = <750>;
dpi-clock-freq-mhz = <50>;
hsync-pulse-width = <20>;
hsync-back-porch = <160>;
hsync-front-porch = <160>;
vsync-pulse-width = <2>;
vsync-back-porch = <21>;
vsync-front-porch = <12>;
// Skips the wait-for-scanout in draw_bitmap(): prevents stalls/blank flashes when
// other tasks (e.g. flash writes) block timing, at the cost of tear-free rendering
// (matches the deprecated HAL's old Jd9165Display::getLvglPortDisplayDsiConfig(),
// which disabled esp_lvgl_port's avoid_tearing for the same reason).
allow-tearing;
backlight = <&display_backlight>;
// Vendor bring-up sequence from the ESP32-P4 Function EV Board reference, carried over
// unchanged from the deprecated HAL's old Jd9165Display.cpp. Framing is
// [cmd, data-len, delay-ms, data-len bytes of data...] - see jd9165-module's
// init-sequence binding property for the encoding.
init-sequence = [
0x30 1 0 0x00
0xF7 4 0 0x49 0x61 0x02 0x00
0x30 1 0 0x01
0x04 1 0 0x0C
0x05 1 0 0x00
0x06 1 0 0x00
0x0B 1 0 0x11
0x17 1 0 0x00
0x20 1 0 0x04
0x1F 1 0 0x05
0x23 1 0 0x00
0x25 1 0 0x19
0x28 1 0 0x18
0x29 1 0 0x04
0x2A 1 0 0x01
0x2B 1 0 0x04
0x2C 1 0 0x01
0x30 1 0 0x02
0x01 1 0 0x22
0x03 1 0 0x12
0x04 1 0 0x00
0x05 1 0 0x64
0x0A 1 0 0x08
0x0B 11 0 0x0A 0x1A 0x0B 0x0D 0x0D 0x11 0x10 0x06 0x08 0x1F 0x1D
0x0C 11 0 0x0D 0x0D 0x0D 0x0D 0x0D 0x0D 0x0D 0x0D 0x0D 0x0D 0x0D
0x0D 11 0 0x16 0x1B 0x0B 0x0D 0x0D 0x11 0x10 0x07 0x09 0x1E 0x1C
0x0E 11 0 0x0D 0x0D 0x0D 0x0D 0x0D 0x0D 0x0D 0x0D 0x0D 0x0D 0x0D
0x0F 11 0 0x16 0x1B 0x0D 0x0B 0x0D 0x11 0x10 0x1C 0x1E 0x09 0x07
0x10 11 0 0x0D 0x0D 0x0D 0x0D 0x0D 0x0D 0x0D 0x0D 0x0D 0x0D 0x0D
0x11 11 0 0x0A 0x1A 0x0D 0x0B 0x0D 0x11 0x10 0x1D 0x1F 0x08 0x06
0x12 11 0 0x0D 0x0D 0x0D 0x0D 0x0D 0x0D 0x0D 0x0D 0x0D 0x0D 0x0D
0x14 4 0 0x00 0x00 0x11 0x11
0x18 1 0 0x99
0x30 1 0 0x06
0x12 14 0 0x36 0x2C 0x2E 0x3C 0x38 0x35 0x35 0x32 0x2E 0x1D 0x2B 0x21 0x16 0x29
0x13 14 0 0x36 0x2C 0x2E 0x3C 0x38 0x35 0x35 0x32 0x2E 0x1D 0x2B 0x21 0x16 0x29
0x30 1 0 0x0A
0x02 1 0 0x4F
0x0B 1 0 0x40
0x12 1 0 0x3E
0x13 1 0 0x78
0x30 1 0 0x0D
0x0D 1 0 0x04
0x10 1 0 0x0C
0x11 1 0 0x0C
0x12 1 0 0x0C
0x13 1 0 0x0C
0x30 1 0 0x00
0x3A 1 0 0x55
0x11 1 120 0x00
0x29 1 20 0x00
];
};
};