Lines Matching refs:ic

56 static inline void lpc18xx_gpio_pin_ic_isel(struct lpc18xx_gpio_pin_ic *ic,
59 u32 val = readl_relaxed(ic->base + LPC18XX_GPIO_PIN_IC_ISEL);
66 writel_relaxed(val, ic->base + LPC18XX_GPIO_PIN_IC_ISEL);
69 static inline void lpc18xx_gpio_pin_ic_set(struct lpc18xx_gpio_pin_ic *ic,
72 writel_relaxed(BIT(pin), ic->base + reg);
77 struct lpc18xx_gpio_pin_ic *ic = d->chip_data;
80 raw_spin_lock(&ic->lock);
83 lpc18xx_gpio_pin_ic_set(ic, d->hwirq,
87 lpc18xx_gpio_pin_ic_set(ic, d->hwirq,
90 raw_spin_unlock(&ic->lock);
97 struct lpc18xx_gpio_pin_ic *ic = d->chip_data;
100 raw_spin_lock(&ic->lock);
103 lpc18xx_gpio_pin_ic_set(ic, d->hwirq,
107 lpc18xx_gpio_pin_ic_set(ic, d->hwirq,
110 raw_spin_unlock(&ic->lock);
117 struct lpc18xx_gpio_pin_ic *ic = d->chip_data;
120 raw_spin_lock(&ic->lock);
123 lpc18xx_gpio_pin_ic_set(ic, d->hwirq,
126 raw_spin_unlock(&ic->lock);
133 struct lpc18xx_gpio_pin_ic *ic = d->chip_data;
135 raw_spin_lock(&ic->lock);
138 lpc18xx_gpio_pin_ic_isel(ic, d->hwirq, true);
139 lpc18xx_gpio_pin_ic_set(ic, d->hwirq,
142 lpc18xx_gpio_pin_ic_isel(ic, d->hwirq, true);
143 lpc18xx_gpio_pin_ic_set(ic, d->hwirq,
146 lpc18xx_gpio_pin_ic_isel(ic, d->hwirq, false);
149 raw_spin_unlock(&ic->lock);
168 struct lpc18xx_gpio_pin_ic *ic = domain->host_data;
195 &lpc18xx_gpio_pin_ic, ic);
209 struct lpc18xx_gpio_pin_ic *ic;
222 ic = devm_kzalloc(dev, sizeof(*ic), GFP_KERNEL);
223 if (!ic)
227 "gpio-pin-ic");
237 ic->base = devm_ioremap_resource(dev, &res);
238 if (IS_ERR(ic->base)) {
239 ret = PTR_ERR(ic->base);
243 raw_spin_lock_init(&ic->lock);
245 ic->domain = irq_domain_add_hierarchy(parent_domain, 0,
249 ic);
250 if (!ic->domain) {
256 gc->pin_ic = ic;
261 devm_iounmap(dev, ic->base);
263 devm_kfree(dev, ic);