This patch includes initial support for FT800 display driver. It includes basic features. It can be easily extended with more FT800 display list and co-processor features. Signed-off-by: Hubert Miś <hubert.mis@gmail.com>
233 lines
6.6 KiB
C
233 lines
6.6 KiB
C
/*
|
|
* Copyright (c) 2020 Hubert Miś
|
|
*
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
/**
|
|
* @file
|
|
* @brief FT8XX memory map
|
|
*/
|
|
|
|
#ifndef ZEPHYR_DRIVERS_MISC_FT8XX_FT8XX_MEMORY_H_
|
|
#define ZEPHYR_DRIVERS_MISC_FT8XX_FT8XX_MEMORY_H_
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/**
|
|
* @brief FT8xx memory addresses
|
|
* @defgroup ft8xx_memory FT8xx memory map
|
|
* @ingroup ft8xx_interface
|
|
* @{
|
|
*/
|
|
|
|
/** Main parts of FT800 memory map */
|
|
enum ft800_memory_map_t {
|
|
FT800_RAM_G = 0x000000,
|
|
FT800_ROM_CHIPID = 0x0C0000,
|
|
FT800_ROM_FONT = 0x0BB23C,
|
|
FT800_ROM_FONT_ADDR = 0x0FFFFC,
|
|
FT800_RAM_DL = 0x100000,
|
|
FT800_RAM_PAL = 0x102000,
|
|
FT800_REG_ = 0x102400,
|
|
FT800_RAM_CMD = 0x108000
|
|
};
|
|
|
|
/** Main parts of FT810 memory map */
|
|
enum ft810_memory_map_t {
|
|
FT810_RAM_G = 0x000000,
|
|
FT810_RAM_DL = 0x300000,
|
|
FT810_REG_ = 0x302000,
|
|
FT810_RAM_CMD = 0x308000
|
|
};
|
|
|
|
/** FT800 register addresses */
|
|
enum ft800_register_address_t {
|
|
FT800_REG_ID = 0x102400,
|
|
FT800_REG_FRAMES = 0x102404,
|
|
FT800_REG_CLOCK = 0x102408,
|
|
FT800_REG_FREQUENCY = 0x10240C,
|
|
FT800_REG_RENDERMODE = 0x102410,
|
|
FT800_REG_SNAPY = 0x102414,
|
|
FT800_REG_SNAPSHOT = 0x102418,
|
|
FT800_REG_CPURESET = 0x10241C,
|
|
FT800_REG_TAP_CRC = 0x102420,
|
|
FT800_REG_TAP_MASK = 0x102424,
|
|
FT800_REG_HCYCLE = 0x102428,
|
|
FT800_REG_HOFFSET = 0x10242C,
|
|
FT800_REG_HSIZE = 0x102430,
|
|
FT800_REG_HSYNC0 = 0x102434,
|
|
FT800_REG_HSYNC1 = 0x102438,
|
|
FT800_REG_VCYCLE = 0x10243C,
|
|
FT800_REG_VOFFSET = 0x102440,
|
|
FT800_REG_VSIZE = 0x102444,
|
|
FT800_REG_VSYNC0 = 0x102448,
|
|
FT800_REG_VSYNC1 = 0x10244C,
|
|
FT800_REG_DLSWAP = 0x102450,
|
|
FT800_REG_ROTATE = 0x102454,
|
|
FT800_REG_OUTBITS = 0x102458,
|
|
FT800_REG_DITHER = 0x10245C,
|
|
FT800_REG_SWIZZLE = 0x102460,
|
|
FT800_REG_CSPREAD = 0x102464,
|
|
FT800_REG_PCLK_POL = 0x102468,
|
|
FT800_REG_PCLK = 0x10246C,
|
|
FT800_REG_TAG_X = 0x102470,
|
|
FT800_REG_TAG_Y = 0x102474,
|
|
FT800_REG_TAG = 0x102478,
|
|
FT800_REG_VOL_PB = 0x10247C,
|
|
FT800_REG_VOL_SOUND = 0x102480,
|
|
FT800_REG_SOUND = 0x102484,
|
|
FT800_REG_PLAY = 0x102488,
|
|
FT800_REG_GPIO_DIR = 0x10248C,
|
|
FT800_REG_GPIO = 0x102490,
|
|
|
|
FT800_REG_INT_FLAGS = 0x102498,
|
|
FT800_REG_INT_EN = 0x10249C,
|
|
FT800_REG_INT_MASK = 0x1024A0,
|
|
FT800_REG_PLAYBACK_START = 0x1024A4,
|
|
FT800_REG_PLAYBACK_LENGTH = 0x1024A8,
|
|
FT800_REG_PLAYBACK_READPTR = 0x1024AC,
|
|
FT800_REG_PLAYBACK_FREQ = 0x1024B0,
|
|
FT800_REG_PLAYBACK_FORMAT = 0x1024B4,
|
|
FT800_REG_PLAYBACK_LOOP = 0x1024B8,
|
|
FT800_REG_PLAYBACK_PLAY = 0x1024BC,
|
|
FT800_REG_PWM_HZ = 0x1024C0,
|
|
FT800_REG_PWM_DUTY = 0x1024C4,
|
|
FT800_REG_MACRO_0 = 0x1024C8,
|
|
FT800_REG_MACRO_1 = 0x1024CC,
|
|
|
|
FT800_REG_CMD_READ = 0x1024E4,
|
|
FT800_REG_CMD_WRITE = 0x1024E8,
|
|
FT800_REG_CMD_DL = 0x1024EC,
|
|
FT800_REG_TOUCH_MODE = 0x1024F0,
|
|
FT800_REG_TOUCH_ADC_MODE = 0x1024F4,
|
|
FT800_REG_TOUCH_CHARGE = 0x1024F8,
|
|
FT800_REG_TOUCH_SETTLE = 0x1024FC,
|
|
FT800_REG_TOUCH_OVERSAMPLE = 0x102500,
|
|
FT800_REG_TOUCH_RZTHRESH = 0x102504,
|
|
FT800_REG_TOUCH_RAW_XY = 0x102508,
|
|
FT800_REG_TOUCH_RZ = 0x10250C,
|
|
FT800_REG_TOUCH_SCREEN_XY = 0x102510,
|
|
FT800_REG_TOUCH_TAG_XY = 0x102514,
|
|
FT800_REG_TOUCH_TAG = 0x102518,
|
|
FT800_REG_TOUCH_TRANSFORM_A = 0x10251C,
|
|
FT800_REG_TOUCH_TRANSFORM_B = 0x102520,
|
|
FT800_REG_TOUCH_TRANSFORM_C = 0x102524,
|
|
FT800_REG_TOUCH_TRANSFORM_D = 0x102528,
|
|
FT800_REG_TOUCH_TRANSFORM_E = 0x10252C,
|
|
FT800_REG_TOUCH_TRANSFORM_F = 0x102530,
|
|
|
|
FT800_REG_TOUCH_DIRECT_XY = 0x102574,
|
|
FT800_REG_TOUCH_DIRECT_Z1Z2 = 0x102578,
|
|
|
|
FT800_REG_TRACKER = 0x109000
|
|
};
|
|
|
|
/** FT810 register addresses */
|
|
enum ft810_register_address_t {
|
|
FT810_REG_TRIM = 0x10256C,
|
|
|
|
FT810_REG_ID = 0x302000,
|
|
FT810_REG_FRAMES = 0x302004,
|
|
FT810_REG_CLOCK = 0x302008,
|
|
FT810_REG_FREQUENCY = 0x30200C,
|
|
FT810_REG_RENDERMODE = 0x302010,
|
|
FT810_REG_SNAPY = 0x302014,
|
|
FT810_REG_SNAPSHOT = 0x302018,
|
|
FT810_REG_CPURESET = 0x302020,
|
|
FT810_REG_TAP_CRC = 0x302020,
|
|
FT810_REG_TAP_MASK = 0x302024,
|
|
FT810_REG_HCYCLE = 0x30202C,
|
|
FT810_REG_HOFFSET = 0x302030,
|
|
FT810_REG_HSIZE = 0x302034,
|
|
FT810_REG_HSYNC0 = 0x302038,
|
|
FT810_REG_HSYNC1 = 0x30203C,
|
|
FT810_REG_VCYCLE = 0x302040,
|
|
FT810_REG_VOFFSET = 0x302044,
|
|
FT810_REG_VSIZE = 0x302048,
|
|
FT810_REG_VSYNC0 = 0x30204C,
|
|
FT810_REG_VSYNC1 = 0x302050,
|
|
FT810_REG_DLSWAP = 0x302054,
|
|
FT810_REG_ROTATE = 0x302058,
|
|
FT810_REG_OUTBITS = 0x30205C,
|
|
FT810_REG_DITHER = 0x302060,
|
|
FT810_REG_SWIZZLE = 0x302064,
|
|
FT810_REG_CSPREAD = 0x302068,
|
|
FT810_REG_PCLK_POL = 0x30206C,
|
|
FT810_REG_PCLK = 0x302070,
|
|
FT810_REG_TAG_X = 0x302074,
|
|
FT810_REG_TAG_Y = 0x302078,
|
|
FT810_REG_TAG = 0x30207C,
|
|
FT810_REG_VOL_PB = 0x302080,
|
|
FT810_REG_VOL_SOUND = 0x302084,
|
|
FT810_REG_SOUND = 0x302088,
|
|
FT810_REG_PLAY = 0x30208C,
|
|
FT810_REG_GPIO_DIR = 0x302090,
|
|
FT810_REG_GPIO = 0x302094,
|
|
FT810_REG_GPIOX_DIR = 0x302098,
|
|
FT810_REG_GPIOX = 0x30209C,
|
|
|
|
FT810_REG_INT_FLAGS = 0x3020A8,
|
|
FT810_REG_INT_EN = 0x3020AC,
|
|
FT810_REG_INT_MASK = 0x3020B0,
|
|
FT810_REG_PLAYBACK_START = 0x3020B4,
|
|
FT810_REG_PLAYBACK_LENGTH = 0x3020B8,
|
|
FT810_REG_PLAYBACK_READPTR = 0x3020BC,
|
|
FT810_REG_PLAYBACK_FREQ = 0x3020C0,
|
|
FT810_REG_PLAYBACK_FORMAT = 0x3020C4,
|
|
FT810_REG_PLAYBACK_LOOP = 0x3020C8,
|
|
FT810_REG_PLAYBACK_PLAY = 0x3020CC,
|
|
FT810_REG_PWM_HZ = 0x3020D0,
|
|
FT810_REG_PWM_DUTY = 0x3020D4,
|
|
|
|
FT810_REG_CMD_READ = 0x3020F8,
|
|
FT810_REG_CMD_WRITE = 0x3020FC,
|
|
FT810_REG_CMD_DL = 0x302100,
|
|
FT810_REG_TOUCH_MODE = 0x302104,
|
|
FT810_REG_TOUCH_ADC_MODE = 0x302108,
|
|
FT810_REG_TOUCH_CHARGE = 0x30210C,
|
|
FT810_REG_TOUCH_SETTLE = 0x302110,
|
|
FT810_REG_TOUCH_OVERSAMPLE = 0x302114,
|
|
FT810_REG_TOUCH_RZTHRESH = 0x302118,
|
|
FT810_REG_TOUCH_RAW_XY = 0x30211C,
|
|
FT810_REG_TOUCH_RZ = 0x302120,
|
|
FT810_REG_TOUCH_SCREEN_XY = 0x302124,
|
|
FT810_REG_TOUCH_TAG_XY = 0x302128,
|
|
FT810_REG_TOUCH_TAG = 0x30212C,
|
|
FT810_REG_TOUCH_TRANSFORM_A = 0x302150,
|
|
FT810_REG_TOUCH_TRANSFORM_B = 0x302154,
|
|
FT810_REG_TOUCH_TRANSFORM_C = 0x302158,
|
|
FT810_REG_TOUCH_TRANSFORM_D = 0x30215C,
|
|
FT810_REG_TOUCH_TRANSFORM_E = 0x302160,
|
|
FT810_REG_TOUCH_TRANSFORM_F = 0x302164,
|
|
FT810_REG_TOUCH_CONFIG = 0x302168,
|
|
|
|
FT810_REG_SPI_WIDTH = 0x302180,
|
|
|
|
FT810_REG_TOUCH_DIRECT_XY = 0x30218C,
|
|
FT810_REG_TOUCH_DIRECT_Z1Z2 = 0x302190,
|
|
|
|
FT810_REG_CMDB_SPACE = 0x302574,
|
|
FT810_REG_CMDB_WRITE = 0x302578,
|
|
|
|
FT810_REG_TRACKER = 0x309000,
|
|
FT810_REG_TRACKER1 = 0x309004,
|
|
FT810_REG_TRACKER2 = 0x309008,
|
|
FT810_REG_TRACKER3 = 0x30900C,
|
|
FT810_REG_TRACKER4 = 0x309010,
|
|
FT810_REG_MEDIAFIFO_READ = 0x309014,
|
|
FT810_REG_MEDIAFIFO_WRITE = 0x309018,
|
|
};
|
|
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* ZEPHYR_DRIVERS_MISC_FT8XX_FT8XX_MEMORY_H_ */
|