linux/include/linux/platform_data/i2c-mux-reg.h
<<
>>
Prefs
   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 * @classes: Optional I2C auto-detection classes
  21 * @idle: Value to write to mux when idle
  22 * @idle_in_use: indicate if idle value is in use
  23 * @reg: Virtual address of the register to switch channel
  24 * @reg_size: register size in bytes
  25 */
  26struct i2c_mux_reg_platform_data {
  27        int parent;
  28        int base_nr;
  29        const unsigned int *values;
  30        int n_values;
  31        bool little_endian;
  32        bool write_only;
  33        const unsigned int *classes;
  34        u32 idle;
  35        bool idle_in_use;
  36        void __iomem *reg;
  37        resource_size_t reg_size;
  38};
  39
  40#endif  /* __LINUX_PLATFORM_DATA_I2C_MUX_REG_H */
  41