dw_i2c_devRegular
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 ✅