#ifndef __X86_64_QUANTA_IX2_RANGELEY_GPIO_TABLE_H__
#define __X86_64_QUANTA_IX2_RANGELEY_GPIO_TABLE_H__

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

#define QUANTA_IX2_PCA9555_GPIO_SIZE	0x10

#define QUANTA_IX2_I2C_GPIO_CPU_BASE               0x40

#define QUANTA_IX2_CPU_BOARD_GPIO_BASE              (QUANTA_IX2_I2C_GPIO_CPU_BASE)
#define QUANTA_IX2_CPU_BOARD_SYS_P1                 (QUANTA_IX2_CPU_BOARD_GPIO_BASE + QUANTA_IX2_PCA953x_GPIO(1,2))
#define QUANTA_IX2_CPU_BOARD_SYS_P2                 (QUANTA_IX2_CPU_BOARD_GPIO_BASE + QUANTA_IX2_PCA953x_GPIO(1,3))

#define QUANTA_IX2_PSU_GPIO_BASE					0x10
#define QUANTA_IX2_PSU_GPIO_SIZE					QUANTA_IX2_PCA9555_GPIO_SIZE
#define QUANTA_IX2_PSU_GPIO_PSU1_PRSNT_N			(QUANTA_IX2_PSU_GPIO_BASE + QUANTA_IX2_PCA953x_GPIO(0,0))
#define QUANTA_IX2_PSU_GPIO_PSU1_PWRGD				(QUANTA_IX2_PSU_GPIO_BASE + QUANTA_IX2_PCA953x_GPIO(0,1))
#define QUANTA_IX2_PSU_GPIO_PSU2_PRSNT_N			(QUANTA_IX2_PSU_GPIO_BASE + QUANTA_IX2_PCA953x_GPIO(0,3))
#define QUANTA_IX2_PSU_GPIO_PSU2_PWRGD				(QUANTA_IX2_PSU_GPIO_BASE + QUANTA_IX2_PCA953x_GPIO(0,4))
#define QUANTA_IX2_PSU_GPIO_PSU1_AC_OK				(QUANTA_IX2_PSU_GPIO_BASE + QUANTA_IX2_PCA953x_GPIO(0,6))
#define QUANTA_IX2_PSU_GPIO_PSU2_AC_OK				(QUANTA_IX2_PSU_GPIO_BASE + QUANTA_IX2_PCA953x_GPIO(0,7))
#define QUANTA_IX2_PSU_GPIO_PSU1_GREEN_R			(QUANTA_IX2_PSU_GPIO_BASE + QUANTA_IX2_PCA953x_GPIO(1,2))
#define QUANTA_IX2_PSU_GPIO_PSU1_RED_R				(QUANTA_IX2_PSU_GPIO_BASE + QUANTA_IX2_PCA953x_GPIO(1,3))
#define QUANTA_IX2_PSU_GPIO_PSU2_GREEN_R			(QUANTA_IX2_PSU_GPIO_BASE + QUANTA_IX2_PCA953x_GPIO(1,4))
#define QUANTA_IX2_PSU_GPIO_PSU2_RED_R				(QUANTA_IX2_PSU_GPIO_BASE + QUANTA_IX2_PCA953x_GPIO(1,5))
#define QUANTA_IX2_PSU_GPIO_FAN_GREEN_R			    (QUANTA_IX2_PSU_GPIO_BASE + QUANTA_IX2_PCA953x_GPIO(1,6))
#define QUANTA_IX2_PSU_GPIO_FAN_RED_R				(QUANTA_IX2_PSU_GPIO_BASE + QUANTA_IX2_PCA953x_GPIO(1,7))

#define QUANTA_IX2_ZQSFP_EN_GPIO_BASE				(QUANTA_IX2_PSU_GPIO_BASE + QUANTA_IX2_PSU_GPIO_SIZE)
#define QUANTA_IX2_ZQSFP_EN_GPIO_SIZE				QUANTA_IX2_PCA9555_GPIO_SIZE
#define QUANTA_IX2_ZQSFP_EN_GPIO_P3V3_PW_GD			(QUANTA_IX2_ZQSFP_EN_GPIO_BASE + QUANTA_IX2_PCA953x_GPIO(0,4))
#define QUANTA_IX2_ZQSFP_EN_GPIO_P3V3_PW_EN			(QUANTA_IX2_ZQSFP_EN_GPIO_BASE + QUANTA_IX2_PCA953x_GPIO(0,5))

#define QUANTA_IX2_FAN_GPIO_BASE					(QUANTA_IX2_ZQSFP_EN_GPIO_BASE + QUANTA_IX2_ZQSFP_EN_GPIO_SIZE)
#define QUANTA_IX2_FAN_GPIO_SIZE					QUANTA_IX2_PCA9555_GPIO_SIZE
#define QUANTA_IX2_FAN_PRSNT_N_1					(QUANTA_IX2_FAN_GPIO_BASE + QUANTA_IX2_PCA953x_GPIO(0,4))
#define QUANTA_IX2_FAN_PRSNT_N_2					(QUANTA_IX2_FAN_GPIO_BASE + QUANTA_IX2_PCA953x_GPIO(0,5))
#define QUANTA_IX2_FAN_PRSNT_N_3					(QUANTA_IX2_FAN_GPIO_BASE + QUANTA_IX2_PCA953x_GPIO(0,6))
#define QUANTA_IX2_FAN_PRSNT_N_4					(QUANTA_IX2_FAN_GPIO_BASE + QUANTA_IX2_PCA953x_GPIO(0,7))
#define QUANTA_IX2_FAN_BF_DET1						(QUANTA_IX2_FAN_GPIO_BASE + QUANTA_IX2_PCA953x_GPIO(1,0))
#define QUANTA_IX2_FAN_BF_DET2						(QUANTA_IX2_FAN_GPIO_BASE + QUANTA_IX2_PCA953x_GPIO(1,1))
#define QUANTA_IX2_FAN_BF_DET3						(QUANTA_IX2_FAN_GPIO_BASE + QUANTA_IX2_PCA953x_GPIO(1,2))
#define QUANTA_IX2_FAN_BF_DET4						(QUANTA_IX2_FAN_GPIO_BASE + QUANTA_IX2_PCA953x_GPIO(1,3))
#define QUANTA_IX2_FAN_FAIL_LED_1					(QUANTA_IX2_FAN_GPIO_BASE + QUANTA_IX2_PCA953x_GPIO(1,4))
#define QUANTA_IX2_FAN_FAIL_LED_2					(QUANTA_IX2_FAN_GPIO_BASE + QUANTA_IX2_PCA953x_GPIO(1,5))
#define QUANTA_IX2_FAN_FAIL_LED_3					(QUANTA_IX2_FAN_GPIO_BASE + QUANTA_IX2_PCA953x_GPIO(1,6))
#define QUANTA_IX2_FAN_FAIL_LED_4					(QUANTA_IX2_FAN_GPIO_BASE + QUANTA_IX2_PCA953x_GPIO(1,7))

#define QUANTA_IX2_PCA9698_1_GPIO_BASE				0x50
#define QUANTA_IX2_PCA9698_1_GPIO_QSFP_49_RESET_P	(QUANTA_IX2_PCA9698_1_GPIO_BASE + QUANTA_IX2_PCA953x_GPIO(0,0))
#define QUANTA_IX2_PCA9698_1_GPIO_QSFP_49_PRSNT_N	(QUANTA_IX2_PCA9698_1_GPIO_BASE + QUANTA_IX2_PCA953x_GPIO(0,2))
#define QUANTA_IX2_PCA9698_1_GPIO_QSFP_49_LPMOD_P	(QUANTA_IX2_PCA9698_1_GPIO_BASE + QUANTA_IX2_PCA953x_GPIO(0,3))
#define QUANTA_IX2_PCA9698_1_GPIO_QSFP_50_RESET_P	(QUANTA_IX2_PCA9698_1_GPIO_BASE + QUANTA_IX2_PCA953x_GPIO(0,4))
#define QUANTA_IX2_PCA9698_1_GPIO_QSFP_50_PRSNT_N	(QUANTA_IX2_PCA9698_1_GPIO_BASE + QUANTA_IX2_PCA953x_GPIO(0,6))
#define QUANTA_IX2_PCA9698_1_GPIO_QSFP_50_LPMOD_P	(QUANTA_IX2_PCA9698_1_GPIO_BASE + QUANTA_IX2_PCA953x_GPIO(0,7))
#define QUANTA_IX2_PCA9698_1_GPIO_QSFP_51_RESET_P	(QUANTA_IX2_PCA9698_1_GPIO_BASE + QUANTA_IX2_PCA953x_GPIO(1,0))
#define QUANTA_IX2_PCA9698_1_GPIO_QSFP_51_PRSNT_N	(QUANTA_IX2_PCA9698_1_GPIO_BASE + QUANTA_IX2_PCA953x_GPIO(1,2))
#define QUANTA_IX2_PCA9698_1_GPIO_QSFP_51_LPMOD_P	(QUANTA_IX2_PCA9698_1_GPIO_BASE + QUANTA_IX2_PCA953x_GPIO(1,3))
#define QUANTA_IX2_PCA9698_1_GPIO_QSFP_52_RESET_P	(QUANTA_IX2_PCA9698_1_GPIO_BASE + QUANTA_IX2_PCA953x_GPIO(1,4))
#define QUANTA_IX2_PCA9698_1_GPIO_QSFP_52_PRSNT_N	(QUANTA_IX2_PCA9698_1_GPIO_BASE + QUANTA_IX2_PCA953x_GPIO(1,6))
#define QUANTA_IX2_PCA9698_1_GPIO_QSFP_52_LPMOD_P	(QUANTA_IX2_PCA9698_1_GPIO_BASE + QUANTA_IX2_PCA953x_GPIO(1,7))
#define QUANTA_IX2_PCA9698_1_GPIO_QSFP_53_RESET_P	(QUANTA_IX2_PCA9698_1_GPIO_BASE + QUANTA_IX2_PCA953x_GPIO(2,0))
#define QUANTA_IX2_PCA9698_1_GPIO_QSFP_53_PRSNT_N	(QUANTA_IX2_PCA9698_1_GPIO_BASE + QUANTA_IX2_PCA953x_GPIO(2,2))
#define QUANTA_IX2_PCA9698_1_GPIO_QSFP_53_LPMOD_P	(QUANTA_IX2_PCA9698_1_GPIO_BASE + QUANTA_IX2_PCA953x_GPIO(2,3))
#define QUANTA_IX2_PCA9698_1_GPIO_QSFP_54_RESET_P	(QUANTA_IX2_PCA9698_1_GPIO_BASE + QUANTA_IX2_PCA953x_GPIO(2,4))
#define QUANTA_IX2_PCA9698_1_GPIO_QSFP_54_PRSNT_N	(QUANTA_IX2_PCA9698_1_GPIO_BASE + QUANTA_IX2_PCA953x_GPIO(2,6))
#define QUANTA_IX2_PCA9698_1_GPIO_QSFP_54_LPMOD_P	(QUANTA_IX2_PCA9698_1_GPIO_BASE + QUANTA_IX2_PCA953x_GPIO(2,7))
#define QUANTA_IX2_PCA9698_1_GPIO_QSFP_55_RESET_P	(QUANTA_IX2_PCA9698_1_GPIO_BASE + QUANTA_IX2_PCA953x_GPIO(3,0))
#define QUANTA_IX2_PCA9698_1_GPIO_QSFP_55_PRSNT_N	(QUANTA_IX2_PCA9698_1_GPIO_BASE + QUANTA_IX2_PCA953x_GPIO(3,2))
#define QUANTA_IX2_PCA9698_1_GPIO_QSFP_55_LPMOD_P	(QUANTA_IX2_PCA9698_1_GPIO_BASE + QUANTA_IX2_PCA953x_GPIO(3,3))
#define QUANTA_IX2_PCA9698_1_GPIO_QSFP_56_RESET_P	(QUANTA_IX2_PCA9698_1_GPIO_BASE + QUANTA_IX2_PCA953x_GPIO(3,4))
#define QUANTA_IX2_PCA9698_1_GPIO_QSFP_56_PRSNT_N	(QUANTA_IX2_PCA9698_1_GPIO_BASE + QUANTA_IX2_PCA953x_GPIO(3,6))
#define QUANTA_IX2_PCA9698_1_GPIO_QSFP_56_LPMOD_P	(QUANTA_IX2_PCA9698_1_GPIO_BASE + QUANTA_IX2_PCA953x_GPIO(3,7))

#endif /* __X86_64_QUANTA_IX2_RANGELEY_GPIO_TABLE_H__ */
