151 lines
3.5 KiB
C
151 lines
3.5 KiB
C
/*
|
|
* Copyright (c) 2020 PHYTEC Messtechnik GmbH
|
|
*
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
#ifndef ZEPHYR_DRIVERS_DISPLAY_UC81XX_REGS_H_
|
|
#define ZEPHYR_DRIVERS_DISPLAY_UC81XX_REGS_H_
|
|
|
|
/* UC8176/UC8179 */
|
|
#define UC81XX_CMD_PSR 0x00
|
|
#define UC81XX_CMD_PWR 0x01
|
|
#define UC81XX_CMD_POF 0x02
|
|
#define UC81XX_CMD_PFS 0x03
|
|
#define UC81XX_CMD_PON 0x04
|
|
#define UC81XX_CMD_PMES 0x05
|
|
#define UC81XX_CMD_BTST 0x06
|
|
#define UC81XX_CMD_DSLP 0x07
|
|
#define UC81XX_CMD_DTM1 0x10
|
|
#define UC81XX_CMD_DSP 0x11
|
|
#define UC81XX_CMD_DRF 0x12
|
|
|
|
/* UC8179 only */
|
|
#define UC81XX_CMD_DTM2 0x13
|
|
#define UC81XX_CMD_DUSPI 0x15
|
|
#define UC81XX_CMD_AUTO 0x17
|
|
#define UC81XX_CMD_LUTOPT 0x2A
|
|
#define UC81XX_CMD_KWOPT 0x2B
|
|
|
|
#define UC81XX_CMD_LUTC 0x20
|
|
#define UC81XX_CMD_LUTWW 0x21
|
|
#define UC81XX_CMD_LUTKW 0x22
|
|
#define UC81XX_CMD_LUTWK 0x23
|
|
#define UC81XX_CMD_LUTKK 0x24
|
|
#define UC81XX_CMD_LUTBD 0x25
|
|
|
|
/* UC8176/UC8179 */
|
|
#define UC81XX_CMD_PLL 0x30
|
|
#define UC81XX_CMD_TSC 0x40
|
|
#define UC81XX_CMD_TSE 0x41
|
|
#define UC81XX_CMD_TSW 0x42
|
|
#define UC81XX_CMD_TSR 0x43
|
|
|
|
/* UC8179 */
|
|
#define UC81XX_CMD_PBC 0x44
|
|
|
|
/* UC8176/UC8179 - different register layouts */
|
|
#define UC81XX_CMD_CDI 0x50
|
|
/* UC8176/UC8179 */
|
|
#define UC81XX_CMD_LPD 0x51
|
|
|
|
/* UC8179 */
|
|
#define UC81XX_CMD_EVS 0x52
|
|
|
|
/* UC8176/UC8179 */
|
|
#define UC81XX_CMD_TCON 0x60
|
|
#define UC81XX_CMD_TRES 0x61
|
|
#define UC81XX_CMD_GSST 0x65
|
|
#define UC81XX_CMD_REV 0x70
|
|
#define UC81XX_CMD_FLG 0x71
|
|
#define UC81XX_CMD_AMV 0x80
|
|
#define UC81XX_CMD_VV 0x81
|
|
#define UC81XX_CMD_VDCS 0x82
|
|
#define UC81XX_CMD_PTL 0x90
|
|
#define UC81XX_CMD_PTIN 0x91
|
|
#define UC81XX_CMD_PTOUT 0x92
|
|
#define UC81XX_CMD_PGM 0xA0
|
|
#define UC81XX_CMD_APG 0xA1
|
|
#define UC81XX_CMD_ROTP 0xA2
|
|
#define UC81XX_CMD_CCSET 0xE0
|
|
#define UC81XX_CMD_PWS 0xE3
|
|
|
|
/* UC8179 */
|
|
#define UC81XX_CMD_LVSEL 0xE4
|
|
|
|
/* UC8176/UC8179 */
|
|
#define UC81XX_CMD_TSSET 0xE5
|
|
|
|
/* UC8179 */
|
|
#define UC81XX_CMD_TSBDRY 0xE7
|
|
|
|
#define UC81XX_PSR_REG BIT(5)
|
|
#define UC81XX_PSR_KW_R BIT(4)
|
|
#define UC81XX_PSR_UD BIT(3)
|
|
#define UC81XX_PSR_SHL BIT(2)
|
|
#define UC81XX_PSR_SHD BIT(1)
|
|
#define UC81XX_PSR_RST BIT(0)
|
|
|
|
#define UC81XX_AUTO_PON_DRF_POF 0xA5
|
|
#define UC81XX_AUTO_PON_DRF_POF_DSLP 0xA7
|
|
|
|
#define UC8176_CDI_VBD_MASK 0xc0
|
|
#define UC8176_CDI_VBD0 BIT(6)
|
|
#define UC8176_CDI_VBD1 BIT(7)
|
|
#define UC8176_CDI_DDX1 BIT(5)
|
|
#define UC8176_CDI_DDX0 BIT(4)
|
|
#define UC8176_CDI_CDI_MASK 0x0f
|
|
|
|
#define UC8179_CDI_REG_LENGTH 2U
|
|
#define UC8179_CDI_BDZ_DDX_IDX 0
|
|
#define UC8179_CDI_CDI_IDX 1
|
|
#define UC8179_CDI_BDZ BIT(7)
|
|
#define UC8179_CDI_BDV1 BIT(5)
|
|
#define UC8179_CDI_BDV0 BIT(4)
|
|
#define UC8179_CDI_N2OCP BIT(3)
|
|
#define UC8179_CDI_DDX1 BIT(1)
|
|
#define UC8179_CDI_DDX0 BIT(0)
|
|
|
|
struct uc81xx_tres8 {
|
|
uint8_t hres;
|
|
uint8_t vres;
|
|
} __packed;
|
|
|
|
BUILD_ASSERT(sizeof(struct uc81xx_tres8) == 2);
|
|
|
|
struct uc81xx_ptl8 {
|
|
uint8_t hrst;
|
|
uint8_t hred;
|
|
uint8_t vrst;
|
|
uint8_t vred;
|
|
uint8_t flags;
|
|
} __packed;
|
|
|
|
BUILD_ASSERT(sizeof(struct uc81xx_ptl8) == 5);
|
|
|
|
struct uc81xx_tres16 {
|
|
uint16_t hres;
|
|
uint16_t vres;
|
|
} __packed;
|
|
|
|
BUILD_ASSERT(sizeof(struct uc81xx_tres16) == 4);
|
|
|
|
struct uc81xx_ptl16 {
|
|
uint16_t hrst;
|
|
uint16_t hred;
|
|
uint16_t vrst;
|
|
uint16_t vred;
|
|
uint8_t flags;
|
|
} __packed;
|
|
|
|
BUILD_ASSERT(sizeof(struct uc81xx_ptl16) == 9);
|
|
|
|
#define UC81XX_PTL_FLAG_PT_SCAN BIT(0)
|
|
|
|
/* Time constants in ms */
|
|
#define UC81XX_RESET_DELAY 10U
|
|
#define UC81XX_PON_DELAY 100U
|
|
#define UC81XX_BUSY_DELAY 1U
|
|
|
|
#endif /* ZEPHYR_DRIVERS_DISPLAY_UC81XX_REGS_H_ */
|