123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- #ifndef _S3C24X0_I2C_H
- #define _S3C24X0_I2C_H
- struct s3c24x0_i2c {
- u32 iiccon;
- u32 iicstat;
- u32 iicadd;
- u32 iicds;
- u32 iiclc;
- };
- struct exynos5_hsi2c {
- u32 usi_ctl;
- u32 usi_fifo_ctl;
- u32 usi_trailing_ctl;
- u32 usi_clk_ctl;
- u32 usi_clk_slot;
- u32 spi_ctl;
- u32 uart_ctl;
- u32 res1;
- u32 usi_int_en;
- u32 usi_int_stat;
- u32 usi_modem_stat;
- u32 usi_error_stat;
- u32 usi_fifo_stat;
- u32 usi_txdata;
- u32 usi_rxdata;
- u32 res2;
- u32 usi_conf;
- u32 usi_auto_conf;
- u32 usi_timeout;
- u32 usi_manual_cmd;
- u32 usi_trans_status;
- u32 usi_timing_hs1;
- u32 usi_timing_hs2;
- u32 usi_timing_hs3;
- u32 usi_timing_fs1;
- u32 usi_timing_fs2;
- u32 usi_timing_fs3;
- u32 usi_timing_sla;
- u32 i2c_addr;
- };
- struct s3c24x0_i2c_bus {
- bool active;
- int node;
- int bus_num;
- struct s3c24x0_i2c *regs;
- struct exynos5_hsi2c *hsregs;
- int is_highspeed;
- unsigned clock_frequency;
- int id;
- unsigned clk_cycle;
- unsigned clk_div;
- };
- #define I2C_WRITE 0
- #define I2C_READ 1
- #define I2C_OK 0
- #define I2C_NOK 1
- #define I2C_NACK 2
- #define I2C_NOK_LA 3
- #define I2C_NOK_TOUT 4
- #define I2CSTAT_BSY 0x20
- #define I2CSTAT_NACK 0x01
- #define I2CCON_ACKGEN 0x80
- #define I2CCON_IRPND 0x10
- #define I2C_MODE_MT 0xC0
- #define I2C_MODE_MR 0x80
- #define I2C_START_STOP 0x20
- #define I2C_TXRX_ENA 0x10
- #define I2C_TIMEOUT_MS 10
- #endif
|