Lines Matching refs:pci

269     struct rk805_pctrl_info *pci = gpiochip_get_data(chip);

272 if (!pci->pin_cfg[offset].val_msk) {
273 dev_dbg(pci->dev, "getting gpio%d value is not support\n", offset);
277 ret = regmap_read(pci->rk808->regmap, pci->pin_cfg[offset].reg, &val);
279 dev_err(pci->dev, "get gpio%d value failed\n", offset);
283 return !!(val & pci->pin_cfg[offset].val_msk);
288 struct rk805_pctrl_info *pci = gpiochip_get_data(chip);
290 if (!pci->pin_cfg[offset].val_msk) {
293 ret = regmap_update_bits(pci->rk808->regmap, pci->pin_cfg[offset].reg, pci->pin_cfg[offset].val_msk,
294 value ? pci->pin_cfg[offset].val_msk : 0);
296 dev_err(pci->dev, "set gpio%d value %d failed\n", offset, value);
313 struct rk805_pctrl_info *pci = gpiochip_get_data(chip);
318 if (!pci->pin_cfg[offset].dir_msk) {
322 ret = regmap_read(pci->rk808->regmap, pci->pin_cfg[offset].reg, &val);
324 dev_err(pci->dev, "get gpio%d direction failed\n", offset);
328 if (val & pci->pin_cfg[offset].dir_msk) {
380 struct rk805_pctrl_info *pci = pinctrl_dev_get_drvdata(pctldev);
382 return pci->num_pin_groups;
387 struct rk805_pctrl_info *pci = pinctrl_dev_get_drvdata(pctldev);
389 return pci->groups[group].name;
395 struct rk805_pctrl_info *pci = pinctrl_dev_get_drvdata(pctldev);
397 *pins = pci->groups[group].pins;
398 *num_pins = pci->groups[group].npins;
413 struct rk805_pctrl_info *pci = pinctrl_dev_get_drvdata(pctldev);
415 return pci->num_functions;
420 struct rk805_pctrl_info *pci = pinctrl_dev_get_drvdata(pctldev);
422 return pci->functions[function].name;
428 struct rk805_pctrl_info *pci = pinctrl_dev_get_drvdata(pctldev);
430 *groups = pci->functions[function].groups;
431 *num_groups = pci->functions[function].ngroups;
438 struct rk805_pctrl_info *pci = pinctrl_dev_get_drvdata(pctldev);
441 if (!pci->pin_cfg[offset].fun_msk) {
446 ret = regmap_update_bits(pci->rk808->regmap, pci->pin_cfg[offset].reg, pci->pin_cfg[offset].fun_msk,
447 pci->pin_cfg[offset].fun_msk);
449 dev_err(pci->dev, "set gpio%d GPIO failed\n", offset);
453 ret = regmap_update_bits(pci->rk808->regmap, pci->pin_cfg[offset].reg, pci->pin_cfg[offset].fun_msk, 0);
455 dev_err(pci->dev, "set gpio%d TS failed\n", offset);
459 dev_err(pci->dev, "Couldn't find function mux %d\n", mux);
468 struct rk805_pctrl_info *pci = pinctrl_dev_get_drvdata(pctldev);
471 if (!pci->pin_cfg[offset].fun_msk) {
475 mux <<= ffs(pci->pin_cfg[offset].fun_msk) - 1;
476 ret = regmap_update_bits(pci->rk808->regmap, pci->pin_cfg[offset].reg, pci->pin_cfg[offset].fun_msk, mux);
478 dev_err(pci->dev, "set gpio%d func%d failed\n", offset, mux);
486 struct rk805_pctrl_info *pci = pinctrl_dev_get_drvdata(pctldev);
487 int mux = pci->functions[function].mux_option;
490 switch (pci->rk808->variant) {
499 dev_err(pci->dev, "Couldn't find the variant id\n");
507 struct rk805_pctrl_info *pci = pinctrl_dev_get_drvdata(pctldev);
511 if (!pci->pin_cfg[offset].dir_msk) {
515 ret = regmap_update_bits(pci->rk808->regmap, pci->pin_cfg[offset].reg, pci->pin_cfg[offset].dir_msk,
516 input ? 0 : pci->pin_cfg[offset].dir_msk);
518 dev_err(pci->dev, "set gpio%d direction failed\n", offset);
528 struct rk805_pctrl_info *pci = pinctrl_dev_get_drvdata(pctldev);
531 switch (pci->rk808->variant) {
551 struct rk805_pctrl_info *pci = pinctrl_dev_get_drvdata(pctldev);
558 arg = rk805_gpio_get(&pci->gpio_chip, pin);
561 dev_err(pci->dev, "Properties not supported\n");
573 struct rk805_pctrl_info *pci = pinctrl_dev_get_drvdata(pctldev);
584 rk805_gpio_set(&pci->gpio_chip, pin, arg);
592 dev_err(pci->dev, "Properties not supported\n");
631 struct rk805_pctrl_info *pci;
635 pci = devm_kzalloc(&pdev->dev, sizeof(*pci), GFP_KERNEL);
636 if (!pci) {
640 pci->dev = &pdev->dev;
643 pci->dev->of_node = np;
645 pci->dev->of_node = pdev->dev.parent->of_node;
647 pci->rk808 = dev_get_drvdata(pdev->dev.parent);
649 platform_set_drvdata(pdev, pci);
651 switch (pci->rk808->variant) {
653 pci->pinctrl_desc = rk805_pinctrl_desc;
654 pci->gpio_chip = rk805_gpio_chip;
655 pci->pins = rk805_pins_desc;
656 pci->num_pins = ARRAY_SIZE(rk805_pins_desc);
657 pci->functions = rk805_pin_functions;
658 pci->num_functions = ARRAY_SIZE(rk805_pin_functions);
659 pci->groups = rk805_pin_groups;
660 pci->num_pin_groups = ARRAY_SIZE(rk805_pin_groups);
661 pci->pinctrl_desc.pins = rk805_pins_desc;
662 pci->pinctrl_desc.npins = ARRAY_SIZE(rk805_pins_desc);
663 pci->pin_cfg = rk805_gpio_cfgs;
664 pci->gpio_chip.ngpio = ARRAY_SIZE(rk805_gpio_cfgs);
668 pci->pinctrl_desc = rk816_pinctrl_desc;
669 pci->gpio_chip = rk816_gpio_chip;
670 pci->pins = rk816_pins_desc;
671 pci->num_pins = ARRAY_SIZE(rk816_pins_desc);
672 pci->functions = rk816_pin_functions;
673 pci->num_functions = ARRAY_SIZE(rk816_pin_functions);
674 pci->groups = rk816_pin_groups;
675 pci->num_pin_groups = ARRAY_SIZE(rk816_pin_groups);
676 pci->pinctrl_desc.pins = rk816_pins_desc;
677 pci->pinctrl_desc.npins = ARRAY_SIZE(rk816_pins_desc);
678 pci->pin_cfg = rk816_gpio_cfgs;
679 pci->gpio_chip.ngpio = ARRAY_SIZE(rk816_gpio_cfgs);
684 pci->pinctrl_desc = rk817_pinctrl_desc;
685 pci->gpio_chip = rk817_gpio_chip;
686 pci->pins = rk817_pins_desc;
687 pci->num_pins = ARRAY_SIZE(rk817_pins_desc);
688 pci->functions = rk817_pin_functions;
689 pci->num_functions = ARRAY_SIZE(rk817_pin_functions);
690 pci->groups = rk817_pin_groups;
691 pci->num_pin_groups = ARRAY_SIZE(rk817_pin_groups);
692 pci->pinctrl_desc.pins = rk817_pins_desc;
693 pci->pinctrl_desc.npins = ARRAY_SIZE(rk817_pins_desc);
694 pci->pin_cfg = rk817_gpio_cfgs;
695 pci->gpio_chip.ngpio = ARRAY_SIZE(rk817_gpio_cfgs);
697 if (pci->rk808->variant == RK809_ID) {
698 pci->pinctrl_desc.npins = 1;
699 pci->num_pin_groups = 1;
700 pci->num_pins = 1;
701 pci->gpio_chip.ngpio = 1;
706 dev_err(&pdev->dev, "unsupported RK805 ID %lu\n", pci->rk808->variant);
710 pci->gpio_chip.parent = &pdev->dev;
713 pci->gpio_chip.of_node = np;
715 pci->gpio_chip.of_node = pdev->dev.parent->of_node;
719 ret = devm_gpiochip_add_data(&pdev->dev, &pci->gpio_chip, pci);
726 pci->pctl = devm_pinctrl_register(&pdev->dev, &pci->pinctrl_desc, pci);
727 if (IS_ERR(pci->pctl)) {
729 return PTR_ERR(pci->pctl);
733 ret = gpiochip_add_pin_range(&pci->gpio_chip, dev_name(&pdev->dev), 0, 0, pci->gpio_chip.ngpio);