Lines Matching +full:- +full:gp
1 // SPDX-License-Identifier: GPL-2.0-only
3 * Copyright Intel Corporation (C) 2014-2016. All Rights Reserved
7 * Adapted from gpio-tps65910.c
11 #include <linux/mfd/altera-a10sr.h>
17 * struct altr_a10sr_gpio - Altera Max5 GPIO device private data structure
18 * @gp: : instance of the gpio_chip
22 struct gpio_chip gp; member
31 ret = regmap_read(gpio->regmap, ALTR_A10SR_PBDSW_REG, &val); in altr_a10sr_gpio_get()
35 return !!(val & BIT(offset - ALTR_A10SR_LED_VALID_SHIFT)); in altr_a10sr_gpio_get()
43 regmap_update_bits(gpio->regmap, ALTR_A10SR_LED_REG, in altr_a10sr_gpio_set()
52 if (nr < (ALTR_A10SR_IN_VALID_RANGE_LO - ALTR_A10SR_LED_VALID_SHIFT)) in altr_a10sr_gpio_direction_input()
53 return -EINVAL; in altr_a10sr_gpio_direction_input()
61 if (nr > (ALTR_A10SR_OUT_VALID_RANGE_HI - ALTR_A10SR_LED_VALID_SHIFT)) in altr_a10sr_gpio_direction_output()
62 return -EINVAL; in altr_a10sr_gpio_direction_output()
77 .base = -1,
83 struct altr_a10sr *a10sr = dev_get_drvdata(pdev->dev.parent); in altr_a10sr_gpio_probe()
85 gpio = devm_kzalloc(&pdev->dev, sizeof(*gpio), GFP_KERNEL); in altr_a10sr_gpio_probe()
87 return -ENOMEM; in altr_a10sr_gpio_probe()
89 gpio->regmap = a10sr->regmap; in altr_a10sr_gpio_probe()
91 gpio->gp = altr_a10sr_gc; in altr_a10sr_gpio_probe()
92 gpio->gp.parent = pdev->dev.parent; in altr_a10sr_gpio_probe()
93 gpio->gp.fwnode = dev_fwnode(&pdev->dev); in altr_a10sr_gpio_probe()
95 return devm_gpiochip_add_data(&pdev->dev, &gpio->gp, gpio); in altr_a10sr_gpio_probe()
99 { .compatible = "altr,a10sr-gpio" },