#ifndef __X86_64_QUANTA_IX1_RANGELEY_GPIO_TABLE_H__
#define __X86_64_QUANTA_IX1_RANGELEY_GPIO_TABLE_H__

/*
 * defined within platform/quanta_switch.c
 * Quanta Switch Platform driver
 */
#define QUANTA_IX1_PCA953x_GPIO(P1, P2)	(P1*8+P2)

#define QUANTA_IX1_PCA9555_GPIO_SIZE	0x10

#define QUANTA_IX1_I2C_GPIO_BASE	0x80

#define QUANTA_IX1_I2C_GPIO_CPU_BASE               0x40

#define QUANTA_IX1_CPU_BOARD_GPIO_BASE              (QUANTA_IX1_I2C_GPIO_CPU_BASE)
#define QUANTA_IX1_CPU_BOARD_SYS_P1                 (QUANTA_IX1_CPU_BOARD_GPIO_BASE + QUANTA_IX1_PCA953x_GPIO(1,2))
#define QUANTA_IX1_CPU_BOARD_SYS_P2                 (QUANTA_IX1_CPU_BOARD_GPIO_BASE + QUANTA_IX1_PCA953x_GPIO(1,3))

#define QUANTA_IX1_PSU_GPIO_BASE					0x10
#define QUANTA_IX1_PSU_GPIO_SIZE					QUANTA_IX1_PCA9555_GPIO_SIZE
#define QUANTA_IX1_PSU_GPIO_PSU1_PRSNT_N			(QUANTA_IX1_PSU_GPIO_BASE + QUANTA_IX1_PCA953x_GPIO(0,0))
#define QUANTA_IX1_PSU_GPIO_PSU1_PWRGD				(QUANTA_IX1_PSU_GPIO_BASE + QUANTA_IX1_PCA953x_GPIO(0,1))
#define QUANTA_IX1_PSU_GPIO_PSU2_PRSNT_N			(QUANTA_IX1_PSU_GPIO_BASE + QUANTA_IX1_PCA953x_GPIO(0,3))
#define QUANTA_IX1_PSU_GPIO_PSU2_PWRGD				(QUANTA_IX1_PSU_GPIO_BASE + QUANTA_IX1_PCA953x_GPIO(0,4))
#define QUANTA_IX1_PSU_GPIO_PSU1_AC_OK				(QUANTA_IX1_PSU_GPIO_BASE + QUANTA_IX1_PCA953x_GPIO(0,6))
#define QUANTA_IX1_PSU_GPIO_PSU2_AC_OK				(QUANTA_IX1_PSU_GPIO_BASE + QUANTA_IX1_PCA953x_GPIO(0,7))
#define QUANTA_IX1_PSU_GPIO_PSU1_GREEN_R			(QUANTA_IX1_PSU_GPIO_BASE + QUANTA_IX1_PCA953x_GPIO(1,2))
#define QUANTA_IX1_PSU_GPIO_PSU1_RED_R				(QUANTA_IX1_PSU_GPIO_BASE + QUANTA_IX1_PCA953x_GPIO(1,3))
#define QUANTA_IX1_PSU_GPIO_PSU2_GREEN_R			(QUANTA_IX1_PSU_GPIO_BASE + QUANTA_IX1_PCA953x_GPIO(1,4))
#define QUANTA_IX1_PSU_GPIO_PSU2_RED_R				(QUANTA_IX1_PSU_GPIO_BASE + QUANTA_IX1_PCA953x_GPIO(1,5))
#define QUANTA_IX1_PSU_GPIO_FAN_GREEN_R			    (QUANTA_IX1_PSU_GPIO_BASE + QUANTA_IX1_PCA953x_GPIO(1,6))
#define QUANTA_IX1_PSU_GPIO_FAN_RED_R				(QUANTA_IX1_PSU_GPIO_BASE + QUANTA_IX1_PCA953x_GPIO(1,7))

#define QUANTA_IX1_ZQSFP_EN_GPIO_BASE				QUANTA_IX1_I2C_GPIO_BASE
#define QUANTA_IX1_ZQSFP_EN_GPIO_SIZE				QUANTA_IX1_PCA9555_GPIO_SIZE
#define QUANTA_IX1_ZQSFP_EN_GPIO_P3V3_PW_GD			(QUANTA_IX1_ZQSFP_EN_GPIO_BASE + QUANTA_IX1_PCA953x_GPIO(0,4))
#define QUANTA_IX1_ZQSFP_EN_GPIO_P3V3_PW_EN			(QUANTA_IX1_ZQSFP_EN_GPIO_BASE + QUANTA_IX1_PCA953x_GPIO(0,5))

#define QUANTA_IX1_FAN_GPIO_BASE					(QUANTA_IX1_ZQSFP_EN_GPIO_BASE + QUANTA_IX1_ZQSFP_EN_GPIO_SIZE)
#define QUANTA_IX1_FAN_GPIO_SIZE					QUANTA_IX1_PCA9555_GPIO_SIZE
#define QUANTA_IX1_FAN_PRSNT_N_1					(QUANTA_IX1_FAN_GPIO_BASE + QUANTA_IX1_PCA953x_GPIO(0,4))
#define QUANTA_IX1_FAN_PRSNT_N_2					(QUANTA_IX1_FAN_GPIO_BASE + QUANTA_IX1_PCA953x_GPIO(0,5))
#define QUANTA_IX1_FAN_PRSNT_N_3					(QUANTA_IX1_FAN_GPIO_BASE + QUANTA_IX1_PCA953x_GPIO(0,6))
#define QUANTA_IX1_FAN_PRSNT_N_4					(QUANTA_IX1_FAN_GPIO_BASE + QUANTA_IX1_PCA953x_GPIO(0,7))
#define QUANTA_IX1_FAN_BF_DET1						(QUANTA_IX1_FAN_GPIO_BASE + QUANTA_IX1_PCA953x_GPIO(1,0))
#define QUANTA_IX1_FAN_BF_DET2						(QUANTA_IX1_FAN_GPIO_BASE + QUANTA_IX1_PCA953x_GPIO(1,1))
#define QUANTA_IX1_FAN_BF_DET3						(QUANTA_IX1_FAN_GPIO_BASE + QUANTA_IX1_PCA953x_GPIO(1,2))
#define QUANTA_IX1_FAN_BF_DET4						(QUANTA_IX1_FAN_GPIO_BASE + QUANTA_IX1_PCA953x_GPIO(1,3))
#define QUANTA_IX1_FAN_FAIL_LED_1					(QUANTA_IX1_FAN_GPIO_BASE + QUANTA_IX1_PCA953x_GPIO(1,4))
#define QUANTA_IX1_FAN_FAIL_LED_2					(QUANTA_IX1_FAN_GPIO_BASE + QUANTA_IX1_PCA953x_GPIO(1,5))
#define QUANTA_IX1_FAN_FAIL_LED_3					(QUANTA_IX1_FAN_GPIO_BASE + QUANTA_IX1_PCA953x_GPIO(1,6))
#define QUANTA_IX1_FAN_FAIL_LED_4					(QUANTA_IX1_FAN_GPIO_BASE + QUANTA_IX1_PCA953x_GPIO(1,7))

#endif /* __X86_64_QUANTA_IX1_RANGELEY_GPIO_TABLE_H__ */
