Lines Matching refs:pci

261 	struct rk805_pctrl_info *pci = gpiochip_get_data(chip);
264 ret = regmap_read(pci->rk808->regmap, pci->pin_cfg[offset].reg, &val);
266 dev_err(pci->dev, "get gpio%d value failed\n", offset);
270 return !!(val & pci->pin_cfg[offset].val_msk);
277 struct rk805_pctrl_info *pci = gpiochip_get_data(chip);
280 ret = regmap_update_bits(pci->rk808->regmap,
281 pci->pin_cfg[offset].reg,
282 pci->pin_cfg[offset].val_msk,
283 value ? pci->pin_cfg[offset].val_msk : 0);
285 dev_err(pci->dev, "set gpio%d value %d failed\n",
304 struct rk805_pctrl_info *pci = gpiochip_get_data(chip);
309 if (!pci->pin_cfg[offset].dir_msk)
312 ret = regmap_read(pci->rk808->regmap,
313 pci->pin_cfg[offset].reg,
316 dev_err(pci->dev, "get gpio%d direction failed\n", offset);
320 if (val & pci->pin_cfg[offset].dir_msk)
343 struct rk805_pctrl_info *pci = pinctrl_dev_get_drvdata(pctldev);
345 return pci->num_pin_groups;
351 struct rk805_pctrl_info *pci = pinctrl_dev_get_drvdata(pctldev);
353 return pci->groups[group].name;
361 struct rk805_pctrl_info *pci = pinctrl_dev_get_drvdata(pctldev);
363 *pins = pci->groups[group].pins;
364 *num_pins = pci->groups[group].npins;
379 struct rk805_pctrl_info *pci = pinctrl_dev_get_drvdata(pctldev);
381 return pci->num_functions;
387 struct rk805_pctrl_info *pci = pinctrl_dev_get_drvdata(pctldev);
389 return pci->functions[function].name;
397 struct rk805_pctrl_info *pci = pinctrl_dev_get_drvdata(pctldev);
399 *groups = pci->functions[function].groups;
400 *num_groups = pci->functions[function].ngroups;
409 struct rk805_pctrl_info *pci = pinctrl_dev_get_drvdata(pctldev);
412 if (!pci->pin_cfg[offset].fun_msk)
415 mux <<= ffs(pci->pin_cfg[offset].fun_msk) - 1;
416 ret = regmap_update_bits(pci->rk808->regmap,
417 pci->pin_cfg[offset].fun_reg,
418 pci->pin_cfg[offset].fun_msk, mux);
421 dev_err(pci->dev, "set gpio%d func%d failed\n", offset, mux);
430 struct rk805_pctrl_info *pci = pinctrl_dev_get_drvdata(pctldev);
431 int mux = pci->functions[function].mux_option;
441 struct rk805_pctrl_info *pci = pinctrl_dev_get_drvdata(pctldev);
443 switch (pci->rk808->variant) {
457 struct rk805_pctrl_info *pci = pinctrl_dev_get_drvdata(pctldev);
461 if (!pci->pin_cfg[offset].dir_msk)
464 ret = regmap_update_bits(pci->rk808->regmap,
465 pci->pin_cfg[offset].reg,
466 pci->pin_cfg[offset].dir_msk,
467 input ? 0 : pci->pin_cfg[offset].dir_msk);
469 dev_err(pci->dev, "set gpio%d direction failed\n", offset);
488 struct rk805_pctrl_info *pci = pinctrl_dev_get_drvdata(pctldev);
495 arg = rk805_gpio_get(&pci->gpio_chip, pin);
498 dev_err(pci->dev, "Properties not supported\n");
511 struct rk805_pctrl_info *pci = pinctrl_dev_get_drvdata(pctldev);
521 rk805_gpio_set(&pci->gpio_chip, pin, arg);
525 if (pci->rk808->variant != RK805_ID && arg) {
531 dev_err(pci->dev, "Properties not supported\n");
554 struct rk805_pctrl_info *pci;
559 pci = devm_kzalloc(&pdev->dev, sizeof(*pci), GFP_KERNEL);
560 if (!pci)
563 pci->dev = &pdev->dev;
564 pci->rk808 = dev_get_drvdata(pdev->dev.parent);
566 pci->pinctrl_desc = rk805_pinctrl_desc;
567 pci->gpio_chip = rk805_gpio_chip;
568 pci->gpio_chip.parent = &pdev->dev;
570 platform_set_drvdata(pdev, pci);
572 switch (pci->rk808->variant) {
574 pci->pins = rk805_pins_desc;
575 pci->num_pins = ARRAY_SIZE(rk805_pins_desc);
576 pci->functions = rk805_pin_functions;
577 pci->num_functions = ARRAY_SIZE(rk805_pin_functions);
578 pci->groups = rk805_pin_groups;
579 pci->num_pin_groups = ARRAY_SIZE(rk805_pin_groups);
580 pci->pinctrl_desc.pins = rk805_pins_desc;
581 pci->pinctrl_desc.npins = ARRAY_SIZE(rk805_pins_desc);
582 pci->pin_cfg = rk805_gpio_cfgs;
583 pci->gpio_chip.ngpio = ARRAY_SIZE(rk805_gpio_cfgs);
586 pci->pins = rk806_pins_desc;
587 pci->num_pins = ARRAY_SIZE(rk806_pins_desc);
588 pci->functions = rk806_pin_functions;
589 pci->num_functions = ARRAY_SIZE(rk806_pin_functions);
590 pci->groups = rk806_pin_groups;
591 pci->num_pin_groups = ARRAY_SIZE(rk806_pin_groups);
592 pci->pinctrl_desc.pins = rk806_pins_desc;
593 pci->pinctrl_desc.npins = ARRAY_SIZE(rk806_pins_desc);
594 pci->pin_cfg = rk806_gpio_cfgs;
595 pci->gpio_chip.ngpio = ARRAY_SIZE(rk806_gpio_cfgs);
599 pci->rk808->variant);
604 ret = devm_gpiochip_add_data(&pdev->dev, &pci->gpio_chip, pci);
611 pci->pctl = devm_pinctrl_register(&pdev->dev, &pci->pinctrl_desc, pci);
612 if (IS_ERR(pci->pctl)) {
614 return PTR_ERR(pci->pctl);
618 ret = gpiochip_add_pin_range(&pci->gpio_chip, dev_name(&pdev->dev),
619 0, 0, pci->gpio_chip.ngpio);