Merge tag '9p-for-5.15-rc1' of git://github.com/martinetd/linux
[linux-2.6-microblaze.git] / include / linux / platform_data / mlxcpld.h
1 /* SPDX-License-Identifier: BSD-3-Clause OR GPL-2.0 */
2 /*
3  * Mellanox I2C multiplexer support in CPLD
4  *
5  * Copyright (C) 2016-2020 Mellanox Technologies
6  */
7
8 #ifndef _LINUX_I2C_MLXCPLD_H
9 #define _LINUX_I2C_MLXCPLD_H
10
11 /* Platform data for the CPLD I2C multiplexers */
12
13 /* mlxcpld_mux_plat_data - per mux data, used with i2c_register_board_info
14  * @chan_ids - channels array
15  * @num_adaps - number of adapters
16  * @sel_reg_addr - mux select register offset in CPLD space
17  * @reg_size: register size in bytes
18  * @handle: handle to be passed by callback
19  * @completion_notify: callback to notify when all the adapters are created
20  */
21 struct mlxcpld_mux_plat_data {
22         int *chan_ids;
23         int num_adaps;
24         int sel_reg_addr;
25         u8 reg_size;
26         void *handle;
27         int (*completion_notify)(void *handle, struct i2c_adapter *parent,
28                                  struct i2c_adapter *adapters[]);
29 };
30
31 #endif /* _LINUX_I2C_MLXCPLD_H */