Lines Matching refs:pci
138 struct rk805_pctrl_info *pci = gpiochip_get_data(chip);
141 ret = regmap_read(pci->rk808->regmap, pci->pin_cfg[offset].reg, &val);
143 dev_err(pci->dev, "get gpio%d value failed\n", offset);
147 return !!(val & pci->pin_cfg[offset].val_msk);
154 struct rk805_pctrl_info *pci = gpiochip_get_data(chip);
157 ret = regmap_update_bits(pci->rk808->regmap,
158 pci->pin_cfg[offset].reg,
159 pci->pin_cfg[offset].val_msk,
160 value ? pci->pin_cfg[offset].val_msk : 0);
162 dev_err(pci->dev, "set gpio%d value %d failed\n",
181 struct rk805_pctrl_info *pci = gpiochip_get_data(chip);
186 if (!pci->pin_cfg[offset].dir_msk)
189 ret = regmap_read(pci->rk808->regmap,
190 pci->pin_cfg[offset].reg,
193 dev_err(pci->dev, "get gpio%d direction failed\n", offset);
197 if (val & pci->pin_cfg[offset].dir_msk)
220 struct rk805_pctrl_info *pci = pinctrl_dev_get_drvdata(pctldev);
222 return pci->num_pin_groups;
228 struct rk805_pctrl_info *pci = pinctrl_dev_get_drvdata(pctldev);
230 return pci->groups[group].name;
238 struct rk805_pctrl_info *pci = pinctrl_dev_get_drvdata(pctldev);
240 *pins = pci->groups[group].pins;
241 *num_pins = pci->groups[group].npins;
256 struct rk805_pctrl_info *pci = pinctrl_dev_get_drvdata(pctldev);
258 return pci->num_functions;
264 struct rk805_pctrl_info *pci = pinctrl_dev_get_drvdata(pctldev);
266 return pci->functions[function].name;
274 struct rk805_pctrl_info *pci = pinctrl_dev_get_drvdata(pctldev);
276 *groups = pci->functions[function].groups;
277 *num_groups = pci->functions[function].ngroups;
286 struct rk805_pctrl_info *pci = pinctrl_dev_get_drvdata(pctldev);
289 if (!pci->pin_cfg[offset].fun_msk)
293 ret = regmap_update_bits(pci->rk808->regmap,
294 pci->pin_cfg[offset].reg,
295 pci->pin_cfg[offset].fun_msk,
296 pci->pin_cfg[offset].fun_msk);
298 dev_err(pci->dev, "set gpio%d GPIO failed\n", offset);
302 dev_err(pci->dev, "Couldn't find function mux %d\n", mux);
313 struct rk805_pctrl_info *pci = pinctrl_dev_get_drvdata(pctldev);
314 int mux = pci->functions[function].mux_option;
324 struct rk805_pctrl_info *pci = pinctrl_dev_get_drvdata(pctldev);
330 dev_err(pci->dev, "set gpio%d mux failed\n", offset);
335 if (!pci->pin_cfg[offset].dir_msk)
338 ret = regmap_update_bits(pci->rk808->regmap,
339 pci->pin_cfg[offset].reg,
340 pci->pin_cfg[offset].dir_msk,
341 input ? 0 : pci->pin_cfg[offset].dir_msk);
343 dev_err(pci->dev, "set gpio%d direction failed\n", offset);
361 struct rk805_pctrl_info *pci = pinctrl_dev_get_drvdata(pctldev);
367 arg = rk805_gpio_get(&pci->gpio_chip, pin);
370 dev_err(pci->dev, "Properties not supported\n");
383 struct rk805_pctrl_info *pci = pinctrl_dev_get_drvdata(pctldev);
393 rk805_gpio_set(&pci->gpio_chip, pin, arg);
397 dev_err(pci->dev, "Properties not supported\n");
420 struct rk805_pctrl_info *pci;
423 pci = devm_kzalloc(&pdev->dev, sizeof(*pci), GFP_KERNEL);
424 if (!pci)
427 pci->dev = &pdev->dev;
428 pci->dev->of_node = pdev->dev.parent->of_node;
429 pci->rk808 = dev_get_drvdata(pdev->dev.parent);
431 pci->pinctrl_desc = rk805_pinctrl_desc;
432 pci->gpio_chip = rk805_gpio_chip;
433 pci->gpio_chip.parent = &pdev->dev;
434 pci->gpio_chip.of_node = pdev->dev.parent->of_node;
436 platform_set_drvdata(pdev, pci);
438 switch (pci->rk808->variant) {
440 pci->pins = rk805_pins_desc;
441 pci->num_pins = ARRAY_SIZE(rk805_pins_desc);
442 pci->functions = rk805_pin_functions;
443 pci->num_functions = ARRAY_SIZE(rk805_pin_functions);
444 pci->groups = rk805_pin_groups;
445 pci->num_pin_groups = ARRAY_SIZE(rk805_pin_groups);
446 pci->pinctrl_desc.pins = rk805_pins_desc;
447 pci->pinctrl_desc.npins = ARRAY_SIZE(rk805_pins_desc);
448 pci->pin_cfg = rk805_gpio_cfgs;
449 pci->gpio_chip.ngpio = ARRAY_SIZE(rk805_gpio_cfgs);
453 pci->rk808->variant);
458 ret = devm_gpiochip_add_data(&pdev->dev, &pci->gpio_chip, pci);
465 pci->pctl = devm_pinctrl_register(&pdev->dev, &pci->pinctrl_desc, pci);
466 if (IS_ERR(pci->pctl)) {
468 return PTR_ERR(pci->pctl);
472 ret = gpiochip_add_pin_range(&pci->gpio_chip, dev_name(&pdev->dev),
473 0, 0, pci->gpio_chip.ngpio);