Lines Matching refs:bdgpio
19 static int bd70528_set_debounce(struct bd70528_gpio *bdgpio,
38 dev_err(bdgpio->chip.dev,
42 return regmap_update_bits(bdgpio->chip.regmap, GPIO_IN_REG(offset),
48 struct bd70528_gpio *bdgpio = gpiochip_get_data(chip);
52 ret = regmap_read(bdgpio->chip.regmap, GPIO_OUT_REG(offset), &val);
54 dev_err(bdgpio->chip.dev, "Could not read gpio direction\n");
66 struct bd70528_gpio *bdgpio = gpiochip_get_data(chip);
70 return regmap_update_bits(bdgpio->chip.regmap,
76 return regmap_update_bits(bdgpio->chip.regmap,
82 return bd70528_set_debounce(bdgpio, offset,
93 struct bd70528_gpio *bdgpio = gpiochip_get_data(chip);
96 return regmap_update_bits(bdgpio->chip.regmap, GPIO_OUT_REG(offset),
105 struct bd70528_gpio *bdgpio = gpiochip_get_data(chip);
108 ret = regmap_update_bits(bdgpio->chip.regmap, GPIO_OUT_REG(offset),
111 dev_err(bdgpio->chip.dev, "Could not set gpio to %d\n", value);
117 struct bd70528_gpio *bdgpio = gpiochip_get_data(chip);
120 return regmap_update_bits(bdgpio->chip.regmap, GPIO_OUT_REG(offset),
127 static int bd70528_gpio_get_o(struct bd70528_gpio *bdgpio, unsigned int offset)
132 ret = regmap_read(bdgpio->chip.regmap, GPIO_OUT_REG(offset), &val);
136 dev_err(bdgpio->chip.dev, "GPIO (out) state read failed\n");
141 static int bd70528_gpio_get_i(struct bd70528_gpio *bdgpio, unsigned int offset)
146 ret = regmap_read(bdgpio->chip.regmap, BD70528_REG_GPIO_STATE, &val);
151 dev_err(bdgpio->chip.dev, "GPIO (in) state read failed\n");
159 struct bd70528_gpio *bdgpio = gpiochip_get_data(chip);
172 ret = bd70528_gpio_get_o(bdgpio, offset);
174 ret = bd70528_gpio_get_i(bdgpio, offset);
176 dev_err(bdgpio->chip.dev, "failed to read GPIO direction\n");
183 struct bd70528_gpio *bdgpio;
193 bdgpio = devm_kzalloc(&pdev->dev, sizeof(*bdgpio),
195 if (!bdgpio)
197 bdgpio->chip.dev = &pdev->dev;
198 bdgpio->gpio.parent = pdev->dev.parent;
199 bdgpio->gpio.label = "bd70528-gpio";
200 bdgpio->gpio.owner = THIS_MODULE;
201 bdgpio->gpio.get_direction = bd70528_get_direction;
202 bdgpio->gpio.direction_input = bd70528_direction_input;
203 bdgpio->gpio.direction_output = bd70528_direction_output;
204 bdgpio->gpio.set_config = bd70528_gpio_set_config;
205 bdgpio->gpio.can_sleep = true;
206 bdgpio->gpio.get = bd70528_gpio_get;
207 bdgpio->gpio.set = bd70528_gpio_set;
208 bdgpio->gpio.ngpio = 4;
209 bdgpio->gpio.base = -1;
211 bdgpio->gpio.of_node = pdev->dev.parent->of_node;
213 bdgpio->chip.regmap = bd70528->regmap;
215 ret = devm_gpiochip_add_data(&pdev->dev, &bdgpio->gpio,
216 bdgpio);