/*
  *
  **************************************************************************
  **                        STMicroelectronics				**
  **************************************************************************
  **                        marco.cali@st.com				 **
  **************************************************************************
  *                                                                        *
  *		HW related data						   *
  *                                                                        *
  **************************************************************************
  **************************************************************************
  *
  */

/*!
  * \file ftsHardware.h
  * \brief Contains all the definitions and information related to the IC
  * from an hardware point of view
  */

#ifndef FTS_HARDWARE_H
#define FTS_HARDWARE_H

/* DIGITAL CHIP INFO */
#define DCHIP_ID_0			0x36	/* /< LSB chip ID for FTM5 */
#define DCHIP_ID_1			0x39	/* /< MSB chip ID for FTM5 */

#define DCHIP_FW_VER_BYTE		2	/* /< number of bytes of the fw
						 * versions */

/* CHUNKS */
#define READ_CHUNK			1024	/* /< chunk dimension of
						 * a single i2c read,
						 * max allowed value is 2kB */
#define WRITE_CHUNK			1024	/* /< chunk dimension of
						 * a single i2c write,
						 * max allowed value is 2kB */
#define MEMORY_CHUNK			1024	/* /< chunk dimenasion of
						 * a single i2c write on mem,
						 * max allowed value is 2kB */

/* PROTOCOL INFO */
#define SPI_INETERFACE
#ifdef I2C_INTERFACE
#define I2C_SAD				0x49	/* /< slave address of the IC */
#else
#define SPI_DELAY_CS			10	/* /< time in usec to wait
						 * before rising the CS */
#endif

#define IER_ENABLE			0x41	/* /< value to write in IER_ADDR
						 *  to enable the interrupts */
#define IER_DISABLE			0x00	/* /< value to write in IER_ADDR
						 *  to disable the interrupts
						 **/

/* FLASH COMMAND */
/** @defgroup flash_command Flash Commands
  *	All the commands that works with the flash of the IC
  *	@{
  */
#define FLASH_CMD_UNLOCK		0xF7

#define FLASH_CMD_READ_REGISTER		0xFA
#define FLASH_CMD_WRITE_REGISTER	0xFA

/* FLASH UNLOCK PARAMETER */
#define FLASH_UNLOCK_CODE0		0x25
#define FLASH_UNLOCK_CODE1		0x20
#define FLASH_UNLOCK_CODE2		0x6B
#define FLASH_UNLOCK_CODE3		0x00

/* FLASH UVLO ENABLE PARAMETER */
#define FLASH_UVLO_ENABLE_CODE0		0x1B
#define FLASH_UVLO_ENABLE_CODE1		0x66

/* FLASH AUTOPOWERDOWN ENABLE PARAMETER */
#define FLASH_AUTOPOWERDOWN_ENABLE_CODE0 0x68
#define FLASH_AUTOPOWERDOWN_ENABLE_CODE1 0x13

#define INFO_BLOCK_SIZE			16384
#define INFO_BLOCK_LOCKDOWN		0x1800
#define INFO_BLOCK_IOFF			0x19E8
#define INFO_BLOCK_OSC			0x1EAC
#define INFO_BLOCK_AOFFSET		0x1D48
#define INFO_BLOCK_CG			0x1E08

/* FLASH ERASE and DMA PARAMETER */
#define FLASH_ERASE_START		0x80
#define FLASH_ERASE_CODE1		0xC0
#define FLASH_DMA_CODE1			0xC0
#define FLASH_ERASE_UNLOCK_CODE0	0xDE
#define FLASH_ERASE_UNLOCK_CODE1	0x03
#define FLASH_ERASE_CODE0		0x6A
#define FLASH_DMA_CODE0			0x71
#define FLASH_DMA_CONFIG		0x72
#define FLASH_NUM_PAGE			32	/* /< number of pages in main
						 * flash */
#define FLASH_CX_PAGE_START		28	/* /< starting page which
						 * contain Cx data */
#define FLASH_CX_PAGE_END		30	/* /< last page which contain Cx
						 * data */
#define FLASH_PANEL_PAGE_START		26	/* /< starting page which
						 * contain Panel Init data */
#define FLASH_PANEL_PAGE_END		27	/* /< last page which contain
						 * Panel Init data */
/** @} */

/* FLASH ADDRESS */
#define FLASH_ADDR_CODE			0x00000000	/* /< address of code in
							 * FTI */
#define FLASH_ADDR_CONFIG		0x00007C00	/* /< address of config
							 * in FTI */
#define FLASH_ADDR_CX			0x00007000	/* /< address of Init
							 * data in FTI */

/* SIZES FW, CODE, CONFIG, MEMH */
/** @defgroup fw_file FW file info
 *	All the info related to the fw file
 *	@{
 */
#define FW_HEADER_SIZE			64	/* /< dimension of the header in
						 * .fts file */
#define FW_HEADER_SIGNATURE		0xAA55AA55	/* /< header signature
							 * */
#define FW_FTB_VER			0x00000001	/* /< .ftb version */
#define FW_BYTES_ALIGN			4	/* /< allignment of the info */
#define FW_BIN_VER_OFFSET		16	/* /< offset of the fw version
						 * in the .ftb file */
#define FW_BIN_CONFIG_ID_OFFSET		20	/* /< offset of the config id in
						 * the .ftb file */
#define FW_CX_VERSION			(16 + 4)/* CX version offset in sec2 of
						 * FW */
/** @} */

/* FIFO */
#define FIFO_EVENT_SIZE			8	/* /< number of bytes of one
						 * event */
#define FIFO_DEPTH			32	/* /< max number of events that
						  * the FIFO can collect before
						  * going in overflow in FTM5 */

#ifdef I2C_INTERFACE
#define FIFO_CMD_READALL		0x86	/* /< command to read all
						  * the events in the FIFO */
#else
#define FIFO_CMD_READALL		0x87	/* /< command to read all
						  * the events in the FIFO */
#endif
#define FIFO_CMD_READONE		FIFO_CMD_READALL/* /< commad to read
							  * one event from FIFO
							  **/


/* OP CODES FOR MEMORY (based on protocol) */
#ifdef I2C_INTERFACE
#define FTS_CMD_HW_REG_R	0xFA	/* /< command to read an hw register if
					 * FTI */
#define FTS_CMD_HW_REG_W	0xFA	/* /< command to write an hw register if
					 * FTI */
#define FTS_CMD_FRAMEBUFFER_W	0xA6	/* /< command to write the framebuffer
					 * if FTI
					 */
#define FTS_CMD_FRAMEBUFFER_R	0xA6	/* /< command to read the framebuffer if
					 * FTI */
#define FTS_CMD_CONFIG_R	0xA8	/* /< command to read the config memory
					 * if FTI */
#define FTS_CMD_CONFIG_W	0xA8	/* /< command to write the config memory
					 * if FTI */
#else
#define FTS_CMD_HW_REG_R	0xFB	/* /< command to read an hw register if
					 * FTI */
#define FTS_CMD_HW_REG_W	0xFA	/* /< command to write an hw register if
					 * FTI */
#define FTS_CMD_FRAMEBUFFER_W	0xA6	/* /< command to write the framebuffer
					 * if FTI
					 */
#define FTS_CMD_FRAMEBUFFER_R	0xA7	/* /< command to read the framebuffer if
					 * FTI */
#define FTS_CMD_CONFIG_R	0xA9	/* /< command to read the config memory
					 * if FTI */
#define FTS_CMD_CONFIG_W	0xA8	/* /< command to write the config memory
					 * if FTI */
#endif

/* DUMMY BYTES DATA */
#ifndef I2C_INTERFACE
#define DUMMY_HW_REG		1	/* /< 1 if the first byte read from HW
					 * register is dummy */
#define DUMMY_FRAMEBUFFER	1	/* /< 1 if the first byte read from
					 * Frame buffer is dummy */
#define DUMMY_CONFIG		1	/* /< 1 if the first byte read from
					 * Config Memory is dummy */
#define DUMMY_FIFO		1	/* /< 1 if the first byte read from FIFO
					 * is dummy */
#else
#define DUMMY_HW_REG		0	/* /< 1 if the first byte read from HW
					 * register is dummy */
#define DUMMY_FRAMEBUFFER	0	/* /< 1 if the first byte read from
					 * Frame buffer is dummy */
#define DUMMY_CONFIG		0	/* /< 1 if the first byte read from
					 * Config Memory is dummy */
#define DUMMY_FIFO		0	/* /< 1 if the first byte read from FIFO
					 * is dummy */
#endif

/** @defgroup hw_adr HW Address
  * @ingroup address
  * Important addresses of hardware registers (and sometimes their important
  * values)
  * @{
  */

/* IMPORTANT HW ADDRESSES (u64) */
#define ADDR_FRAMEBUFFER	((u64)0x0000000000000000)	/* /< frame
								 * buffer
								 * address in
								 * memory */
#define ADDR_ERROR_DUMP		((u64)0x000000000000EF80)	/* /< start
								 * address dump
								 * error log */

/* SYSTEM RESET INFO */
#define ADDR_SYSTEM_RESET	((u64)0x0000000020000024)	/* /< address of
								 * System
								 * control
								 * register in
								 * FTI */
/* value to write in SYSTEM_RESET_ADDRESS to perform a system reset in FTM5 */
#define SYSTEM_RESET_VALUE	0x81


/* REMAP REGISTER */
#define ADDR_BOOT_OPTION	((u64)0x0000000020000025)	/* /< address of
								 * Boot option
								 * register */

/* INTERRUPT INFO */
#define ADDR_IER		((u64)0x0000000020000029)	/* /< address of
								 * the Interrupt
								 * enable
								 * register in
								 * FTMI */

/* Chip ID/Fw Version */
#define ADDR_DCHIP_ID		((u64)0x0000000020000000)	/* /< chip id
								 * address for
								 * FTI */
#define ADDR_DCHIP_FW_VER	((u64)0x0000000020000004)	/* /< fw version
								 * address for
								 * FTI */

/* INTERFACE REGISTER */
#define ADDR_ICR		((u64)0x000000002000002D)	/* /< address of
								 * Device
								 * control
								 * register
								 * to set the
								 * communication
								 * protocol
								 * (SPI/I2C) */

#define SPI4_MASK		0x02	/* /< bit to set spi4 */

#define ADDR_FLASH_STATUS       ((u64)0x0000000020000068)
#define ADDR_INFOBLOCK          ((u64)0x0000000000040000)


/* CRC ADDR */
#define ADDR_CRC		((u64)0x0000000020000078)	/* /< address of
								 * the CRC
								 * control
								 * register in
								 * FTI */
#define CRC_MASK		0x03	/* /< bitmask which reveal if
					 * there is a CRC error in the flash */

#define ADDR_CONFIG_OFFSET	((u64)0x0000000000000000)	/* /< config
								 * address in
								 * memory if FTI
								 * */

#define ADDR_GPIO_INPUT		((u64)0x0000000020000030)	/* /< address of
								 * GPIO input
								 * register */
#define ADDR_GPIO_DIRECTION	((u64)0x0000000020000032)	/* /< address of
								 * GPIO
								 * direction
								 * register */
#define ADDR_GPIO_PULLUP	((u64)0x0000000020000034)	/* /< address of
								 * GPIO pullup
								 * register */
#define ADDR_GPIO_CONFIG_REG0	((u64)0x000000002000003D)	/* /< address of
								 * GPIO config
								 * register */
#define ADDR_GPIO_CONFIG_REG2	((u64)0x000000002000003F)	/* /< address of
								 * GPIO config
								 * register */

/**@}*/


#endif
