Lines Matching full:pci

197 	struct rk806_pctrl_info *pci = gpiochip_get_data(chip);  in rk806_gpio_get()  local
200 if (!pci->pin_cfg[offset].val_msk) { in rk806_gpio_get()
201 dev_dbg(pci->dev, "getting gpio%d value is not support\n", in rk806_gpio_get()
206 ret = regmap_read(pci->rk806->regmap, pci->pin_cfg[offset].reg, &val); in rk806_gpio_get()
208 dev_err(pci->dev, "get gpio%d value failed\n", offset); in rk806_gpio_get()
212 return !!(val & pci->pin_cfg[offset].val_msk); in rk806_gpio_get()
219 struct rk806_pctrl_info *pci = gpiochip_get_data(chip); in rk806_gpio_set() local
222 if (!pci->pin_cfg[offset].val_msk) in rk806_gpio_set()
225 ret = regmap_update_bits(pci->rk806->regmap, in rk806_gpio_set()
226 pci->pin_cfg[offset].reg, in rk806_gpio_set()
227 pci->pin_cfg[offset].val_msk, in rk806_gpio_set()
228 value ? pci->pin_cfg[offset].val_msk : 0); in rk806_gpio_set()
230 dev_err(pci->dev, "set gpio%d value %d failed\n", in rk806_gpio_set()
251 struct rk806_pctrl_info *pci = gpiochip_get_data(chip); in rk806_gpio_get_direction() local
256 if (!pci->pin_cfg[offset].dir_msk) in rk806_gpio_get_direction()
259 ret = regmap_read(pci->rk806->regmap, in rk806_gpio_get_direction()
260 pci->pin_cfg[offset].reg, in rk806_gpio_get_direction()
263 dev_err(pci->dev, "get gpio%d direction failed\n", offset); in rk806_gpio_get_direction()
267 return !(val & pci->pin_cfg[offset].dir_msk); in rk806_gpio_get_direction()
287 struct rk806_pctrl_info *pci = pinctrl_dev_get_drvdata(pctldev); in rk806_pinctrl_get_groups_count() local
289 return pci->num_pin_groups; in rk806_pinctrl_get_groups_count()
295 struct rk806_pctrl_info *pci = pinctrl_dev_get_drvdata(pctldev); in rk806_pinctrl_get_group_name() local
297 return pci->groups[group].name; in rk806_pinctrl_get_group_name()
305 struct rk806_pctrl_info *pci = pinctrl_dev_get_drvdata(pctldev); in rk806_pinctrl_get_group_pins() local
307 *pins = pci->groups[group].pins; in rk806_pinctrl_get_group_pins()
308 *num_pins = pci->groups[group].npins; in rk806_pinctrl_get_group_pins()
323 struct rk806_pctrl_info *pci = pinctrl_dev_get_drvdata(pctldev); in rk806_pinctrl_get_funcs_count() local
325 return pci->num_functions; in rk806_pinctrl_get_funcs_count()
331 struct rk806_pctrl_info *pci = pinctrl_dev_get_drvdata(pctldev); in rk806_pinctrl_get_func_name() local
333 return pci->functions[function].name; in rk806_pinctrl_get_func_name()
341 struct rk806_pctrl_info *pci = pinctrl_dev_get_drvdata(pctldev); in rk806_pinctrl_get_func_groups() local
343 *groups = pci->functions[function].groups; in rk806_pinctrl_get_func_groups()
344 *num_groups = pci->functions[function].ngroups; in rk806_pinctrl_get_func_groups()
353 struct rk806_pctrl_info *pci = pinctrl_dev_get_drvdata(pctldev); in _rk806_pinctrl_set_mux() local
356 if (!pci->pin_cfg[offset].fun_msk) in _rk806_pinctrl_set_mux()
359 mux <<= ffs(pci->pin_cfg[offset].fun_msk) - 1; in _rk806_pinctrl_set_mux()
360 ret = regmap_update_bits(pci->rk806->regmap, in _rk806_pinctrl_set_mux()
361 pci->pin_cfg[offset].fun_reg, in _rk806_pinctrl_set_mux()
362 pci->pin_cfg[offset].fun_msk, mux); in _rk806_pinctrl_set_mux()
365 dev_err(pci->dev, "set gpio%d func%d failed\n", offset, mux); in _rk806_pinctrl_set_mux()
374 struct rk806_pctrl_info *pci = pinctrl_dev_get_drvdata(pctldev); in rk806_pinctrl_set_mux() local
375 int mux = pci->functions[function].mux_option; in rk806_pinctrl_set_mux()
385 struct rk806_pctrl_info *pci = pinctrl_dev_get_drvdata(pctldev); in rk806_pmx_gpio_set_direction() local
389 if (!pci->pin_cfg[offset].dir_msk) in rk806_pmx_gpio_set_direction()
392 ret = regmap_update_bits(pci->rk806->regmap, in rk806_pmx_gpio_set_direction()
393 pci->pin_cfg[offset].reg, in rk806_pmx_gpio_set_direction()
394 pci->pin_cfg[offset].dir_msk, in rk806_pmx_gpio_set_direction()
395 input ? 0 : pci->pin_cfg[offset].dir_msk); in rk806_pmx_gpio_set_direction()
397 dev_err(pci->dev, "set gpio%d direction failed\n", offset); in rk806_pmx_gpio_set_direction()
424 struct rk806_pctrl_info *pci = pinctrl_dev_get_drvdata(pctldev); in rk806_pinconf_get() local
431 arg = rk806_gpio_get(&pci->gpio_chip, pin); in rk806_pinconf_get()
434 dev_err(pci->dev, "Properties not supported\n"); in rk806_pinconf_get()
448 struct rk806_pctrl_info *pci = pinctrl_dev_get_drvdata(pctldev); in rk806_pinconf_set() local
459 rk806_gpio_set(&pci->gpio_chip, pin, arg); in rk806_pinconf_set()
469 dev_err(pci->dev, "Properties not supported\n"); in rk806_pinconf_set()
492 struct rk806_pctrl_info *pci; in rk806_pinctrl_probe() local
496 pci = devm_kzalloc(&pdev->dev, sizeof(*pci), GFP_KERNEL); in rk806_pinctrl_probe()
497 if (!pci) in rk806_pinctrl_probe()
500 pci->dev = &pdev->dev; in rk806_pinctrl_probe()
503 pci->dev->of_node = np; in rk806_pinctrl_probe()
505 pci->dev->of_node = pdev->dev.parent->of_node; in rk806_pinctrl_probe()
506 pci->rk806 = dev_get_drvdata(pdev->dev.parent); in rk806_pinctrl_probe()
508 platform_set_drvdata(pdev, pci); in rk806_pinctrl_probe()
510 pci->pinctrl_desc = rk806_pinctrl_desc; in rk806_pinctrl_probe()
511 pci->gpio_chip = rk806_gpio_chip; in rk806_pinctrl_probe()
512 pci->pins = rk806_pins_desc; in rk806_pinctrl_probe()
513 pci->num_pins = ARRAY_SIZE(rk806_pins_desc); in rk806_pinctrl_probe()
514 pci->functions = rk806_pin_functions; in rk806_pinctrl_probe()
515 pci->num_functions = ARRAY_SIZE(rk806_pin_functions); in rk806_pinctrl_probe()
516 pci->groups = rk806_pin_groups; in rk806_pinctrl_probe()
517 pci->num_pin_groups = ARRAY_SIZE(rk806_pin_groups); in rk806_pinctrl_probe()
518 pci->pinctrl_desc.pins = rk806_pins_desc; in rk806_pinctrl_probe()
519 pci->pinctrl_desc.npins = ARRAY_SIZE(rk806_pins_desc); in rk806_pinctrl_probe()
520 pci->pin_cfg = rk806_gpio_cfgs; in rk806_pinctrl_probe()
521 pci->gpio_chip.ngpio = ARRAY_SIZE(rk806_gpio_cfgs); in rk806_pinctrl_probe()
523 pci->gpio_chip.parent = &pdev->dev; in rk806_pinctrl_probe()
526 pci->gpio_chip.of_node = np; in rk806_pinctrl_probe()
528 pci->gpio_chip.of_node = pdev->dev.parent->of_node; in rk806_pinctrl_probe()
531 ret = devm_gpiochip_add_data(&pdev->dev, &pci->gpio_chip, pci); in rk806_pinctrl_probe()
538 pci->pctl = devm_pinctrl_register(&pdev->dev, &pci->pinctrl_desc, pci); in rk806_pinctrl_probe()
539 if (IS_ERR(pci->pctl)) { in rk806_pinctrl_probe()
541 return PTR_ERR(pci->pctl); in rk806_pinctrl_probe()
545 ret = gpiochip_add_pin_range(&pci->gpio_chip, in rk806_pinctrl_probe()
549 pci->gpio_chip.ngpio); in rk806_pinctrl_probe()