dw_i2c_dev
Regular
4.4
: Absent ⚠️
4.8
: Absent ⚠️
4.10
: Absent ⚠️
4.13
: ✅struct dw_i2c_dev {
struct device *dev;
void *base;
struct completion cmd_complete;
struct clk *clk;
struct reset_control *rst;
struct i2c_client *slave;
u32 (*get_clk_rate_khz)(struct dw_i2c_dev *);
struct dw_pci_controller *controller;
int cmd_err;
struct i2c_msg *msgs;
int msgs_num;
int msg_write_idx;
u32 tx_buf_len;
u8 *tx_buf;
int msg_read_idx;
u32 rx_buf_len;
u8 *rx_buf;
int msg_err;
unsigned int status;
u32 abort_source;
int irq;
u32 flags;
struct i2c_adapter adapter;
u32 functionality;
u32 master_cfg;
u32 slave_cfg;
unsigned int tx_fifo_depth;
unsigned int rx_fifo_depth;
int rx_outstanding;
u32 clk_freq;
u32 sda_hold_time;
u32 sda_falling_time;
u32 scl_falling_time;
u16 ss_hcnt;
u16 ss_lcnt;
u16 fs_hcnt;
u16 fs_lcnt;
u16 fp_hcnt;
u16 fp_lcnt;
u16 hs_hcnt;
u16 hs_lcnt;
struct pm_qos_request pm_qos;
int (*acquire_lock)(struct dw_i2c_dev *);
void (*release_lock)(struct dw_i2c_dev *);
bool pm_disabled;
void (*disable)(struct dw_i2c_dev *);
void (*disable_int)(struct dw_i2c_dev *);
int (*init)(struct dw_i2c_dev *);
int mode;
};
4.15
: ✅struct dw_i2c_dev {
struct device *dev;
void *base;
struct completion cmd_complete;
struct clk *clk;
struct reset_control *rst;
struct i2c_client *slave;
u32 (*get_clk_rate_khz)(struct dw_i2c_dev *);
struct dw_pci_controller *controller;
int cmd_err;
struct i2c_msg *msgs;
int msgs_num;
int msg_write_idx;
u32 tx_buf_len;
u8 *tx_buf;
int msg_read_idx;
u32 rx_buf_len;
u8 *rx_buf;
int msg_err;
unsigned int status;
u32 abort_source;
int irq;
u32 flags;
struct i2c_adapter adapter;
u32 functionality;
u32 master_cfg;
u32 slave_cfg;
unsigned int tx_fifo_depth;
unsigned int rx_fifo_depth;
int rx_outstanding;
u32 clk_freq;
u32 sda_hold_time;
u32 sda_falling_time;
u32 scl_falling_time;
u16 ss_hcnt;
u16 ss_lcnt;
u16 fs_hcnt;
u16 fs_lcnt;
u16 fp_hcnt;
u16 fp_lcnt;
u16 hs_hcnt;
u16 hs_lcnt;
struct pm_qos_request pm_qos;
int (*acquire_lock)(struct dw_i2c_dev *);
void (*release_lock)(struct dw_i2c_dev *);
bool pm_disabled;
bool suspended;
bool skip_resume;
void (*disable)(struct dw_i2c_dev *);
void (*disable_int)(struct dw_i2c_dev *);
int (*init)(struct dw_i2c_dev *);
int mode;
};
4.18
: ✅struct dw_i2c_dev {
struct device *dev;
void *base;
struct completion cmd_complete;
struct clk *clk;
struct reset_control *rst;
struct i2c_client *slave;
u32 (*get_clk_rate_khz)(struct dw_i2c_dev *);
struct dw_pci_controller *controller;
int cmd_err;
struct i2c_msg *msgs;
int msgs_num;
int msg_write_idx;
u32 tx_buf_len;
u8 *tx_buf;
int msg_read_idx;
u32 rx_buf_len;
u8 *rx_buf;
int msg_err;
unsigned int status;
u32 abort_source;
int irq;
u32 flags;
struct i2c_adapter adapter;
u32 functionality;
u32 master_cfg;
u32 slave_cfg;
unsigned int tx_fifo_depth;
unsigned int rx_fifo_depth;
int rx_outstanding;
u32 clk_freq;
u32 sda_hold_time;
u32 sda_falling_time;
u32 scl_falling_time;
u16 ss_hcnt;
u16 ss_lcnt;
u16 fs_hcnt;
u16 fs_lcnt;
u16 fp_hcnt;
u16 fp_lcnt;
u16 hs_hcnt;
u16 hs_lcnt;
struct pm_qos_request pm_qos;
int (*acquire_lock)(struct dw_i2c_dev *);
void (*release_lock)(struct dw_i2c_dev *);
bool pm_disabled;
void (*disable)(struct dw_i2c_dev *);
void (*disable_int)(struct dw_i2c_dev *);
int (*init)(struct dw_i2c_dev *);
int mode;
struct i2c_bus_recovery_info rinfo;
};
5.0
: ✅struct dw_i2c_dev {
struct device *dev;
void *base;
void *ext;
struct completion cmd_complete;
struct clk *clk;
struct reset_control *rst;
struct i2c_client *slave;
u32 (*get_clk_rate_khz)(struct dw_i2c_dev *);
struct dw_pci_controller *controller;
int cmd_err;
struct i2c_msg *msgs;
int msgs_num;
int msg_write_idx;
u32 tx_buf_len;
u8 *tx_buf;
int msg_read_idx;
u32 rx_buf_len;
u8 *rx_buf;
int msg_err;
unsigned int status;
u32 abort_source;
int irq;
u32 flags;
struct i2c_adapter adapter;
u32 functionality;
u32 master_cfg;
u32 slave_cfg;
unsigned int tx_fifo_depth;
unsigned int rx_fifo_depth;
int rx_outstanding;
struct i2c_timings timings;
u32 sda_hold_time;
u16 ss_hcnt;
u16 ss_lcnt;
u16 fs_hcnt;
u16 fs_lcnt;
u16 fp_hcnt;
u16 fp_lcnt;
u16 hs_hcnt;
u16 hs_lcnt;
int (*acquire_lock)();
void (*release_lock)();
bool shared_with_punit;
void (*disable)(struct dw_i2c_dev *);
void (*disable_int)(struct dw_i2c_dev *);
int (*init)(struct dw_i2c_dev *);
int (*set_sda_hold_time)(struct dw_i2c_dev *);
int mode;
struct i2c_bus_recovery_info rinfo;
};
5.3
: ✅struct dw_i2c_dev {
struct device *dev;
void *base;
void *ext;
struct completion cmd_complete;
struct clk *clk;
struct clk *pclk;
struct reset_control *rst;
struct i2c_client *slave;
u32 (*get_clk_rate_khz)(struct dw_i2c_dev *);
struct dw_pci_controller *controller;
int cmd_err;
struct i2c_msg *msgs;
int msgs_num;
int msg_write_idx;
u32 tx_buf_len;
u8 *tx_buf;
int msg_read_idx;
u32 rx_buf_len;
u8 *rx_buf;
int msg_err;
unsigned int status;
u32 abort_source;
int irq;
u32 flags;
struct i2c_adapter adapter;
u32 functionality;
u32 master_cfg;
u32 slave_cfg;
unsigned int tx_fifo_depth;
unsigned int rx_fifo_depth;
int rx_outstanding;
struct i2c_timings timings;
u32 sda_hold_time;
u16 ss_hcnt;
u16 ss_lcnt;
u16 fs_hcnt;
u16 fs_lcnt;
u16 fp_hcnt;
u16 fp_lcnt;
u16 hs_hcnt;
u16 hs_lcnt;
int (*acquire_lock)();
void (*release_lock)();
bool shared_with_punit;
void (*disable)(struct dw_i2c_dev *);
void (*disable_int)(struct dw_i2c_dev *);
int (*init)(struct dw_i2c_dev *);
int (*set_sda_hold_time)(struct dw_i2c_dev *);
int mode;
struct i2c_bus_recovery_info rinfo;
bool suspended;
};
5.4
: ✅struct dw_i2c_dev {
struct device *dev;
void *base;
void *ext;
struct completion cmd_complete;
struct clk *clk;
struct clk *pclk;
struct reset_control *rst;
struct i2c_client *slave;
u32 (*get_clk_rate_khz)(struct dw_i2c_dev *);
struct dw_pci_controller *controller;
int cmd_err;
struct i2c_msg *msgs;
int msgs_num;
int msg_write_idx;
u32 tx_buf_len;
u8 *tx_buf;
int msg_read_idx;
u32 rx_buf_len;
u8 *rx_buf;
int msg_err;
unsigned int status;
u32 abort_source;
int irq;
u32 flags;
struct i2c_adapter adapter;
u32 functionality;
u32 master_cfg;
u32 slave_cfg;
unsigned int tx_fifo_depth;
unsigned int rx_fifo_depth;
int rx_outstanding;
struct i2c_timings timings;
u32 sda_hold_time;
u16 ss_hcnt;
u16 ss_lcnt;
u16 fs_hcnt;
u16 fs_lcnt;
u16 fp_hcnt;
u16 fp_lcnt;
u16 hs_hcnt;
u16 hs_lcnt;
int (*acquire_lock)();
void (*release_lock)();
bool shared_with_punit;
void (*disable)(struct dw_i2c_dev *);
void (*disable_int)(struct dw_i2c_dev *);
int (*init)(struct dw_i2c_dev *);
int (*set_sda_hold_time)(struct dw_i2c_dev *);
int mode;
struct i2c_bus_recovery_info rinfo;
bool suspended;
};
5.8
: ✅struct dw_i2c_dev {
struct device *dev;
struct regmap *map;
struct regmap *sysmap;
void *base;
void *ext;
struct completion cmd_complete;
struct clk *clk;
struct clk *pclk;
struct reset_control *rst;
struct i2c_client *slave;
u32 (*get_clk_rate_khz)(struct dw_i2c_dev *);
int cmd_err;
struct i2c_msg *msgs;
int msgs_num;
int msg_write_idx;
u32 tx_buf_len;
u8 *tx_buf;
int msg_read_idx;
u32 rx_buf_len;
u8 *rx_buf;
int msg_err;
unsigned int status;
u32 abort_source;
int irq;
u32 flags;
struct i2c_adapter adapter;
u32 functionality;
u32 master_cfg;
u32 slave_cfg;
unsigned int tx_fifo_depth;
unsigned int rx_fifo_depth;
int rx_outstanding;
struct i2c_timings timings;
u32 sda_hold_time;
u16 ss_hcnt;
u16 ss_lcnt;
u16 fs_hcnt;
u16 fs_lcnt;
u16 fp_hcnt;
u16 fp_lcnt;
u16 hs_hcnt;
u16 hs_lcnt;
int (*acquire_lock)();
void (*release_lock)();
bool shared_with_punit;
void (*disable)(struct dw_i2c_dev *);
void (*disable_int)(struct dw_i2c_dev *);
int (*init)(struct dw_i2c_dev *);
int (*set_sda_hold_time)(struct dw_i2c_dev *);
int mode;
struct i2c_bus_recovery_info rinfo;
bool suspended;
};
5.11
: ✅struct dw_i2c_dev {
struct device *dev;
struct regmap *map;
struct regmap *sysmap;
void *base;
void *ext;
struct completion cmd_complete;
struct clk *clk;
struct clk *pclk;
struct reset_control *rst;
struct i2c_client *slave;
u32 (*get_clk_rate_khz)(struct dw_i2c_dev *);
int cmd_err;
struct i2c_msg *msgs;
int msgs_num;
int msg_write_idx;
u32 tx_buf_len;
u8 *tx_buf;
int msg_read_idx;
u32 rx_buf_len;
u8 *rx_buf;
int msg_err;
unsigned int status;
u32 abort_source;
int irq;
u32 flags;
struct i2c_adapter adapter;
u32 functionality;
u32 master_cfg;
u32 slave_cfg;
unsigned int tx_fifo_depth;
unsigned int rx_fifo_depth;
int rx_outstanding;
struct i2c_timings timings;
u32 sda_hold_time;
u16 ss_hcnt;
u16 ss_lcnt;
u16 fs_hcnt;
u16 fs_lcnt;
u16 fp_hcnt;
u16 fp_lcnt;
u16 hs_hcnt;
u16 hs_lcnt;
int (*acquire_lock)();
void (*release_lock)();
bool shared_with_punit;
void (*disable)(struct dw_i2c_dev *);
void (*disable_int)(struct dw_i2c_dev *);
int (*init)(struct dw_i2c_dev *);
int (*set_sda_hold_time)(struct dw_i2c_dev *);
int mode;
struct i2c_bus_recovery_info rinfo;
bool suspended;
};
5.13
: ✅struct dw_i2c_dev {
struct device *dev;
struct regmap *map;
struct regmap *sysmap;
void *base;
void *ext;
struct completion cmd_complete;
struct clk *clk;
struct clk *pclk;
struct reset_control *rst;
struct i2c_client *slave;
u32 (*get_clk_rate_khz)(struct dw_i2c_dev *);
int cmd_err;
struct i2c_msg *msgs;
int msgs_num;
int msg_write_idx;
u32 tx_buf_len;
u8 *tx_buf;
int msg_read_idx;
u32 rx_buf_len;
u8 *rx_buf;
int msg_err;
unsigned int status;
u32 abort_source;
int irq;
u32 flags;
struct i2c_adapter adapter;
u32 functionality;
u32 master_cfg;
u32 slave_cfg;
unsigned int tx_fifo_depth;
unsigned int rx_fifo_depth;
int rx_outstanding;
struct i2c_timings timings;
u32 sda_hold_time;
u16 ss_hcnt;
u16 ss_lcnt;
u16 fs_hcnt;
u16 fs_lcnt;
u16 fp_hcnt;
u16 fp_lcnt;
u16 hs_hcnt;
u16 hs_lcnt;
int (*acquire_lock)();
void (*release_lock)();
bool shared_with_punit;
void (*disable)(struct dw_i2c_dev *);
void (*disable_int)(struct dw_i2c_dev *);
int (*init)(struct dw_i2c_dev *);
int (*set_sda_hold_time)(struct dw_i2c_dev *);
int mode;
struct i2c_bus_recovery_info rinfo;
bool suspended;
};
5.15
: ✅struct dw_i2c_dev {
struct device *dev;
struct regmap *map;
struct regmap *sysmap;
void *base;
void *ext;
struct completion cmd_complete;
struct clk *clk;
struct clk *pclk;
struct reset_control *rst;
struct i2c_client *slave;
u32 (*get_clk_rate_khz)(struct dw_i2c_dev *);
int cmd_err;
struct i2c_msg *msgs;
int msgs_num;
int msg_write_idx;
u32 tx_buf_len;
u8 *tx_buf;
int msg_read_idx;
u32 rx_buf_len;
u8 *rx_buf;
int msg_err;
unsigned int status;
u32 abort_source;
int irq;
u32 flags;
struct i2c_adapter adapter;
u32 functionality;
u32 master_cfg;
u32 slave_cfg;
unsigned int tx_fifo_depth;
unsigned int rx_fifo_depth;
int rx_outstanding;
struct i2c_timings timings;
u32 sda_hold_time;
u16 ss_hcnt;
u16 ss_lcnt;
u16 fs_hcnt;
u16 fs_lcnt;
u16 fp_hcnt;
u16 fp_lcnt;
u16 hs_hcnt;
u16 hs_lcnt;
int (*acquire_lock)();
void (*release_lock)();
bool shared_with_punit;
void (*disable)(struct dw_i2c_dev *);
void (*disable_int)(struct dw_i2c_dev *);
int (*init)(struct dw_i2c_dev *);
int (*set_sda_hold_time)(struct dw_i2c_dev *);
int mode;
struct i2c_bus_recovery_info rinfo;
bool suspended;
};
5.19
: ✅struct dw_i2c_dev {
struct device *dev;
struct regmap *map;
struct regmap *sysmap;
void *base;
void *ext;
struct completion cmd_complete;
struct clk *clk;
struct clk *pclk;
struct reset_control *rst;
struct i2c_client *slave;
u32 (*get_clk_rate_khz)(struct dw_i2c_dev *);
int cmd_err;
struct i2c_msg *msgs;
int msgs_num;
int msg_write_idx;
u32 tx_buf_len;
u8 *tx_buf;
int msg_read_idx;
u32 rx_buf_len;
u8 *rx_buf;
int msg_err;
unsigned int status;
u32 abort_source;
int irq;
u32 flags;
struct i2c_adapter adapter;
u32 functionality;
u32 master_cfg;
u32 slave_cfg;
unsigned int tx_fifo_depth;
unsigned int rx_fifo_depth;
int rx_outstanding;
struct i2c_timings timings;
u32 sda_hold_time;
u16 ss_hcnt;
u16 ss_lcnt;
u16 fs_hcnt;
u16 fs_lcnt;
u16 fp_hcnt;
u16 fp_lcnt;
u16 hs_hcnt;
u16 hs_lcnt;
int (*acquire_lock)();
void (*release_lock)();
int semaphore_idx;
bool shared_with_punit;
void (*disable)(struct dw_i2c_dev *);
void (*disable_int)(struct dw_i2c_dev *);
int (*init)(struct dw_i2c_dev *);
int (*set_sda_hold_time)(struct dw_i2c_dev *);
int mode;
struct i2c_bus_recovery_info rinfo;
};
6.2
: ✅struct dw_i2c_dev {
struct device *dev;
struct regmap *map;
struct regmap *sysmap;
void *base;
void *ext;
struct completion cmd_complete;
struct clk *clk;
struct clk *pclk;
struct reset_control *rst;
struct i2c_client *slave;
u32 (*get_clk_rate_khz)(struct dw_i2c_dev *);
int cmd_err;
struct i2c_msg *msgs;
int msgs_num;
int msg_write_idx;
u32 tx_buf_len;
u8 *tx_buf;
int msg_read_idx;
u32 rx_buf_len;
u8 *rx_buf;
int msg_err;
unsigned int status;
u32 abort_source;
int irq;
u32 flags;
struct i2c_adapter adapter;
u32 functionality;
u32 master_cfg;
u32 slave_cfg;
unsigned int tx_fifo_depth;
unsigned int rx_fifo_depth;
int rx_outstanding;
struct i2c_timings timings;
u32 sda_hold_time;
u16 ss_hcnt;
u16 ss_lcnt;
u16 fs_hcnt;
u16 fs_lcnt;
u16 fp_hcnt;
u16 fp_lcnt;
u16 hs_hcnt;
u16 hs_lcnt;
int (*acquire_lock)();
void (*release_lock)();
int semaphore_idx;
bool shared_with_punit;
void (*disable)(struct dw_i2c_dev *);
int (*init)(struct dw_i2c_dev *);
int (*set_sda_hold_time)(struct dw_i2c_dev *);
int mode;
struct i2c_bus_recovery_info rinfo;
};
6.5
: ✅struct dw_i2c_dev {
struct device *dev;
struct regmap *map;
struct regmap *sysmap;
void *base;
void *ext;
struct completion cmd_complete;
struct clk *clk;
struct clk *pclk;
struct reset_control *rst;
struct i2c_client *slave;
u32 (*get_clk_rate_khz)(struct dw_i2c_dev *);
int cmd_err;
struct i2c_msg *msgs;
int msgs_num;
int msg_write_idx;
u32 tx_buf_len;
u8 *tx_buf;
int msg_read_idx;
u32 rx_buf_len;
u8 *rx_buf;
int msg_err;
unsigned int status;
unsigned int abort_source;
int irq;
u32 flags;
struct i2c_adapter adapter;
u32 functionality;
u32 master_cfg;
u32 slave_cfg;
unsigned int tx_fifo_depth;
unsigned int rx_fifo_depth;
int rx_outstanding;
struct i2c_timings timings;
u32 sda_hold_time;
u16 ss_hcnt;
u16 ss_lcnt;
u16 fs_hcnt;
u16 fs_lcnt;
u16 fp_hcnt;
u16 fp_lcnt;
u16 hs_hcnt;
u16 hs_lcnt;
int (*acquire_lock)();
void (*release_lock)();
int semaphore_idx;
bool shared_with_punit;
void (*disable)(struct dw_i2c_dev *);
int (*init)(struct dw_i2c_dev *);
int (*set_sda_hold_time)(struct dw_i2c_dev *);
int mode;
struct i2c_bus_recovery_info rinfo;
};
6.8
: ✅struct dw_i2c_dev {
struct device *dev;
struct regmap *map;
struct regmap *sysmap;
void *base;
void *ext;
struct completion cmd_complete;
struct clk *clk;
struct clk *pclk;
struct reset_control *rst;
struct i2c_client *slave;
u32 (*get_clk_rate_khz)(struct dw_i2c_dev *);
int cmd_err;
struct i2c_msg *msgs;
int msgs_num;
int msg_write_idx;
u32 tx_buf_len;
u8 *tx_buf;
int msg_read_idx;
u32 rx_buf_len;
u8 *rx_buf;
int msg_err;
unsigned int status;
unsigned int abort_source;
int irq;
u32 flags;
struct i2c_adapter adapter;
u32 functionality;
u32 master_cfg;
u32 slave_cfg;
unsigned int tx_fifo_depth;
unsigned int rx_fifo_depth;
int rx_outstanding;
struct i2c_timings timings;
u32 sda_hold_time;
u16 ss_hcnt;
u16 ss_lcnt;
u16 fs_hcnt;
u16 fs_lcnt;
u16 fp_hcnt;
u16 fp_lcnt;
u16 hs_hcnt;
u16 hs_lcnt;
int (*acquire_lock)();
void (*release_lock)();
int semaphore_idx;
bool shared_with_punit;
void (*disable)(struct dw_i2c_dev *);
int (*init)(struct dw_i2c_dev *);
int (*set_sda_hold_time)(struct dw_i2c_dev *);
int mode;
struct i2c_bus_recovery_info rinfo;
};
arm64
: ✅struct dw_i2c_dev {
struct device *dev;
void *base;
void *ext;
struct completion cmd_complete;
struct clk *clk;
struct clk *pclk;
struct reset_control *rst;
struct i2c_client *slave;
u32 (*get_clk_rate_khz)(struct dw_i2c_dev *);
struct dw_pci_controller *controller;
int cmd_err;
struct i2c_msg *msgs;
int msgs_num;
int msg_write_idx;
u32 tx_buf_len;
u8 *tx_buf;
int msg_read_idx;
u32 rx_buf_len;
u8 *rx_buf;
int msg_err;
unsigned int status;
u32 abort_source;
int irq;
u32 flags;
struct i2c_adapter adapter;
u32 functionality;
u32 master_cfg;
u32 slave_cfg;
unsigned int tx_fifo_depth;
unsigned int rx_fifo_depth;
int rx_outstanding;
struct i2c_timings timings;
u32 sda_hold_time;
u16 ss_hcnt;
u16 ss_lcnt;
u16 fs_hcnt;
u16 fs_lcnt;
u16 fp_hcnt;
u16 fp_lcnt;
u16 hs_hcnt;
u16 hs_lcnt;
int (*acquire_lock)();
void (*release_lock)();
bool shared_with_punit;
void (*disable)(struct dw_i2c_dev *);
void (*disable_int)(struct dw_i2c_dev *);
int (*init)(struct dw_i2c_dev *);
int (*set_sda_hold_time)(struct dw_i2c_dev *);
int mode;
struct i2c_bus_recovery_info rinfo;
bool suspended;
};
armhf
: ✅struct dw_i2c_dev {
struct device *dev;
void *base;
void *ext;
struct completion cmd_complete;
struct clk *clk;
struct clk *pclk;
struct reset_control *rst;
struct i2c_client *slave;
u32 (*get_clk_rate_khz)(struct dw_i2c_dev *);
struct dw_pci_controller *controller;
int cmd_err;
struct i2c_msg *msgs;
int msgs_num;
int msg_write_idx;
u32 tx_buf_len;
u8 *tx_buf;
int msg_read_idx;
u32 rx_buf_len;
u8 *rx_buf;
int msg_err;
unsigned int status;
u32 abort_source;
int irq;
u32 flags;
struct i2c_adapter adapter;
u32 functionality;
u32 master_cfg;
u32 slave_cfg;
unsigned int tx_fifo_depth;
unsigned int rx_fifo_depth;
int rx_outstanding;
struct i2c_timings timings;
u32 sda_hold_time;
u16 ss_hcnt;
u16 ss_lcnt;
u16 fs_hcnt;
u16 fs_lcnt;
u16 fp_hcnt;
u16 fp_lcnt;
u16 hs_hcnt;
u16 hs_lcnt;
int (*acquire_lock)();
void (*release_lock)();
bool shared_with_punit;
void (*disable)(struct dw_i2c_dev *);
void (*disable_int)(struct dw_i2c_dev *);
int (*init)(struct dw_i2c_dev *);
int (*set_sda_hold_time)(struct dw_i2c_dev *);
int mode;
struct i2c_bus_recovery_info rinfo;
bool suspended;
};
ppc64el
: ✅struct dw_i2c_dev {
struct device *dev;
void *base;
void *ext;
struct completion cmd_complete;
struct clk *clk;
struct clk *pclk;
struct reset_control *rst;
struct i2c_client *slave;
u32 (*get_clk_rate_khz)(struct dw_i2c_dev *);
struct dw_pci_controller *controller;
int cmd_err;
struct i2c_msg *msgs;
int msgs_num;
int msg_write_idx;
u32 tx_buf_len;
u8 *tx_buf;
int msg_read_idx;
u32 rx_buf_len;
u8 *rx_buf;
int msg_err;
unsigned int status;
u32 abort_source;
int irq;
u32 flags;
struct i2c_adapter adapter;
u32 functionality;
u32 master_cfg;
u32 slave_cfg;
unsigned int tx_fifo_depth;
unsigned int rx_fifo_depth;
int rx_outstanding;
struct i2c_timings timings;
u32 sda_hold_time;
u16 ss_hcnt;
u16 ss_lcnt;
u16 fs_hcnt;
u16 fs_lcnt;
u16 fp_hcnt;
u16 fp_lcnt;
u16 hs_hcnt;
u16 hs_lcnt;
int (*acquire_lock)();
void (*release_lock)();
bool shared_with_punit;
void (*disable)(struct dw_i2c_dev *);
void (*disable_int)(struct dw_i2c_dev *);
int (*init)(struct dw_i2c_dev *);
int (*set_sda_hold_time)(struct dw_i2c_dev *);
int mode;
struct i2c_bus_recovery_info rinfo;
bool suspended;
};
riscv64
: ✅struct dw_i2c_dev {
struct device *dev;
void *base;
void *ext;
struct completion cmd_complete;
struct clk *clk;
struct clk *pclk;
struct reset_control *rst;
struct i2c_client *slave;
u32 (*get_clk_rate_khz)(struct dw_i2c_dev *);
struct dw_pci_controller *controller;
int cmd_err;
struct i2c_msg *msgs;
int msgs_num;
int msg_write_idx;
u32 tx_buf_len;
u8 *tx_buf;
int msg_read_idx;
u32 rx_buf_len;
u8 *rx_buf;
int msg_err;
unsigned int status;
u32 abort_source;
int irq;
u32 flags;
struct i2c_adapter adapter;
u32 functionality;
u32 master_cfg;
u32 slave_cfg;
unsigned int tx_fifo_depth;
unsigned int rx_fifo_depth;
int rx_outstanding;
struct i2c_timings timings;
u32 sda_hold_time;
u16 ss_hcnt;
u16 ss_lcnt;
u16 fs_hcnt;
u16 fs_lcnt;
u16 fp_hcnt;
u16 fp_lcnt;
u16 hs_hcnt;
u16 hs_lcnt;
int (*acquire_lock)();
void (*release_lock)();
bool shared_with_punit;
void (*disable)(struct dw_i2c_dev *);
void (*disable_int)(struct dw_i2c_dev *);
int (*init)(struct dw_i2c_dev *);
int (*set_sda_hold_time)(struct dw_i2c_dev *);
int mode;
struct i2c_bus_recovery_info rinfo;
bool suspended;
};
aws
: Absent ⚠️
azure
: Absent ⚠️
gcp
: ✅struct dw_i2c_dev {
struct device *dev;
void *base;
void *ext;
struct completion cmd_complete;
struct clk *clk;
struct clk *pclk;
struct reset_control *rst;
struct i2c_client *slave;
u32 (*get_clk_rate_khz)(struct dw_i2c_dev *);
struct dw_pci_controller *controller;
int cmd_err;
struct i2c_msg *msgs;
int msgs_num;
int msg_write_idx;
u32 tx_buf_len;
u8 *tx_buf;
int msg_read_idx;
u32 rx_buf_len;
u8 *rx_buf;
int msg_err;
unsigned int status;
u32 abort_source;
int irq;
u32 flags;
struct i2c_adapter adapter;
u32 functionality;
u32 master_cfg;
u32 slave_cfg;
unsigned int tx_fifo_depth;
unsigned int rx_fifo_depth;
int rx_outstanding;
struct i2c_timings timings;
u32 sda_hold_time;
u16 ss_hcnt;
u16 ss_lcnt;
u16 fs_hcnt;
u16 fs_lcnt;
u16 fp_hcnt;
u16 fp_lcnt;
u16 hs_hcnt;
u16 hs_lcnt;
int (*acquire_lock)();
void (*release_lock)();
bool shared_with_punit;
void (*disable)(struct dw_i2c_dev *);
void (*disable_int)(struct dw_i2c_dev *);
int (*init)(struct dw_i2c_dev *);
int (*set_sda_hold_time)(struct dw_i2c_dev *);
int mode;
struct i2c_bus_recovery_info rinfo;
bool suspended;
};
lowlatency
: ✅struct dw_i2c_dev {
struct device *dev;
void *base;
void *ext;
struct completion cmd_complete;
struct clk *clk;
struct clk *pclk;
struct reset_control *rst;
struct i2c_client *slave;
u32 (*get_clk_rate_khz)(struct dw_i2c_dev *);
struct dw_pci_controller *controller;
int cmd_err;
struct i2c_msg *msgs;
int msgs_num;
int msg_write_idx;
u32 tx_buf_len;
u8 *tx_buf;
int msg_read_idx;
u32 rx_buf_len;
u8 *rx_buf;
int msg_err;
unsigned int status;
u32 abort_source;
int irq;
u32 flags;
struct i2c_adapter adapter;
u32 functionality;
u32 master_cfg;
u32 slave_cfg;
unsigned int tx_fifo_depth;
unsigned int rx_fifo_depth;
int rx_outstanding;
struct i2c_timings timings;
u32 sda_hold_time;
u16 ss_hcnt;
u16 ss_lcnt;
u16 fs_hcnt;
u16 fs_lcnt;
u16 fp_hcnt;
u16 fp_lcnt;
u16 hs_hcnt;
u16 hs_lcnt;
int (*acquire_lock)();
void (*release_lock)();
bool shared_with_punit;
void (*disable)(struct dw_i2c_dev *);
void (*disable_int)(struct dw_i2c_dev *);
int (*init)(struct dw_i2c_dev *);
int (*set_sda_hold_time)(struct dw_i2c_dev *);
int mode;
struct i2c_bus_recovery_info rinfo;
bool suspended;
};
Regular
4.13
and 4.15
⚠️bool suspended
bool skip_resume
4.15
and 4.18
⚠️struct i2c_bus_recovery_info rinfo
bool suspended
bool skip_resume
4.18
and 5.0
⚠️void *ext
struct i2c_timings timings
bool shared_with_punit
int (*set_sda_hold_time)(struct dw_i2c_dev *)
u32 clk_freq
u32 sda_falling_time
u32 scl_falling_time
struct pm_qos_request pm_qos
bool pm_disabled
int (*acquire_lock)(struct dw_i2c_dev *)
➡️ int (*acquire_lock)()
void (*release_lock)(struct dw_i2c_dev *)
➡️ void (*release_lock)()
5.0
and 5.3
⚠️struct clk *pclk
bool suspended
5.3
and 5.4
✅
5.4
and 5.8
⚠️struct regmap *map
struct regmap *sysmap
struct dw_pci_controller *controller
5.8
and 5.11
✅
5.11
and 5.13
✅
5.13
and 5.15
✅
5.15
and 5.19
⚠️int semaphore_idx
bool suspended
5.19
and 6.2
⚠️void (*disable_int)(struct dw_i2c_dev *)
6.2
and 6.5
⚠️u32 abort_source
➡️ unsigned int abort_source
6.5
and 6.8
✅
amd64
and arm64
✅
amd64
and armhf
✅
amd64
and ppc64el
⚠️struct clk *clk
➡️ struct clk *clk
struct clk *pclk
➡️ struct clk *pclk
amd64
and riscv64
✅
generic
and gcp
✅
generic
and lowlatency
✅