Lines Matching full:gs
59 struct mlxbf3_gpio_context *gs = gpiochip_get_data(gc); in mlxbf3_gpio_irq_enable() local
66 raw_spin_lock_irqsave(&gs->gc.bgpio_lock, flags); in mlxbf3_gpio_irq_enable()
67 writel(BIT(offset), gs->gpio_cause_io + MLXBF_GPIO_CAUSE_OR_CLRCAUSE); in mlxbf3_gpio_irq_enable()
69 val = readl(gs->gpio_cause_io + MLXBF_GPIO_CAUSE_OR_EVTEN0); in mlxbf3_gpio_irq_enable()
71 writel(val, gs->gpio_cause_io + MLXBF_GPIO_CAUSE_OR_EVTEN0); in mlxbf3_gpio_irq_enable()
72 raw_spin_unlock_irqrestore(&gs->gc.bgpio_lock, flags); in mlxbf3_gpio_irq_enable()
78 struct mlxbf3_gpio_context *gs = gpiochip_get_data(gc); in mlxbf3_gpio_irq_disable() local
83 raw_spin_lock_irqsave(&gs->gc.bgpio_lock, flags); in mlxbf3_gpio_irq_disable()
84 val = readl(gs->gpio_cause_io + MLXBF_GPIO_CAUSE_OR_EVTEN0); in mlxbf3_gpio_irq_disable()
86 writel(val, gs->gpio_cause_io + MLXBF_GPIO_CAUSE_OR_EVTEN0); in mlxbf3_gpio_irq_disable()
88 writel(BIT(offset), gs->gpio_cause_io + MLXBF_GPIO_CAUSE_OR_CLRCAUSE); in mlxbf3_gpio_irq_disable()
89 raw_spin_unlock_irqrestore(&gs->gc.bgpio_lock, flags); in mlxbf3_gpio_irq_disable()
96 struct mlxbf3_gpio_context *gs = ptr; in mlxbf3_gpio_irq_handler() local
97 struct gpio_chip *gc = &gs->gc; in mlxbf3_gpio_irq_handler()
101 pending = readl(gs->gpio_cause_io + MLXBF_GPIO_CAUSE_OR_CAUSE_EVTEN0); in mlxbf3_gpio_irq_handler()
102 writel(pending, gs->gpio_cause_io + MLXBF_GPIO_CAUSE_OR_CLRCAUSE); in mlxbf3_gpio_irq_handler()
114 struct mlxbf3_gpio_context *gs = gpiochip_get_data(gc); in mlxbf3_gpio_irq_set_type() local
119 raw_spin_lock_irqsave(&gs->gc.bgpio_lock, flags); in mlxbf3_gpio_irq_set_type()
123 val = readl(gs->gpio_io + MLXBF_GPIO_CAUSE_FALL_EN); in mlxbf3_gpio_irq_set_type()
125 writel(val, gs->gpio_io + MLXBF_GPIO_CAUSE_FALL_EN); in mlxbf3_gpio_irq_set_type()
126 val = readl(gs->gpio_io + MLXBF_GPIO_CAUSE_RISE_EN); in mlxbf3_gpio_irq_set_type()
128 writel(val, gs->gpio_io + MLXBF_GPIO_CAUSE_RISE_EN); in mlxbf3_gpio_irq_set_type()
131 val = readl(gs->gpio_io + MLXBF_GPIO_CAUSE_RISE_EN); in mlxbf3_gpio_irq_set_type()
133 writel(val, gs->gpio_io + MLXBF_GPIO_CAUSE_RISE_EN); in mlxbf3_gpio_irq_set_type()
136 val = readl(gs->gpio_io + MLXBF_GPIO_CAUSE_FALL_EN); in mlxbf3_gpio_irq_set_type()
138 writel(val, gs->gpio_io + MLXBF_GPIO_CAUSE_FALL_EN); in mlxbf3_gpio_irq_set_type()
141 raw_spin_unlock_irqrestore(&gs->gc.bgpio_lock, flags); in mlxbf3_gpio_irq_set_type()
145 raw_spin_unlock_irqrestore(&gs->gc.bgpio_lock, flags); in mlxbf3_gpio_irq_set_type()
190 struct mlxbf3_gpio_context *gs; in mlxbf3_gpio_probe() local
195 gs = devm_kzalloc(dev, sizeof(*gs), GFP_KERNEL); in mlxbf3_gpio_probe()
196 if (!gs) in mlxbf3_gpio_probe()
199 gs->gpio_io = devm_platform_ioremap_resource(pdev, 0); in mlxbf3_gpio_probe()
200 if (IS_ERR(gs->gpio_io)) in mlxbf3_gpio_probe()
201 return PTR_ERR(gs->gpio_io); in mlxbf3_gpio_probe()
203 gs->gpio_cause_io = devm_platform_ioremap_resource(pdev, 1); in mlxbf3_gpio_probe()
204 if (IS_ERR(gs->gpio_cause_io)) in mlxbf3_gpio_probe()
205 return PTR_ERR(gs->gpio_cause_io); in mlxbf3_gpio_probe()
207 gs->gpio_set_io = devm_platform_ioremap_resource(pdev, 2); in mlxbf3_gpio_probe()
208 if (IS_ERR(gs->gpio_set_io)) in mlxbf3_gpio_probe()
209 return PTR_ERR(gs->gpio_set_io); in mlxbf3_gpio_probe()
211 gs->gpio_clr_io = devm_platform_ioremap_resource(pdev, 3); in mlxbf3_gpio_probe()
212 if (IS_ERR(gs->gpio_clr_io)) in mlxbf3_gpio_probe()
213 return PTR_ERR(gs->gpio_clr_io); in mlxbf3_gpio_probe()
214 gc = &gs->gc; in mlxbf3_gpio_probe()
217 gs->gpio_io + MLXBF_GPIO_READ_DATA_IN, in mlxbf3_gpio_probe()
218 gs->gpio_set_io + MLXBF_GPIO_FW_DATA_OUT_SET, in mlxbf3_gpio_probe()
219 gs->gpio_clr_io + MLXBF_GPIO_FW_DATA_OUT_CLEAR, in mlxbf3_gpio_probe()
220 gs->gpio_set_io + MLXBF_GPIO_FW_OUTPUT_ENABLE_SET, in mlxbf3_gpio_probe()
221 gs->gpio_clr_io + MLXBF_GPIO_FW_OUTPUT_ENABLE_CLEAR, 0); in mlxbf3_gpio_probe()
232 girq = &gs->gc.irq; in mlxbf3_gpio_probe()
246 IRQF_SHARED, dev_name(dev), gs); in mlxbf3_gpio_probe()
251 platform_set_drvdata(pdev, gs); in mlxbf3_gpio_probe()
253 ret = devm_gpiochip_add_data(dev, &gs->gc, gs); in mlxbf3_gpio_probe()
262 struct mlxbf3_gpio_context *gs = platform_get_drvdata(pdev); in mlxbf3_gpio_shutdown() local
265 writel(0, gs->gpio_cause_io + MLXBF_GPIO_CAUSE_OR_EVTEN0); in mlxbf3_gpio_shutdown()
266 writel(MLXBF_GPIO_CLR_ALL_INTS, gs->gpio_cause_io + MLXBF_GPIO_CAUSE_OR_CLRCAUSE); in mlxbf3_gpio_shutdown()