/* * Copyright (c) 2023 bytes at work AG * Copyright (c) 2020 Teslabs Engineering S.L. * * SPDX-License-Identifier: Apache-2.0 */ #ifndef ZEPHYR_DRIVERS_DISPLAY_DISPLAY_OTM8009A_H_ #define ZEPHYR_DRIVERS_DISPLAY_DISPLAY_OTM8009A_H_ /** * @name General parameters. * @{ */ /** ID1 */ #define OTM8009A_ID1 0x40U /** Read ID1 command */ #define OTM8009A_CMD_ID1 0xDA /** Reset pulse time (ms), ref. Table 6.3.4.1 */ #define OTM8009A_RESET_TIME 10U /** Wake up time after reset pulse, ref. Table 6.3.4.1 */ #define OTM8009A_WAKE_TIME 20U /** Time to wait after exiting sleep mode (ms), ref. 5.2.11. */ #define OTM8009A_EXIT_SLEEP_MODE_WAIT_TIME 5U /** @} */ /** * @name Display timings (ref. table 6.4.2.1) * @{ */ /** Horizontal low pulse width */ #define OTM8009A_HSYNC 2U /** Horizontal front porch. */ #define OTM8009A_HFP 34U /** Horizontal back porch. */ #define OTM8009A_HBP 34U /** Vertical low pulse width. */ #define OTM8009A_VSYNC 1U /** Vertical front porch. */ #define OTM8009A_VFP 16U /** Vertical back porch. */ #define OTM8009A_VBP 15U /** @} */ /** * @name Register fields. * @{ */ /** * @name MIPI DCS Write Control Display fields. * @{ */ /** Write Control Display: brightness control. */ #define OTM8009A_WRCTRLD_BCTRL BIT(5) /** Write Control Display: display dimming. */ #define OTM8009A_WRCTRLD_DD BIT(3) /** Write Control Display: backlight. */ #define OTM8009A_WRCTRLD_BL BIT(2) /** Adaptibe Brightness Control: off. */ #define OTM8009A_WRCABC_OFF 0x00U /** Adaptibe Brightness Control: user interface. */ #define OTM8009A_WRCABC_UI 0x01U /** Adaptibe Brightness Control: still picture. */ #define OTM8009A_WRCABC_ST 0x02U /** Adaptibe Brightness Control: moving image. */ #define OTM8009A_WRCABC_MV 0x03U /** @} */ /** * @name MIPI MCS (Manufacturer Command Set). * @{ */ /** Address Shift Function */ #define OTM8009A_MCS_ADRSFT 0x0000U /** Panel Type Setting */ #define OTM8009A_MCS_PANSET 0xB3A6U /* Source Driver Timing Setting */ #define OTM8009A_MCS_SD_CTRL 0xC0A2U /** Panel Driving Mode */ #define OTM8009A_MCS_P_DRV_M 0xC0B4U /** Oscillator Adjustment for Idle/Normal mode */ #define OTM8009A_MCS_OSC_ADJ 0xC181U /** RGB Video Mode Setting */ #define OTM8009A_MCS_RGB_VID_SET 0xC1A1U /** Source Driver Precharge Control */ #define OTM8009A_MCS_SD_PCH_CTRL 0xC480U /** Command not documented */ #define OTM8009A_MCS_NO_DOC1 0xC48AU /** Power Control Setting 1 */ #define OTM8009A_MCS_PWR_CTRL1 0xC580U /** Power Control Setting 2 for Normal Mode */ #define OTM8009A_MCS_PWR_CTRL2 0xC590U /** Power Control Setting 4 for DC Voltage */ #define OTM8009A_MCS_PWR_CTRL4 0xC5B0U /** PWM Parameter 1 */ #define OTM8009A_MCS_PWM_PARA1 0xC680U /** PWM Parameter 2 */ #define OTM8009A_MCS_PWM_PARA2 0xC6B0U /** PWM Parameter 3 */ #define OTM8009A_MCS_PWM_PARA3 0xC6B1U /** PWM Parameter 4 */ #define OTM8009A_MCS_PWM_PARA4 0xC6B3U /** PWM Parameter 5 */ #define OTM8009A_MCS_PWM_PARA5 0xC6B4U /** PWM Parameter 6 */ #define OTM8009A_MCS_PWM_PARA6 0xC6B5U /** Panel Control Setting 1 */ #define OTM8009A_MCS_PANCTRLSET1 0xCB80U /** Panel Control Setting 2 */ #define OTM8009A_MCS_PANCTRLSET2 0xCB90U /** Panel Control Setting 3 */ #define OTM8009A_MCS_PANCTRLSET3 0xCBA0U /** Panel Control Setting 4 */ #define OTM8009A_MCS_PANCTRLSET4 0xCBB0U /** Panel Control Setting 5 */ #define OTM8009A_MCS_PANCTRLSET5 0xCBC0U /** Panel Control Setting 6 */ #define OTM8009A_MCS_PANCTRLSET6 0xCBD0U /** Panel Control Setting 7 */ #define OTM8009A_MCS_PANCTRLSET7 0xCBE0U /** Panel Control Setting 8 */ #define OTM8009A_MCS_PANCTRLSET8 0xCBF0U /** Panel U2D Setting 1 */ #define OTM8009A_MCS_PANU2D1 0xCC80U /** Panel U2D Setting 2 */ #define OTM8009A_MCS_PANU2D2 0xCC90U /** Panel U2D Setting 3 */ #define OTM8009A_MCS_PANU2D3 0xCCA0U /** Panel D2U Setting 1 */ #define OTM8009A_MCS_PAND2U1 0xCCB0U /** Panel D2U Setting 2 */ #define OTM8009A_MCS_PAND2U2 0xCCC0U /** Panel D2U Setting 3 */ #define OTM8009A_MCS_PAND2U3 0xCCD0U /** GOA VST Setting */ #define OTM8009A_MCS_GOAVST 0xCE80U /** GOA CLKA1 Setting */ #define OTM8009A_MCS_GOACLKA1 0xCEA0U /** GOA CLKA2 Setting */ #define OTM8009A_MCS_GOACLKA2 0xCEA7U /** GOA CLKA3 Setting */ #define OTM8009A_MCS_GOACLKA3 0xCEB0U /** GOA CLKA4 Setting */ #define OTM8009A_MCS_GOACLKA4 0xCEB7U /** GOA ECLK Setting */ #define OTM8009A_MCS_GOAECLK 0xCFC0U /** GOA Other Options 1 */ #define OTM8009A_MCS_GOAPT1 0xCFC6U /** GOA Signal Toggle Option Setting */ #define OTM8009A_MCS_GOATGOPT 0xCFC7U /** Command not documented */ #define OTM8009A_MCS_NO_DOC2 0xCFD0U /** GVDD/NGVDD */ #define OTM8009A_MCS_GVDDSET 0xD800U /** VCOM Voltage Setting */ #define OTM8009A_MCS_VCOMDC 0xD900U /** Gamma Correction 2.2+ Setting */ #define OTM8009A_MCS_GMCT2_2P 0xE100U /** Gamma Correction 2.2- Setting */ #define OTM8009A_MCS_GMCT2_2N 0xE200U /** Command not documented */ #define OTM8009A_MCS_NO_DOC3 0xF5B6U /** Enable Access Command2 "CMD2" */ #define OTM8009A_MCS_CMD2_ENA1 0xFF00U /** Enable Access Orise Command2 */ #define OTM8009A_MCS_CMD2_ENA2 0xFF80U /** @} */ #endif /* ZEPHYR_DRIVERS_DISPLAY_DISPLAY_OTM8009A_H_ */