Lines Matching defs:pctl
174 static void sppctl_func_set(struct sppctl_pdata *pctl, u8 func, u8 val)
203 writel(reg, pctl->moon2_base + offset);
226 static void sppctl_gmx_set(struct sppctl_pdata *pctl, u8 reg_off, u8 bit_off, u8 bit_sz,
239 writel(reg, pctl->moon1_base + reg_off * 4);
523 static int sppctl_gpio_new(struct platform_device *pdev, struct sppctl_pdata *pctl)
532 pctl->spp_gchip = spp_gchip;
534 spp_gchip->gpioxt_base = pctl->gpioxt_base;
535 spp_gchip->first_base = pctl->first_base;
556 pctl->pctl_grange.npins = gchip->ngpio;
557 pctl->pctl_grange.name = gchip->label;
558 pctl->pctl_grange.gc = gchip;
570 struct sppctl_pdata *pctl = pinctrl_dev_get_drvdata(pctldev);
576 if (!sppctl_gpio_output_od_get(&pctl->spp_gchip->chip, pin))
582 if (!sppctl_first_get(&pctl->spp_gchip->chip, pin))
584 if (!sppctl_master_get(&pctl->spp_gchip->chip, pin))
586 if (sppctl_gpio_get_direction(&pctl->spp_gchip->chip, pin))
588 arg = sppctl_gpio_get(&pctl->spp_gchip->chip, pin);
602 struct sppctl_pdata *pctl = pinctrl_dev_get_drvdata(pctldev);
607 sppctl_first_master_set(&pctl->spp_gchip->chip, pin, mux_f_gpio, mux_m_iop);
613 sppctl_gpio_direction_output(&pctl->spp_gchip->chip, pin, 0);
615 sppctl_gpio_direction_output(&pctl->spp_gchip->chip, pin, 1);
617 sppctl_gpio_input_inv_set(&pctl->spp_gchip->chip, pin);
619 sppctl_gpio_output_inv_set(&pctl->spp_gchip->chip, pin);
621 sppctl_gpio_output_od_set(&pctl->spp_gchip->chip, pin, 1);
647 struct sppctl_pdata *pctl = pinctrl_dev_get_drvdata(pctldev);
663 for (i = 0; i < pctl->unq_grps_sz; i++)
664 if (pctl->g2fp_maps[i].f_idx == selector)
666 *groups = &pctl->unq_grps[i];
702 struct sppctl_pdata *pctl = pinctrl_dev_get_drvdata(pctldev);
703 struct grp2fp_map g2fpm = pctl->g2fp_maps[group_selector];
708 sppctl_first_master_set(&pctl->spp_gchip->chip, group_selector,
710 sppctl_func_set(pctl, func_selector, sppctl_fully_pinmux_conv(group_selector));
715 sppctl_first_master_set(&pctl->spp_gchip->chip,
718 sppctl_gmx_set(pctl, f->roff, f->boff, f->blen, f->grps[g2fpm.g_idx].gval);
733 struct sppctl_pdata *pctl = pinctrl_dev_get_drvdata(pctldev);
736 g_f = sppctl_first_get(&pctl->spp_gchip->chip, offset);
737 g_m = sppctl_master_get(&pctl->spp_gchip->chip, offset);
741 sppctl_first_master_set(&pctl->spp_gchip->chip, offset, mux_f_gpio, mux_m_gpio);
756 struct sppctl_pdata *pctl = pinctrl_dev_get_drvdata(pctldev);
758 return pctl->unq_grps_sz;
763 struct sppctl_pdata *pctl = pinctrl_dev_get_drvdata(pctldev);
765 return pctl->unq_grps[selector];
771 struct sppctl_pdata *pctl = pinctrl_dev_get_drvdata(pctldev);
772 struct grp2fp_map g2fpm = pctl->g2fp_maps[selector];
802 struct sppctl_pdata *pctl = pinctrl_dev_get_drvdata(pctldev);
806 first = sppctl_first_get(&pctl->spp_gchip->chip, offset);
807 master = sppctl_master_get(&pctl->spp_gchip->chip, offset);
822 struct sppctl_pdata *pctl = pinctrl_dev_get_drvdata(pctldev);
950 sppctl_func_set(pctl, dt_fun, 0);
955 sppctl_gmx_set(pctl, f->roff, f->boff, f->blen, 0);
1111 { .compatible = "sunplus,sp7021-pctl" },