1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- /*
- * I2C multiplexer using a single register
- *
- * Copyright 2015 Freescale Semiconductor
- * York Sun <yorksun@freescale.com>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation; either version 2 of the License, or (at your
- * option) any later version.
- */
- #ifndef __LINUX_PLATFORM_DATA_I2C_MUX_REG_H
- #define __LINUX_PLATFORM_DATA_I2C_MUX_REG_H
- /**
- * struct i2c_mux_reg_platform_data - Platform-dependent data for i2c-mux-reg
- * @parent: Parent I2C bus adapter number
- * @base_nr: Base I2C bus number to number adapters from or zero for dynamic
- * @values: Array of value for each channel
- * @n_values: Number of multiplexer channels
- * @little_endian: Indicating if the register is in little endian
- * @write_only: Reading the register is not allowed by hardware
- * @classes: Optional I2C auto-detection classes
- * @idle: Value to write to mux when idle
- * @idle_in_use: indicate if idle value is in use
- * @reg: Virtual address of the register to switch channel
- * @reg_size: register size in bytes
- */
- struct i2c_mux_reg_platform_data {
- int parent;
- int base_nr;
- const unsigned int *values;
- int n_values;
- bool little_endian;
- bool write_only;
- const unsigned int *classes;
- u32 idle;
- bool idle_in_use;
- void __iomem *reg;
- resource_size_t reg_size;
- };
- #endif /* __LINUX_PLATFORM_DATA_I2C_MUX_REG_H */
|