#ifndef __X86_64_QUANTA_LY9_RANGELEY_GPIO_TABLE_H__
#define __X86_64_QUANTA_LY9_RANGELEY_GPIO_TABLE_H__

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

#define QUANTA_LY9_PCA9555_GPIO_SIZE	0x10

#define QUANTA_LY9_I2C_GPIO_CPU_BASE	            0x40

#define QUANTA_LY9_CPU_BOARD_GPIO_BASE              (QUANTA_LY9_I2C_GPIO_CPU_BASE)
#define QUANTA_LY9_CPU_BOARD_SYS_P1                 (QUANTA_LY9_CPU_BOARD_GPIO_BASE + QUANTA_LY9_PCA953x_GPIO(1,2))
#define QUANTA_LY9_CPU_BOARD_SYS_P2                 (QUANTA_LY9_CPU_BOARD_GPIO_BASE + QUANTA_LY9_PCA953x_GPIO(1,3))

#define QUANTA_LY9_I2C_GPIO_BASE	0x80

#define QUANTA_LY9_FAN_GPIO_BASE					(QUANTA_LY9_I2C_GPIO_BASE)
#define QUANTA_LY9_FAN_GPIO_SIZE					QUANTA_LY9_PCA9555_GPIO_SIZE
#define QUANTA_LY9_FAN_PRSNT_N_1					(QUANTA_LY9_FAN_GPIO_BASE + QUANTA_LY9_PCA953x_GPIO(0,4))
#define QUANTA_LY9_FAN_PRSNT_N_2					(QUANTA_LY9_FAN_GPIO_BASE + QUANTA_LY9_PCA953x_GPIO(0,5))
#define QUANTA_LY9_FAN_PRSNT_N_3					(QUANTA_LY9_FAN_GPIO_BASE + QUANTA_LY9_PCA953x_GPIO(0,6))
#define QUANTA_LY9_FAN_BF_DET1						(QUANTA_LY9_FAN_GPIO_BASE + QUANTA_LY9_PCA953x_GPIO(1,0))
#define QUANTA_LY9_FAN_BF_DET2						(QUANTA_LY9_FAN_GPIO_BASE + QUANTA_LY9_PCA953x_GPIO(1,1))
#define QUANTA_LY9_FAN_BF_DET3						(QUANTA_LY9_FAN_GPIO_BASE + QUANTA_LY9_PCA953x_GPIO(1,2))
#define QUANTA_LY9_FAN_FAIL_LED_1					(QUANTA_LY9_FAN_GPIO_BASE + QUANTA_LY9_PCA953x_GPIO(1,4))
#define QUANTA_LY9_FAN_FAIL_LED_2					(QUANTA_LY9_FAN_GPIO_BASE + QUANTA_LY9_PCA953x_GPIO(1,5))
#define QUANTA_LY9_FAN_FAIL_LED_3					(QUANTA_LY9_FAN_GPIO_BASE + QUANTA_LY9_PCA953x_GPIO(1,6))

#define QUANTA_LY9_QSFP_EN_GPIO_BASE				(QUANTA_LY9_FAN_GPIO_BASE + QUANTA_LY9_FAN_GPIO_SIZE)
#define QUANTA_LY9_QSFP_EN_GPIO_SIZE				QUANTA_LY9_PCA9555_GPIO_SIZE
#define QUANTA_LY9_QSFP_EN_GPIO_P3V3_PW_GD			(QUANTA_LY9_QSFP_EN_GPIO_BASE + QUANTA_LY9_PCA953x_GPIO(0,4))
#define QUANTA_LY9_QSFP_EN_GPIO_P3V3_PW_EN			(QUANTA_LY9_QSFP_EN_GPIO_BASE + QUANTA_LY9_PCA953x_GPIO(0,5))
#define QUANTA_LY9_QSFP_EN_GPIO_QDB_PRSNT			(QUANTA_LY9_QSFP_EN_GPIO_BASE + QUANTA_LY9_PCA953x_GPIO(0,6))

#define QUANTA_LY9_QSFP_QDB_GPIO_BASE				(QUANTA_LY9_QSFP_EN_GPIO_BASE + QUANTA_LY9_QSFP_EN_GPIO_SIZE)
#define QUANTA_LY9_QSFP_QDB_GPIO_SIZE				QUANTA_LY9_PCA9555_GPIO_SIZE
#define QUANTA_LY9_QSFP_QDB_GPIO_PRSNT_53_N		    (QUANTA_LY9_QSFP_QDB_GPIO_BASE + QUANTA_LY9_PCA953x_GPIO(0,2))
#define QUANTA_LY9_QSFP_QDB_GPIO_PRSNT_54_N		    (QUANTA_LY9_QSFP_QDB_GPIO_BASE + QUANTA_LY9_PCA953x_GPIO(0,6))
#define QUANTA_LY9_QSFP_QDB_GPIO_MOD_EN_N			(QUANTA_LY9_QSFP_QDB_GPIO_BASE + QUANTA_LY9_PCA953x_GPIO(1,0))

#define QUANTA_LY9_PSU_GPIO_BASE					(QUANTA_LY9_QSFP_QDB_GPIO_BASE + QUANTA_LY9_QSFP_QDB_GPIO_SIZE)
#define QUANTA_LY9_PSU_GPIO_SIZE					QUANTA_LY9_PCA9555_GPIO_SIZE
#define QUANTA_LY9_PSU_GPIO_PSU1_PRSNT_N			(QUANTA_LY9_PSU_GPIO_BASE + QUANTA_LY9_PCA953x_GPIO(0,0))
#define QUANTA_LY9_PSU_GPIO_PSU1_PWRGD				(QUANTA_LY9_PSU_GPIO_BASE + QUANTA_LY9_PCA953x_GPIO(0,1))
#define QUANTA_LY9_PSU_GPIO_PSU2_PRSNT_N			(QUANTA_LY9_PSU_GPIO_BASE + QUANTA_LY9_PCA953x_GPIO(0,3))
#define QUANTA_LY9_PSU_GPIO_PSU2_PWRGD				(QUANTA_LY9_PSU_GPIO_BASE + QUANTA_LY9_PCA953x_GPIO(0,4))
#define QUANTA_LY9_PSU_GPIO_PSU1_AC_OK				(QUANTA_LY9_PSU_GPIO_BASE + QUANTA_LY9_PCA953x_GPIO(0,6))
#define QUANTA_LY9_PSU_GPIO_PSU2_AC_OK				(QUANTA_LY9_PSU_GPIO_BASE + QUANTA_LY9_PCA953x_GPIO(0,7))
#define QUANTA_LY9_PSU_GPIO_PSU1_GREEN_R			(QUANTA_LY9_PSU_GPIO_BASE + QUANTA_LY9_PCA953x_GPIO(1,2))
#define QUANTA_LY9_PSU_GPIO_PSU1_RED_R				(QUANTA_LY9_PSU_GPIO_BASE + QUANTA_LY9_PCA953x_GPIO(1,3))
#define QUANTA_LY9_PSU_GPIO_PSU2_GREEN_R			(QUANTA_LY9_PSU_GPIO_BASE + QUANTA_LY9_PCA953x_GPIO(1,4))
#define QUANTA_LY9_PSU_GPIO_PSU2_RED_R				(QUANTA_LY9_PSU_GPIO_BASE + QUANTA_LY9_PCA953x_GPIO(1,5))
#define QUANTA_LY9_PSU_GPIO_FAN_GREEN_R			    (QUANTA_LY9_PSU_GPIO_BASE + QUANTA_LY9_PCA953x_GPIO(1,6))
#define QUANTA_LY9_PSU_GPIO_FAN_RED_R				(QUANTA_LY9_PSU_GPIO_BASE + QUANTA_LY9_PCA953x_GPIO(1,7))

#endif /* __X86_64_QUANTA_LY9_RANGELEY_GPIO_TABLE_H__ */
