/*
 *
 * Copyright (C) 2012-2019, Samsung Electronics Co., Ltd.
 *
 * Board base registers and structures
 */

#ifndef __BOARD_H__
#define __BOARD_H__

#include "base.h"

//#define USE_TOUCH_INTERRUPT

/* Display constants */
#define BOARD_GRAYSCALE_DEPTH              8
#define BOARD_REDBITDEPTH                  8
#define BOARD_GREENBITDEPTH                8
#define BOARD_BLUEBITDEPTH                 8
#define BOARD_ALPHABITDEPTH                8
#define BOARD_BITSPERPIXEL                 32 /* RGBA */

#define FB_ALIGN                           SIZE_64KB

/* Define for specific values which are dependent by model */
#define SENSOR_MAX_X_DEFAULT               4095
#define SENSOR_MAX_Y_DEFAULT               4095

/* =============================================== */
/* Board memory map */

/* Interrupt IDs */
#define NUM_SGI                            16
#define NUM_PPI                            16
#define SPI_IRQ(x)                         (NUM_SGI + NUM_PPI + x)

/* suppose GIC 192 is dedicated at tpd_enter_tui() in Linux to use attn irq*/
#define TOUCH_INT_NUM                      SPI_IRQ(160)
#define I2C_INT_NUM                        SPI_IRQ(270)

/* Touch IC Address */
#define STM_I2C_ADDR                       0x49
#define SYNAPTIC_I2C_ADDR                  0x4b
#define SEC_I2C_ADDR                       0x48
#define MELFAS_I2C_ADDR                    0x48
#define CYPRESS_I2C_ADDR                   0x24

#ifdef USE_TOUCH_CYPRESS
#define TOUCH_IC_SLAVE_ADDR                CYPRESS_I2C_ADDR
#elif USE_TOUCH_FTS
#define TOUCH_IC_SLAVE_ADDR                STM_I2C_ADDR
#elif USE_TOUCH_MELFAS
#define TOUCH_IC_SLAVE_ADDR                MELFAS_I2C_ADDR
#elif USE_TOUCH_RMI4
#define TOUCH_IC_SLAVE_ADDR                SYNAPTIC_I2C_ADDR
#elif USE_TOUCH_SEC
#define TOUCH_IC_SLAVE_ADDR                SEC_I2C_ADDR
#endif

/* I2C driver name for touch interface */
#define TOUCH_I2C_DRVNAME                  "/dev/i2c/i2c1"

#endif /* __BOARD_H__ */
