1 /* SPDX-License-Identifier: GPL-2.0-or-later */ 2 /* 3 * I2C multiplexer using a single register 4 * 5 * Copyright 2015 Freescale Semiconductor 6 * York Sun <yorksun@freescale.com> 7 */ 8 9 #ifndef __LINUX_PLATFORM_DATA_I2C_MUX_REG_H 10 #define __LINUX_PLATFORM_DATA_I2C_MUX_REG_H 11 12 /** 13 * struct i2c_mux_reg_platform_data - Platform-dependent data for i2c-mux-reg 14 * @parent: Parent I2C bus adapter number 15 * @base_nr: Base I2C bus number to number adapters from or zero for dynamic 16 * @values: Array of value for each channel 17 * @n_values: Number of multiplexer channels 18 * @little_endian: Indicating if the register is in little endian 19 * @write_only: Reading the register is not allowed by hardware 20 * @idle: Value to write to mux when idle 21 * @idle_in_use: indicate if idle value is in use 22 * @reg: Virtual address of the register to switch channel 23 * @reg_size: register size in bytes 24 */ 25 struct i2c_mux_reg_platform_data { 26 int parent; 27 int base_nr; 28 const unsigned int *values; 29 int n_values; 30 bool little_endian; 31 bool write_only; 32 u32 idle; 33 bool idle_in_use; 34 void __iomem *reg; 35 resource_size_t reg_size; 36 }; 37 38 #endif /* __LINUX_PLATFORM_DATA_I2C_MUX_REG_H */ 39