Lines Matching refs:dev

17 	struct at91_twi_dev *dev = dev_id;  in atmel_twi_interrupt_slave()  local
18 const unsigned status = at91_twi_read(dev, AT91_TWI_SR); in atmel_twi_interrupt_slave()
19 const unsigned irqstatus = status & at91_twi_read(dev, AT91_TWI_IMR); in atmel_twi_interrupt_slave()
28 i2c_slave_event(dev->slave, in atmel_twi_interrupt_slave()
30 writeb_relaxed(value, dev->base + AT91_TWI_THR); in atmel_twi_interrupt_slave()
31 at91_twi_write(dev, AT91_TWI_IER, in atmel_twi_interrupt_slave()
34 i2c_slave_event(dev->slave, in atmel_twi_interrupt_slave()
36 at91_twi_write(dev, AT91_TWI_IER, in atmel_twi_interrupt_slave()
39 at91_twi_write(dev, AT91_TWI_IDR, AT91_TWI_SVACC); in atmel_twi_interrupt_slave()
44 i2c_slave_event(dev->slave, I2C_SLAVE_READ_PROCESSED, &value); in atmel_twi_interrupt_slave()
45 writeb_relaxed(value, dev->base + AT91_TWI_THR); in atmel_twi_interrupt_slave()
50 value = readb_relaxed(dev->base + AT91_TWI_RHR); in atmel_twi_interrupt_slave()
51 i2c_slave_event(dev->slave, I2C_SLAVE_WRITE_RECEIVED, &value); in atmel_twi_interrupt_slave()
56 at91_twi_write(dev, AT91_TWI_IDR, in atmel_twi_interrupt_slave()
58 at91_twi_write(dev, AT91_TWI_IER, AT91_TWI_SVACC); in atmel_twi_interrupt_slave()
59 i2c_slave_event(dev->slave, I2C_SLAVE_STOP, &value); in atmel_twi_interrupt_slave()
67 struct at91_twi_dev *dev = i2c_get_adapdata(slave->adapter); in at91_reg_slave() local
69 if (dev->slave) in at91_reg_slave()
76 pm_runtime_get_sync(dev->dev); in at91_reg_slave()
78 dev->slave = slave; in at91_reg_slave()
79 dev->smr = AT91_TWI_SMR_SADR(slave->addr); in at91_reg_slave()
81 at91_init_twi_bus(dev); in at91_reg_slave()
82 at91_twi_write(dev, AT91_TWI_IER, AT91_TWI_SVACC); in at91_reg_slave()
84 dev_info(dev->dev, "entered slave mode (ADR=%d)\n", slave->addr); in at91_reg_slave()
91 struct at91_twi_dev *dev = i2c_get_adapdata(slave->adapter); in at91_unreg_slave() local
93 WARN_ON(!dev->slave); in at91_unreg_slave()
95 dev_info(dev->dev, "leaving slave mode\n"); in at91_unreg_slave()
97 dev->slave = NULL; in at91_unreg_slave()
98 dev->smr = 0; in at91_unreg_slave()
100 at91_init_twi_bus(dev); in at91_unreg_slave()
102 pm_runtime_put(dev->dev); in at91_unreg_slave()
119 u32 phy_addr, struct at91_twi_dev *dev) in at91_twi_probe_slave() argument
123 rc = devm_request_irq(&pdev->dev, dev->irq, atmel_twi_interrupt_slave, in at91_twi_probe_slave()
124 0, dev_name(dev->dev), dev); in at91_twi_probe_slave()
126 dev_err(dev->dev, "Cannot get irq %d: %d\n", dev->irq, rc); in at91_twi_probe_slave()
130 dev->adapter.algo = &at91_twi_algorithm_slave; in at91_twi_probe_slave()
135 void at91_init_twi_bus_slave(struct at91_twi_dev *dev) in at91_init_twi_bus_slave() argument
137 at91_twi_write(dev, AT91_TWI_CR, AT91_TWI_MSDIS); in at91_init_twi_bus_slave()
138 if (dev->slave_detected && dev->smr) { in at91_init_twi_bus_slave()
139 at91_twi_write(dev, AT91_TWI_SMR, dev->smr); in at91_init_twi_bus_slave()
140 at91_twi_write(dev, AT91_TWI_CR, AT91_TWI_SVEN); in at91_init_twi_bus_slave()