/*
 * board.h
 *
 * Copyright (C) 2012-2020, Samsung Electronics Co., Ltd.
 *
 * Board base registers and structures
 */

#ifndef __BOARD_H__
#define __BOARD_H__

#include "base.h"

/* Define screen resolution */
#define BOARD_SCREENWIDTH    1080
#define BOARD_SCREENHIGHT    2400

/* Define screen density */
#define BOARD_WDENSITY    466
#define BOARD_HDENSITY    405

#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                           0x100000

/* Define for specific values which are dependent by model */
#define SENSOR_MAX_X_DEFAULT               4096
#define SENSOR_MAX_Y_DEFAULT               4096
#define TSP_TYPE_ILITEK                    0x01
#define TSP_TYPE_NOVATEK                   0x02
/* =============================================== */
/* Board memory map */
/* GPIO registers and bits */
#define GPIO_PA_BASE                       0x10005000

/* EINT Base address */
#define EINT_PA_BASE                       0x1000B000
#define OFFSET_EINT_ACK0                   0x40
#define OFFSET_EINT_RAW_STA0               0xA00

/* Interrupt IDs */
#define NUM_SGI                            16
#define NUM_PPI                            16
#define SPI_IRQ(x)                         (NUM_SGI + NUM_PPI + x)

/* GIC irq number */
#define TOUCH_INT_NUM                      222

/* EINT Number */
#define INTC_BIT(irq)                      ((irq) & 0x1F)
#define TSP_INT                            INTC_BIT(10)

/* Interrupt Trigger type */
#define EINTF_TRIGGER_LEVEL_LOW            0x00000000
#define EINTF_TRIGGER_LEVEL_HIGH           0x00000001
#define EINTF_TRIGGER_EDGE_FALLING         0x00000002
#define EINTF_TRIGGER_EDGE_RISING          0x00000003

/* Touch IC Address */
#define STM_I2C_ADDR                       0x49
#define TOUCH_IC_SLAVE_ADDR                STM_I2C_ADDR

/* I2C driver name for touch interface */
#define TOUCH_I2C_DRVNAME                  "/dev/i2c/i2c0"

#endif /* __BOARD_H__ */
