linux/include/linux/platform_data/i2c-mux-reg.h
<<
>>
Prefs
   1/*
   2 * I2C multiplexer using a single register
   3 *
   4 * Copyright 2015 Freescale Semiconductor
   5 * York Sun <yorksun@freescale.com>
   6 *
   7 * This program is free software; you can redistribute it and/or modify it
   8 * under the terms of the GNU General Public License as published by the
   9 * Free Software Foundation; either version 2 of the License, or (at your
  10 * option) any later version.
  11 */
  12
  13#ifndef __LINUX_PLATFORM_DATA_I2C_MUX_REG_H
  14#define __LINUX_PLATFORM_DATA_I2C_MUX_REG_H
  15
  16/**
  17 * struct i2c_mux_reg_platform_data - Platform-dependent data for i2c-mux-reg
  18 * @parent: Parent I2C bus adapter number
  19 * @base_nr: Base I2C bus number to number adapters from or zero for dynamic
  20 * @values: Array of value for each channel
  21 * @n_values: Number of multiplexer channels
  22 * @little_endian: Indicating if the register is in little endian
  23 * @write_only: Reading the register is not allowed by hardware
  24 * @classes: Optional I2C auto-detection classes
  25 * @idle: Value to write to mux when idle
  26 * @idle_in_use: indicate if idle value is in use
  27 * @reg: Virtual address of the register to switch channel
  28 * @reg_size: register size in bytes
  29 */
  30struct i2c_mux_reg_platform_data {
  31        int parent;
  32        int base_nr;
  33        const unsigned int *values;
  34        int n_values;
  35        bool little_endian;
  36        bool write_only;
  37        const unsigned int *classes;
  38        u32 idle;
  39        bool idle_in_use;
  40        void __iomem *reg;
  41        resource_size_t reg_size;
  42};
  43
  44#endif  /* __LINUX_PLATFORM_DATA_I2C_MUX_REG_H */
  45