| /* SPDX-License-Identifier: BSD-3-Clause OR GPL-2.0 */ | |
| /* | |
| * Mellanox I2C multiplexer support in CPLD | |
| * | |
| * Copyright (C) 2016-2020 Mellanox Technologies | |
| */ | |
| #ifndef _LINUX_I2C_MLXCPLD_H | |
| #define _LINUX_I2C_MLXCPLD_H | |
| /* Platform data for the CPLD I2C multiplexers */ | |
| /* mlxcpld_mux_plat_data - per mux data, used with i2c_register_board_info | |
| * @chan_ids - channels array | |
| * @num_adaps - number of adapters | |
| * @sel_reg_addr - mux select register offset in CPLD space | |
| * @reg_size: register size in bytes | |
| * @handle: handle to be passed by callback | |
| * @completion_notify: callback to notify when all the adapters are created | |
| */ | |
| struct mlxcpld_mux_plat_data { | |
| int *chan_ids; | |
| int num_adaps; | |
| int sel_reg_addr; | |
| u8 reg_size; | |
| void *handle; | |
| int (*completion_notify)(void *handle, struct i2c_adapter *parent, | |
| struct i2c_adapter *adapters[]); | |
| }; | |
| #endif /* _LINUX_I2C_MLXCPLD_H */ |