|  | /* 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 */ |