Lines Matching full:pci

288 	struct rk805_pctrl_info *pci = gpiochip_get_data(chip);  in rk805_gpio_get()  local
291 if (!pci->pin_cfg[offset].val_msk) { in rk805_gpio_get()
292 dev_dbg(pci->dev, "getting gpio%d value is not support\n", in rk805_gpio_get()
297 ret = regmap_read(pci->rk808->regmap, pci->pin_cfg[offset].reg, &val); in rk805_gpio_get()
299 dev_err(pci->dev, "get gpio%d value failed\n", offset); in rk805_gpio_get()
303 return !!(val & pci->pin_cfg[offset].val_msk); in rk805_gpio_get()
310 struct rk805_pctrl_info *pci = gpiochip_get_data(chip); in rk805_gpio_set() local
313 if (!pci->pin_cfg[offset].val_msk) in rk805_gpio_set()
316 ret = regmap_update_bits(pci->rk808->regmap, in rk805_gpio_set()
317 pci->pin_cfg[offset].reg, in rk805_gpio_set()
318 pci->pin_cfg[offset].val_msk, in rk805_gpio_set()
319 value ? pci->pin_cfg[offset].val_msk : 0); in rk805_gpio_set()
321 dev_err(pci->dev, "set gpio%d value %d failed\n", in rk805_gpio_set()
340 struct rk805_pctrl_info *pci = gpiochip_get_data(chip); in rk805_gpio_get_direction() local
345 if (!pci->pin_cfg[offset].dir_msk) in rk805_gpio_get_direction()
348 ret = regmap_read(pci->rk808->regmap, in rk805_gpio_get_direction()
349 pci->pin_cfg[offset].reg, in rk805_gpio_get_direction()
352 dev_err(pci->dev, "get gpio%d direction failed\n", offset); in rk805_gpio_get_direction()
356 if (val & pci->pin_cfg[offset].dir_msk) in rk805_gpio_get_direction()
407 struct rk805_pctrl_info *pci = pinctrl_dev_get_drvdata(pctldev); in rk805_pinctrl_get_groups_count() local
409 return pci->num_pin_groups; in rk805_pinctrl_get_groups_count()
415 struct rk805_pctrl_info *pci = pinctrl_dev_get_drvdata(pctldev); in rk805_pinctrl_get_group_name() local
417 return pci->groups[group].name; in rk805_pinctrl_get_group_name()
425 struct rk805_pctrl_info *pci = pinctrl_dev_get_drvdata(pctldev); in rk805_pinctrl_get_group_pins() local
427 *pins = pci->groups[group].pins; in rk805_pinctrl_get_group_pins()
428 *num_pins = pci->groups[group].npins; in rk805_pinctrl_get_group_pins()
443 struct rk805_pctrl_info *pci = pinctrl_dev_get_drvdata(pctldev); in rk805_pinctrl_get_funcs_count() local
445 return pci->num_functions; in rk805_pinctrl_get_funcs_count()
451 struct rk805_pctrl_info *pci = pinctrl_dev_get_drvdata(pctldev); in rk805_pinctrl_get_func_name() local
453 return pci->functions[function].name; in rk805_pinctrl_get_func_name()
461 struct rk805_pctrl_info *pci = pinctrl_dev_get_drvdata(pctldev); in rk805_pinctrl_get_func_groups() local
463 *groups = pci->functions[function].groups; in rk805_pinctrl_get_func_groups()
464 *num_groups = pci->functions[function].ngroups; in rk805_pinctrl_get_func_groups()
473 struct rk805_pctrl_info *pci = pinctrl_dev_get_drvdata(pctldev); in _rk805_pinctrl_set_mux() local
476 if (!pci->pin_cfg[offset].fun_msk) in _rk805_pinctrl_set_mux()
480 ret = regmap_update_bits(pci->rk808->regmap, in _rk805_pinctrl_set_mux()
481 pci->pin_cfg[offset].reg, in _rk805_pinctrl_set_mux()
482 pci->pin_cfg[offset].fun_msk, in _rk805_pinctrl_set_mux()
483 pci->pin_cfg[offset].fun_msk); in _rk805_pinctrl_set_mux()
485 dev_err(pci->dev, "set gpio%d GPIO failed\n", offset); in _rk805_pinctrl_set_mux()
489 ret = regmap_update_bits(pci->rk808->regmap, in _rk805_pinctrl_set_mux()
490 pci->pin_cfg[offset].reg, in _rk805_pinctrl_set_mux()
491 pci->pin_cfg[offset].fun_msk, in _rk805_pinctrl_set_mux()
494 dev_err(pci->dev, "set gpio%d TS failed\n", offset); in _rk805_pinctrl_set_mux()
498 dev_err(pci->dev, "Couldn't find function mux %d\n", mux); in _rk805_pinctrl_set_mux()
509 struct rk805_pctrl_info *pci = pinctrl_dev_get_drvdata(pctldev); in _rk817_pinctrl_set_mux() local
512 if (!pci->pin_cfg[offset].fun_msk) in _rk817_pinctrl_set_mux()
515 mux <<= ffs(pci->pin_cfg[offset].fun_msk) - 1; in _rk817_pinctrl_set_mux()
516 ret = regmap_update_bits(pci->rk808->regmap, in _rk817_pinctrl_set_mux()
517 pci->pin_cfg[offset].reg, in _rk817_pinctrl_set_mux()
518 pci->pin_cfg[offset].fun_msk, mux); in _rk817_pinctrl_set_mux()
521 dev_err(pci->dev, "set gpio%d func%d failed\n", offset, mux); in _rk817_pinctrl_set_mux()
530 struct rk805_pctrl_info *pci = pinctrl_dev_get_drvdata(pctldev); in rk805_pinctrl_set_mux() local
531 int mux = pci->functions[function].mux_option; in rk805_pinctrl_set_mux()
534 switch (pci->rk808->variant) { in rk805_pinctrl_set_mux()
543 dev_err(pci->dev, "Couldn't find the variant id\n"); in rk805_pinctrl_set_mux()
552 struct rk805_pctrl_info *pci = pinctrl_dev_get_drvdata(pctldev); in rk805_pmx_gpio_set_direction() local
556 if (!pci->pin_cfg[offset].dir_msk) in rk805_pmx_gpio_set_direction()
559 ret = regmap_update_bits(pci->rk808->regmap, in rk805_pmx_gpio_set_direction()
560 pci->pin_cfg[offset].reg, in rk805_pmx_gpio_set_direction()
561 pci->pin_cfg[offset].dir_msk, in rk805_pmx_gpio_set_direction()
562 input ? 0 : pci->pin_cfg[offset].dir_msk); in rk805_pmx_gpio_set_direction()
564 dev_err(pci->dev, "set gpio%d direction failed\n", offset); in rk805_pmx_gpio_set_direction()
575 struct rk805_pctrl_info *pci = pinctrl_dev_get_drvdata(pctldev); in rk805_pinctrl_gpio_request_enable() local
578 switch (pci->rk808->variant) { in rk805_pinctrl_gpio_request_enable()
600 struct rk805_pctrl_info *pci = pinctrl_dev_get_drvdata(pctldev); in rk805_pinconf_get() local
607 arg = rk805_gpio_get(&pci->gpio_chip, pin); in rk805_pinconf_get()
610 dev_err(pci->dev, "Properties not supported\n"); in rk805_pinconf_get()
623 struct rk805_pctrl_info *pci = pinctrl_dev_get_drvdata(pctldev); in rk805_pinconf_set() local
634 rk805_gpio_set(&pci->gpio_chip, pin, arg); in rk805_pinconf_set()
642 dev_err(pci->dev, "Properties not supported\n"); in rk805_pinconf_set()
681 struct rk805_pctrl_info *pci; in rk805_pinctrl_probe() local
685 pci = devm_kzalloc(&pdev->dev, sizeof(*pci), GFP_KERNEL); in rk805_pinctrl_probe()
686 if (!pci) in rk805_pinctrl_probe()
689 pci->dev = &pdev->dev; in rk805_pinctrl_probe()
692 pci->dev->of_node = np; in rk805_pinctrl_probe()
694 pci->dev->of_node = pdev->dev.parent->of_node; in rk805_pinctrl_probe()
695 pci->rk808 = dev_get_drvdata(pdev->dev.parent); in rk805_pinctrl_probe()
697 platform_set_drvdata(pdev, pci); in rk805_pinctrl_probe()
699 switch (pci->rk808->variant) { in rk805_pinctrl_probe()
701 pci->pinctrl_desc = rk805_pinctrl_desc; in rk805_pinctrl_probe()
702 pci->gpio_chip = rk805_gpio_chip; in rk805_pinctrl_probe()
703 pci->pins = rk805_pins_desc; in rk805_pinctrl_probe()
704 pci->num_pins = ARRAY_SIZE(rk805_pins_desc); in rk805_pinctrl_probe()
705 pci->functions = rk805_pin_functions; in rk805_pinctrl_probe()
706 pci->num_functions = ARRAY_SIZE(rk805_pin_functions); in rk805_pinctrl_probe()
707 pci->groups = rk805_pin_groups; in rk805_pinctrl_probe()
708 pci->num_pin_groups = ARRAY_SIZE(rk805_pin_groups); in rk805_pinctrl_probe()
709 pci->pinctrl_desc.pins = rk805_pins_desc; in rk805_pinctrl_probe()
710 pci->pinctrl_desc.npins = ARRAY_SIZE(rk805_pins_desc); in rk805_pinctrl_probe()
711 pci->pin_cfg = rk805_gpio_cfgs; in rk805_pinctrl_probe()
712 pci->gpio_chip.ngpio = ARRAY_SIZE(rk805_gpio_cfgs); in rk805_pinctrl_probe()
716 pci->pinctrl_desc = rk816_pinctrl_desc; in rk805_pinctrl_probe()
717 pci->gpio_chip = rk816_gpio_chip; in rk805_pinctrl_probe()
718 pci->pins = rk816_pins_desc; in rk805_pinctrl_probe()
719 pci->num_pins = ARRAY_SIZE(rk816_pins_desc); in rk805_pinctrl_probe()
720 pci->functions = rk816_pin_functions; in rk805_pinctrl_probe()
721 pci->num_functions = ARRAY_SIZE(rk816_pin_functions); in rk805_pinctrl_probe()
722 pci->groups = rk816_pin_groups; in rk805_pinctrl_probe()
723 pci->num_pin_groups = ARRAY_SIZE(rk816_pin_groups); in rk805_pinctrl_probe()
724 pci->pinctrl_desc.pins = rk816_pins_desc; in rk805_pinctrl_probe()
725 pci->pinctrl_desc.npins = ARRAY_SIZE(rk816_pins_desc); in rk805_pinctrl_probe()
726 pci->pin_cfg = rk816_gpio_cfgs; in rk805_pinctrl_probe()
727 pci->gpio_chip.ngpio = ARRAY_SIZE(rk816_gpio_cfgs); in rk805_pinctrl_probe()
732 pci->pinctrl_desc = rk817_pinctrl_desc; in rk805_pinctrl_probe()
733 pci->gpio_chip = rk817_gpio_chip; in rk805_pinctrl_probe()
734 pci->pins = rk817_pins_desc; in rk805_pinctrl_probe()
735 pci->num_pins = ARRAY_SIZE(rk817_pins_desc); in rk805_pinctrl_probe()
736 pci->functions = rk817_pin_functions; in rk805_pinctrl_probe()
737 pci->num_functions = ARRAY_SIZE(rk817_pin_functions); in rk805_pinctrl_probe()
738 pci->groups = rk817_pin_groups; in rk805_pinctrl_probe()
739 pci->num_pin_groups = ARRAY_SIZE(rk817_pin_groups); in rk805_pinctrl_probe()
740 pci->pinctrl_desc.pins = rk817_pins_desc; in rk805_pinctrl_probe()
741 pci->pinctrl_desc.npins = ARRAY_SIZE(rk817_pins_desc); in rk805_pinctrl_probe()
742 pci->pin_cfg = rk817_gpio_cfgs; in rk805_pinctrl_probe()
743 pci->gpio_chip.ngpio = ARRAY_SIZE(rk817_gpio_cfgs); in rk805_pinctrl_probe()
745 if (pci->rk808->variant == RK809_ID) { in rk805_pinctrl_probe()
746 pci->pinctrl_desc.npins = 1; in rk805_pinctrl_probe()
747 pci->num_pin_groups = 1; in rk805_pinctrl_probe()
748 pci->num_pins = 1; in rk805_pinctrl_probe()
749 pci->gpio_chip.ngpio = 1; in rk805_pinctrl_probe()
755 pci->rk808->variant); in rk805_pinctrl_probe()
759 pci->gpio_chip.parent = &pdev->dev; in rk805_pinctrl_probe()
762 pci->gpio_chip.of_node = np; in rk805_pinctrl_probe()
764 pci->gpio_chip.of_node = pdev->dev.parent->of_node; in rk805_pinctrl_probe()
767 ret = devm_gpiochip_add_data(&pdev->dev, &pci->gpio_chip, pci); in rk805_pinctrl_probe()
774 pci->pctl = devm_pinctrl_register(&pdev->dev, &pci->pinctrl_desc, pci); in rk805_pinctrl_probe()
775 if (IS_ERR(pci->pctl)) { in rk805_pinctrl_probe()
777 return PTR_ERR(pci->pctl); in rk805_pinctrl_probe()
781 ret = gpiochip_add_pin_range(&pci->gpio_chip, dev_name(&pdev->dev), in rk805_pinctrl_probe()
782 0, 0, pci->gpio_chip.ngpio); in rk805_pinctrl_probe()