Lines Matching refs:exar_gpio

37 	struct exar_gpio_chip *exar_gpio = gpiochip_get_data(chip);  in exar_update()  local
40 mutex_lock(&exar_gpio->lock); in exar_update()
41 temp = readb(exar_gpio->regs + reg); in exar_update()
45 writeb(temp, exar_gpio->regs + reg); in exar_update()
46 mutex_unlock(&exar_gpio->lock); in exar_update()
52 struct exar_gpio_chip *exar_gpio = gpiochip_get_data(chip); in exar_set_direction() local
53 unsigned int addr = (offset + exar_gpio->first_pin) / 8 ? in exar_set_direction()
55 unsigned int bit = (offset + exar_gpio->first_pin) % 8; in exar_set_direction()
63 struct exar_gpio_chip *exar_gpio = gpiochip_get_data(chip); in exar_get() local
66 mutex_lock(&exar_gpio->lock); in exar_get()
67 value = readb(exar_gpio->regs + reg); in exar_get()
68 mutex_unlock(&exar_gpio->lock); in exar_get()
75 struct exar_gpio_chip *exar_gpio = gpiochip_get_data(chip); in exar_get_direction() local
76 unsigned int addr = (offset + exar_gpio->first_pin) / 8 ? in exar_get_direction()
78 unsigned int bit = (offset + exar_gpio->first_pin) % 8; in exar_get_direction()
88 struct exar_gpio_chip *exar_gpio = gpiochip_get_data(chip); in exar_get_value() local
89 unsigned int addr = (offset + exar_gpio->first_pin) / 8 ? in exar_get_value()
91 unsigned int bit = (offset + exar_gpio->first_pin) % 8; in exar_get_value()
99 struct exar_gpio_chip *exar_gpio = gpiochip_get_data(chip); in exar_set_value() local
100 unsigned int addr = (offset + exar_gpio->first_pin) / 8 ? in exar_set_value()
102 unsigned int bit = (offset + exar_gpio->first_pin) % 8; in exar_set_value()
122 struct exar_gpio_chip *exar_gpio; in gpio_exar_probe() local
144 exar_gpio = devm_kzalloc(&pdev->dev, sizeof(*exar_gpio), GFP_KERNEL); in gpio_exar_probe()
145 if (!exar_gpio) in gpio_exar_probe()
148 mutex_init(&exar_gpio->lock); in gpio_exar_probe()
156 sprintf(exar_gpio->name, "exar_gpio%d", index); in gpio_exar_probe()
157 exar_gpio->gpio_chip.label = exar_gpio->name; in gpio_exar_probe()
158 exar_gpio->gpio_chip.parent = &pdev->dev; in gpio_exar_probe()
159 exar_gpio->gpio_chip.direction_output = exar_direction_output; in gpio_exar_probe()
160 exar_gpio->gpio_chip.direction_input = exar_direction_input; in gpio_exar_probe()
161 exar_gpio->gpio_chip.get_direction = exar_get_direction; in gpio_exar_probe()
162 exar_gpio->gpio_chip.get = exar_get_value; in gpio_exar_probe()
163 exar_gpio->gpio_chip.set = exar_set_value; in gpio_exar_probe()
164 exar_gpio->gpio_chip.base = -1; in gpio_exar_probe()
165 exar_gpio->gpio_chip.ngpio = ngpios; in gpio_exar_probe()
166 exar_gpio->regs = p; in gpio_exar_probe()
167 exar_gpio->index = index; in gpio_exar_probe()
168 exar_gpio->first_pin = first_pin; in gpio_exar_probe()
171 &exar_gpio->gpio_chip, exar_gpio); in gpio_exar_probe()
175 platform_set_drvdata(pdev, exar_gpio); in gpio_exar_probe()
182 mutex_destroy(&exar_gpio->lock); in gpio_exar_probe()
188 struct exar_gpio_chip *exar_gpio = platform_get_drvdata(pdev); in gpio_exar_remove() local
190 ida_simple_remove(&ida_index, exar_gpio->index); in gpio_exar_remove()
191 mutex_destroy(&exar_gpio->lock); in gpio_exar_remove()