Lines Matching refs:ddata
30 struct gpio_siox_ddata *ddata = dev_get_drvdata(&sdevice->dev);
32 mutex_lock(&ddata->lock);
33 buf[0] = ddata->setdata[0];
34 mutex_unlock(&ddata->lock);
41 struct gpio_siox_ddata *ddata = dev_get_drvdata(&sdevice->dev);
45 mutex_lock(&ddata->lock);
47 raw_spin_lock_irq(&ddata->irqlock);
53 ddata->getdata[bitpos / 8] & (1 << (bitpos % 8));
54 u32 irq_type = ddata->irq_type[offset];
59 ddata->irq_status |= 1 << offset;
63 ddata->irq_status |= 1 << offset;
67 trigger = ddata->irq_status & ddata->irq_enable;
69 raw_spin_unlock_irq(&ddata->irqlock);
71 ddata->getdata[0] = buf[0];
72 ddata->getdata[1] = buf[1];
73 ddata->getdata[2] = buf[2];
75 mutex_unlock(&ddata->lock);
79 struct irq_domain *irqdomain = ddata->gchip.irq.domain;
87 raw_spin_lock_irq(&ddata->irqlock);
88 ddata->irq_status &= ~(1 << offset);
89 raw_spin_unlock_irq(&ddata->irqlock);
101 struct gpio_siox_ddata *ddata =
104 raw_spin_lock(&ddata->irqlock);
105 ddata->irq_status &= ~(1 << d->hwirq);
106 raw_spin_unlock(&ddata->irqlock);
112 struct gpio_siox_ddata *ddata =
115 raw_spin_lock(&ddata->irqlock);
116 ddata->irq_enable &= ~(1 << d->hwirq);
117 raw_spin_unlock(&ddata->irqlock);
123 struct gpio_siox_ddata *ddata =
126 raw_spin_lock(&ddata->irqlock);
127 ddata->irq_enable |= 1 << d->hwirq;
128 raw_spin_unlock(&ddata->irqlock);
134 struct gpio_siox_ddata *ddata =
137 raw_spin_lock(&ddata->irqlock);
138 ddata->irq_type[d->hwirq] = type;
139 raw_spin_unlock(&ddata->irqlock);
146 struct gpio_siox_ddata *ddata =
150 mutex_lock(&ddata->lock);
155 ret = ddata->setdata[0] & (1 << bitpos);
159 ret = ddata->getdata[bitpos / 8] & (1 << (bitpos % 8));
162 mutex_unlock(&ddata->lock);
170 struct gpio_siox_ddata *ddata =
174 mutex_lock(&ddata->lock);
177 ddata->setdata[0] |= mask;
179 ddata->setdata[0] &= ~mask;
181 mutex_unlock(&ddata->lock);
213 struct gpio_siox_ddata *ddata;
218 ddata = devm_kzalloc(dev, sizeof(*ddata), GFP_KERNEL);
219 if (!ddata)
222 dev_set_drvdata(dev, ddata);
224 mutex_init(&ddata->lock);
225 raw_spin_lock_init(&ddata->irqlock);
227 ddata->gchip.base = -1;
228 ddata->gchip.can_sleep = 1;
229 ddata->gchip.parent = dev;
230 ddata->gchip.owner = THIS_MODULE;
231 ddata->gchip.get = gpio_siox_get;
232 ddata->gchip.set = gpio_siox_set;
233 ddata->gchip.direction_input = gpio_siox_direction_input;
234 ddata->gchip.direction_output = gpio_siox_direction_output;
235 ddata->gchip.get_direction = gpio_siox_get_direction;
236 ddata->gchip.ngpio = 20;
238 ddata->ichip.name = "siox-gpio";
239 ddata->ichip.irq_ack = gpio_siox_irq_ack;
240 ddata->ichip.irq_mask = gpio_siox_irq_mask;
241 ddata->ichip.irq_unmask = gpio_siox_irq_unmask;
242 ddata->ichip.irq_set_type = gpio_siox_irq_set_type;
244 girq = &ddata->gchip.irq;
245 girq->chip = &ddata->ichip;
250 ret = devm_gpiochip_add_data(dev, &ddata->gchip, NULL);