Files
tactility/Drivers/jd9165-module/include/drivers/jd9165.h
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

70 lines
2.2 KiB
C

// SPDX-License-Identifier: Apache-2.0
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
#include <stdint.h>
#include <stdbool.h>
#include <tactility/device.h>
#include <tactility/drivers/gpio.h>
struct Jd9165Config {
uint16_t horizontal_resolution;
uint16_t vertical_resolution;
uint8_t bits_per_pixel;
bool bgr_order;
bool invert_color;
bool mirror_x;
bool mirror_y;
// Reset pin for the panel. GPIO_PIN_SPEC_NONE falls back to a software reset sent over the
// DBI command interface (see esp_lcd_jd9165's panel_jd9165_reset()).
struct GpioPinSpec pin_reset;
bool reset_active_high;
// LDO channel powering the MIPI DSI PHY - the PHY has no power of its own until this is
// acquired, so it must happen before the DSI bus is created. Both fields are int32_t (not
// uint32_t) to exactly match esp_ldo_channel_config_t's plain `int` fields - assigning a
// uint32_t into that struct's brace-init would be a narrowing conversion (-Werror=narrowing).
int32_t ldo_channel;
int32_t ldo_voltage_mv;
uint8_t dsi_bus_id;
// Number of MIPI DSI data lanes. 0 falls back to the maximum available.
uint8_t num_data_lanes;
uint32_t lane_bit_rate_mbps;
uint32_t dpi_clock_freq_mhz;
uint32_t hsync_pulse_width;
uint32_t hsync_back_porch;
uint32_t hsync_front_porch;
uint32_t vsync_pulse_width;
uint32_t vsync_back_porch;
uint32_t vsync_front_porch;
// Number of screen-sized frame buffers the driver allocates (0 or 1 = single-buffered).
uint8_t num_fbs;
bool use_dma2d;
bool disable_lp;
// See the 'allow-tearing' binding property.
bool allow_tearing;
// Custom vendor init sequence, flattened as bytes: a run of
// [cmd, data_len, delay_ms, data_len bytes of data...] entries. NULL/0 falls back to the
// JD9165 component's own built-in default sequence (see vendor_specific_init_default in
// esp_lcd_jd9165.c) - just a sleep-out + display-on, not guaranteed to match any particular
// panel's actual bring-up requirements.
const uint8_t* init_sequence;
uint32_t init_sequence_length;
// Optional reference to this display's backlight device, NULL if none.
struct Device* backlight;
};
#ifdef __cplusplus
}
#endif