#ifndef __DCE_I2C_HW_H__
#define __DCE_I2C_HW_H__
enum dc_i2c_status { … };
enum dc_i2c_arbitration { … };
enum i2c_channel_operation_result { … };
enum dce_i2c_transaction_action { … };
enum { … };
#define I2C_HW_ENGINE_COMMON_REG_LIST(id) …
#define I2C_HW_ENGINE_COMMON_REG_LIST_DCN30(id) …
#define I2C_SF(reg_name, field_name, post_fix) …
#define I2C_COMMON_MASK_SH_LIST_DCE_COMMON_BASE(mask_sh) …
#define I2C_COMMON_MASK_SH_LIST_DCE110(mask_sh) …
struct dce_i2c_shift { … };
struct dce_i2c_mask { … };
#define I2C_COMMON_MASK_SH_LIST_DCN2(mask_sh) …
#define I2C_COMMON_MASK_SH_LIST_DCN30(mask_sh) …
#define I2C_COMMON_MASK_SH_LIST_DCN35(mask_sh) …
#define I2C_COMMON_MASK_SH_LIST_DCN401(mask_sh) …
struct dce_i2c_registers { … };
enum dce_i2c_transaction_address_space { … };
struct i2c_request_transaction_data { … };
struct dce_i2c_hw { … };
void dce_i2c_hw_construct(
struct dce_i2c_hw *dce_i2c_hw,
struct dc_context *ctx,
uint32_t engine_id,
const struct dce_i2c_registers *regs,
const struct dce_i2c_shift *shifts,
const struct dce_i2c_mask *masks);
void dce100_i2c_hw_construct(
struct dce_i2c_hw *dce_i2c_hw,
struct dc_context *ctx,
uint32_t engine_id,
const struct dce_i2c_registers *regs,
const struct dce_i2c_shift *shifts,
const struct dce_i2c_mask *masks);
void dce112_i2c_hw_construct(
struct dce_i2c_hw *dce_i2c_hw,
struct dc_context *ctx,
uint32_t engine_id,
const struct dce_i2c_registers *regs,
const struct dce_i2c_shift *shifts,
const struct dce_i2c_mask *masks);
void dcn1_i2c_hw_construct(
struct dce_i2c_hw *dce_i2c_hw,
struct dc_context *ctx,
uint32_t engine_id,
const struct dce_i2c_registers *regs,
const struct dce_i2c_shift *shifts,
const struct dce_i2c_mask *masks);
void dcn2_i2c_hw_construct(
struct dce_i2c_hw *dce_i2c_hw,
struct dc_context *ctx,
uint32_t engine_id,
const struct dce_i2c_registers *regs,
const struct dce_i2c_shift *shifts,
const struct dce_i2c_mask *masks);
bool dce_i2c_submit_command_hw(
struct resource_pool *pool,
struct ddc *ddc,
struct i2c_command *cmd,
struct dce_i2c_hw *dce_i2c_hw);
struct dce_i2c_hw *acquire_i2c_hw_engine(
struct resource_pool *pool,
struct ddc *ddc);
#endif