Lines Matching refs:ddata
29 struct gpio_siox_ddata *ddata = dev_get_drvdata(&sdevice->dev); in gpio_siox_set_data() local
31 mutex_lock(&ddata->lock); in gpio_siox_set_data()
32 buf[0] = ddata->setdata[0]; in gpio_siox_set_data()
33 mutex_unlock(&ddata->lock); in gpio_siox_set_data()
40 struct gpio_siox_ddata *ddata = dev_get_drvdata(&sdevice->dev); in gpio_siox_get_data() local
44 mutex_lock(&ddata->lock); in gpio_siox_get_data()
46 raw_spin_lock_irq(&ddata->irqlock); in gpio_siox_get_data()
52 ddata->getdata[bitpos / 8] & (1 << (bitpos % 8)); in gpio_siox_get_data()
53 u32 irq_type = ddata->irq_type[offset]; in gpio_siox_get_data()
58 ddata->irq_status |= 1 << offset; in gpio_siox_get_data()
62 ddata->irq_status |= 1 << offset; in gpio_siox_get_data()
66 trigger = ddata->irq_status & ddata->irq_enable; in gpio_siox_get_data()
68 raw_spin_unlock_irq(&ddata->irqlock); in gpio_siox_get_data()
70 ddata->getdata[0] = buf[0]; in gpio_siox_get_data()
71 ddata->getdata[1] = buf[1]; in gpio_siox_get_data()
72 ddata->getdata[2] = buf[2]; in gpio_siox_get_data()
74 mutex_unlock(&ddata->lock); in gpio_siox_get_data()
78 struct irq_domain *irqdomain = ddata->gchip.irq.domain; in gpio_siox_get_data()
86 raw_spin_lock_irq(&ddata->irqlock); in gpio_siox_get_data()
87 ddata->irq_status &= ~(1 << offset); in gpio_siox_get_data()
88 raw_spin_unlock_irq(&ddata->irqlock); in gpio_siox_get_data()
100 struct gpio_siox_ddata *ddata = gpiochip_get_data(gc); in gpio_siox_irq_ack() local
102 raw_spin_lock(&ddata->irqlock); in gpio_siox_irq_ack()
103 ddata->irq_status &= ~(1 << d->hwirq); in gpio_siox_irq_ack()
104 raw_spin_unlock(&ddata->irqlock); in gpio_siox_irq_ack()
110 struct gpio_siox_ddata *ddata = gpiochip_get_data(gc); in gpio_siox_irq_mask() local
112 raw_spin_lock(&ddata->irqlock); in gpio_siox_irq_mask()
113 ddata->irq_enable &= ~(1 << d->hwirq); in gpio_siox_irq_mask()
114 raw_spin_unlock(&ddata->irqlock); in gpio_siox_irq_mask()
121 struct gpio_siox_ddata *ddata = gpiochip_get_data(gc); in gpio_siox_irq_unmask() local
124 raw_spin_lock(&ddata->irqlock); in gpio_siox_irq_unmask()
125 ddata->irq_enable |= 1 << d->hwirq; in gpio_siox_irq_unmask()
126 raw_spin_unlock(&ddata->irqlock); in gpio_siox_irq_unmask()
132 struct gpio_siox_ddata *ddata = gpiochip_get_data(gc); in gpio_siox_irq_set_type() local
134 raw_spin_lock(&ddata->irqlock); in gpio_siox_irq_set_type()
135 ddata->irq_type[d->hwirq] = type; in gpio_siox_irq_set_type()
136 raw_spin_unlock(&ddata->irqlock); in gpio_siox_irq_set_type()
143 struct gpio_siox_ddata *ddata = gpiochip_get_data(chip); in gpio_siox_get() local
146 mutex_lock(&ddata->lock); in gpio_siox_get()
151 ret = ddata->setdata[0] & (1 << bitpos); in gpio_siox_get()
155 ret = ddata->getdata[bitpos / 8] & (1 << (bitpos % 8)); in gpio_siox_get()
158 mutex_unlock(&ddata->lock); in gpio_siox_get()
166 struct gpio_siox_ddata *ddata = gpiochip_get_data(chip); in gpio_siox_set() local
169 mutex_lock(&ddata->lock); in gpio_siox_set()
172 ddata->setdata[0] |= mask; in gpio_siox_set()
174 ddata->setdata[0] &= ~mask; in gpio_siox_set()
176 mutex_unlock(&ddata->lock); in gpio_siox_set()
218 struct gpio_siox_ddata *ddata; in gpio_siox_probe() local
224 ddata = devm_kzalloc(dev, sizeof(*ddata), GFP_KERNEL); in gpio_siox_probe()
225 if (!ddata) in gpio_siox_probe()
228 dev_set_drvdata(dev, ddata); in gpio_siox_probe()
230 mutex_init(&ddata->lock); in gpio_siox_probe()
231 raw_spin_lock_init(&ddata->irqlock); in gpio_siox_probe()
233 gc = &ddata->gchip; in gpio_siox_probe()
251 ret = devm_gpiochip_add_data(dev, gc, ddata); in gpio_siox_probe()