sonic-buildimage/platform/broadcom/sonic-platform-modules-inventec/d6356/modules/inv_mux.h
David Xiao 110bff9b47 [Inventec][D6356] Update driver and Add new platform API implementation (#3521)
* Update driver and Add new platform API implementation for Inventec D6356
* Update Platform API (SFP)
* Update Platform API (QSFP)
* Update Platform API (FAN, THERMAL)
Signed-off-by: David Xiao <xiao.david@inventec.com>
2019-10-09 16:16:05 -07:00

52 lines
1.4 KiB
C

#ifndef INV_MUX_H
#define INV_MUX_H
#include <linux/types.h>
/* MUX basic information */
#define MUX_GPIO_LABEL "SWPS_RST_MUX"
/* MUX reset GPIO define */
#define MUX_RST_GPIO_FORCE (30100)
#define MUX_RST_GPIO_FORCE_RANGELEY (30101)
#define MUX_RST_GPIO_FORCE_HEDERA (30102)
#define MUX_RST_GPIO_48_PCA9548 (48)
#define MUX_RST_GPIO_69_PCA9548 (69)
#define MUX_RST_GPIO_249_PCA9548 (249)
#define MUX_RST_GPIO_500_PCA9548 (500)
#define MUX_RST_GPIO_505_PCA9548 (505)
#define MUX_RST_CPLD_C0_A77_70_74_RST_ALL (30201)
/* MUX relate value define */
#define MUX_RST_WAIT_MS_PCA9548 (1)
#define MUX_RST_WAIT_MS_CPLD (10)
#define MUX_RST_MEM_ADDR_RANGELEY (0) // TBD
#define MUX_RST_MEM_ADDR_HEDERA (0x548)
/* MUX error code define */
#define ERR_MUX_UNEXCPT (-399)
struct mux_obj_s {
struct i2c_client *i2c_client_p;
struct mux_obj_s *next;
unsigned gpio_num;
int (*_pull_high)(struct mux_obj_s *self);
int (*_pull_low)(struct mux_obj_s *self);
int (*_init)(struct mux_obj_s *self);
int (*_clean)(struct mux_obj_s *self);
int (*reset)(struct mux_obj_s *self);
};
void clean_mux_objs(void);
int reset_mux_objs(void);
int init_mux_objs(unsigned gpio);
#endif /* INV_MUX_H */