Lines Matching refs:pci
142 struct rk805_pctrl_info *pci = gpiochip_get_data(chip); in rk805_gpio_get() local
145 ret = regmap_read(pci->rk808->regmap, pci->pin_cfg[offset].reg, &val); in rk805_gpio_get()
147 dev_err(pci->dev, "get gpio%d value failed\n", offset); in rk805_gpio_get()
151 return !!(val & pci->pin_cfg[offset].val_msk); in rk805_gpio_get()
158 struct rk805_pctrl_info *pci = gpiochip_get_data(chip); in rk805_gpio_set() local
161 ret = regmap_update_bits(pci->rk808->regmap, in rk805_gpio_set()
162 pci->pin_cfg[offset].reg, in rk805_gpio_set()
163 pci->pin_cfg[offset].val_msk, in rk805_gpio_set()
164 value ? pci->pin_cfg[offset].val_msk : 0); in rk805_gpio_set()
166 dev_err(pci->dev, "set gpio%d value %d failed\n", in rk805_gpio_set()
185 struct rk805_pctrl_info *pci = gpiochip_get_data(chip); in rk805_gpio_get_direction() local
190 if (!pci->pin_cfg[offset].dir_msk) in rk805_gpio_get_direction()
193 ret = regmap_read(pci->rk808->regmap, in rk805_gpio_get_direction()
194 pci->pin_cfg[offset].reg, in rk805_gpio_get_direction()
197 dev_err(pci->dev, "get gpio%d direction failed\n", offset); in rk805_gpio_get_direction()
201 return !(val & pci->pin_cfg[offset].dir_msk); in rk805_gpio_get_direction()
221 struct rk805_pctrl_info *pci = pinctrl_dev_get_drvdata(pctldev); in rk805_pinctrl_get_groups_count() local
223 return pci->num_pin_groups; in rk805_pinctrl_get_groups_count()
229 struct rk805_pctrl_info *pci = pinctrl_dev_get_drvdata(pctldev); in rk805_pinctrl_get_group_name() local
231 return pci->groups[group].name; in rk805_pinctrl_get_group_name()
239 struct rk805_pctrl_info *pci = pinctrl_dev_get_drvdata(pctldev); in rk805_pinctrl_get_group_pins() local
241 *pins = pci->groups[group].pins; in rk805_pinctrl_get_group_pins()
242 *num_pins = pci->groups[group].npins; in rk805_pinctrl_get_group_pins()
257 struct rk805_pctrl_info *pci = pinctrl_dev_get_drvdata(pctldev); in rk805_pinctrl_get_funcs_count() local
259 return pci->num_functions; in rk805_pinctrl_get_funcs_count()
265 struct rk805_pctrl_info *pci = pinctrl_dev_get_drvdata(pctldev); in rk805_pinctrl_get_func_name() local
267 return pci->functions[function].name; in rk805_pinctrl_get_func_name()
275 struct rk805_pctrl_info *pci = pinctrl_dev_get_drvdata(pctldev); in rk805_pinctrl_get_func_groups() local
277 *groups = pci->functions[function].groups; in rk805_pinctrl_get_func_groups()
278 *num_groups = pci->functions[function].ngroups; in rk805_pinctrl_get_func_groups()
287 struct rk805_pctrl_info *pci = pinctrl_dev_get_drvdata(pctldev); in _rk805_pinctrl_set_mux() local
290 if (!pci->pin_cfg[offset].fun_msk) in _rk805_pinctrl_set_mux()
294 ret = regmap_update_bits(pci->rk808->regmap, in _rk805_pinctrl_set_mux()
295 pci->pin_cfg[offset].reg, in _rk805_pinctrl_set_mux()
296 pci->pin_cfg[offset].fun_msk, in _rk805_pinctrl_set_mux()
297 pci->pin_cfg[offset].fun_msk); in _rk805_pinctrl_set_mux()
299 dev_err(pci->dev, "set gpio%d GPIO failed\n", offset); in _rk805_pinctrl_set_mux()
303 dev_err(pci->dev, "Couldn't find function mux %d\n", mux); in _rk805_pinctrl_set_mux()
314 struct rk805_pctrl_info *pci = pinctrl_dev_get_drvdata(pctldev); in rk805_pinctrl_set_mux() local
315 int mux = pci->functions[function].mux_option; in rk805_pinctrl_set_mux()
325 struct rk805_pctrl_info *pci = pinctrl_dev_get_drvdata(pctldev); in rk805_pmx_gpio_set_direction() local
331 dev_err(pci->dev, "set gpio%d mux failed\n", offset); in rk805_pmx_gpio_set_direction()
336 if (!pci->pin_cfg[offset].dir_msk) in rk805_pmx_gpio_set_direction()
339 ret = regmap_update_bits(pci->rk808->regmap, in rk805_pmx_gpio_set_direction()
340 pci->pin_cfg[offset].reg, in rk805_pmx_gpio_set_direction()
341 pci->pin_cfg[offset].dir_msk, in rk805_pmx_gpio_set_direction()
342 input ? 0 : pci->pin_cfg[offset].dir_msk); in rk805_pmx_gpio_set_direction()
344 dev_err(pci->dev, "set gpio%d direction failed\n", offset); in rk805_pmx_gpio_set_direction()
362 struct rk805_pctrl_info *pci = pinctrl_dev_get_drvdata(pctldev); in rk805_pinconf_get() local
368 arg = rk805_gpio_get(&pci->gpio_chip, pin); in rk805_pinconf_get()
371 dev_err(pci->dev, "Properties not supported\n"); in rk805_pinconf_get()
384 struct rk805_pctrl_info *pci = pinctrl_dev_get_drvdata(pctldev); in rk805_pinconf_set() local
394 rk805_gpio_set(&pci->gpio_chip, pin, arg); in rk805_pinconf_set()
398 dev_err(pci->dev, "Properties not supported\n"); in rk805_pinconf_set()
421 struct rk805_pctrl_info *pci; in rk805_pinctrl_probe() local
424 pci = devm_kzalloc(&pdev->dev, sizeof(*pci), GFP_KERNEL); in rk805_pinctrl_probe()
425 if (!pci) in rk805_pinctrl_probe()
428 pci->dev = &pdev->dev; in rk805_pinctrl_probe()
429 pci->dev->of_node = pdev->dev.parent->of_node; in rk805_pinctrl_probe()
430 pci->rk808 = dev_get_drvdata(pdev->dev.parent); in rk805_pinctrl_probe()
432 pci->pinctrl_desc = rk805_pinctrl_desc; in rk805_pinctrl_probe()
433 pci->gpio_chip = rk805_gpio_chip; in rk805_pinctrl_probe()
434 pci->gpio_chip.parent = &pdev->dev; in rk805_pinctrl_probe()
435 pci->gpio_chip.of_node = pdev->dev.parent->of_node; in rk805_pinctrl_probe()
437 platform_set_drvdata(pdev, pci); in rk805_pinctrl_probe()
439 switch (pci->rk808->variant) { in rk805_pinctrl_probe()
441 pci->pins = rk805_pins_desc; in rk805_pinctrl_probe()
442 pci->num_pins = ARRAY_SIZE(rk805_pins_desc); in rk805_pinctrl_probe()
443 pci->functions = rk805_pin_functions; in rk805_pinctrl_probe()
444 pci->num_functions = ARRAY_SIZE(rk805_pin_functions); in rk805_pinctrl_probe()
445 pci->groups = rk805_pin_groups; in rk805_pinctrl_probe()
446 pci->num_pin_groups = ARRAY_SIZE(rk805_pin_groups); in rk805_pinctrl_probe()
447 pci->pinctrl_desc.pins = rk805_pins_desc; in rk805_pinctrl_probe()
448 pci->pinctrl_desc.npins = ARRAY_SIZE(rk805_pins_desc); in rk805_pinctrl_probe()
449 pci->pin_cfg = rk805_gpio_cfgs; in rk805_pinctrl_probe()
450 pci->gpio_chip.ngpio = ARRAY_SIZE(rk805_gpio_cfgs); in rk805_pinctrl_probe()
454 pci->rk808->variant); in rk805_pinctrl_probe()
459 ret = devm_gpiochip_add_data(&pdev->dev, &pci->gpio_chip, pci); in rk805_pinctrl_probe()
466 pci->pctl = devm_pinctrl_register(&pdev->dev, &pci->pinctrl_desc, pci); in rk805_pinctrl_probe()
467 if (IS_ERR(pci->pctl)) { in rk805_pinctrl_probe()
469 return PTR_ERR(pci->pctl); in rk805_pinctrl_probe()
473 ret = gpiochip_add_pin_range(&pci->gpio_chip, dev_name(&pdev->dev), in rk805_pinctrl_probe()
474 0, 0, pci->gpio_chip.ngpio); in rk805_pinctrl_probe()