Lines Matching refs:mp
440 static const struct mrfld_family *mrfld_get_family(struct mrfld_pinctrl *mp, in mrfld_get_family() argument
446 for (i = 0; i < mp->nfamilies; i++) { in mrfld_get_family()
447 family = &mp->families[i]; in mrfld_get_family()
453 dev_warn(mp->dev, "failed to find family for pin %u\n", pin); in mrfld_get_family()
457 static bool mrfld_buf_available(struct mrfld_pinctrl *mp, unsigned int pin) in mrfld_buf_available() argument
461 family = mrfld_get_family(mp, pin); in mrfld_buf_available()
468 static void __iomem *mrfld_get_bufcfg(struct mrfld_pinctrl *mp, unsigned int pin) in mrfld_get_bufcfg() argument
473 family = mrfld_get_family(mp, pin); in mrfld_get_bufcfg()
483 struct mrfld_pinctrl *mp = pinctrl_dev_get_drvdata(pctldev); in mrfld_get_groups_count() local
485 return mp->ngroups; in mrfld_get_groups_count()
491 struct mrfld_pinctrl *mp = pinctrl_dev_get_drvdata(pctldev); in mrfld_get_group_name() local
493 return mp->groups[group].name; in mrfld_get_group_name()
499 struct mrfld_pinctrl *mp = pinctrl_dev_get_drvdata(pctldev); in mrfld_get_group_pins() local
501 *pins = mp->groups[group].pins; in mrfld_get_group_pins()
502 *npins = mp->groups[group].npins; in mrfld_get_group_pins()
509 struct mrfld_pinctrl *mp = pinctrl_dev_get_drvdata(pctldev); in mrfld_pin_dbg_show() local
513 if (!mrfld_buf_available(mp, pin)) { in mrfld_pin_dbg_show()
518 bufcfg = mrfld_get_bufcfg(mp, pin); in mrfld_pin_dbg_show()
539 struct mrfld_pinctrl *mp = pinctrl_dev_get_drvdata(pctldev); in mrfld_get_functions_count() local
541 return mp->nfunctions; in mrfld_get_functions_count()
547 struct mrfld_pinctrl *mp = pinctrl_dev_get_drvdata(pctldev); in mrfld_get_function_name() local
549 return mp->functions[function].name; in mrfld_get_function_name()
557 struct mrfld_pinctrl *mp = pinctrl_dev_get_drvdata(pctldev); in mrfld_get_function_groups() local
559 *groups = mp->functions[function].groups; in mrfld_get_function_groups()
560 *ngroups = mp->functions[function].ngroups; in mrfld_get_function_groups()
564 static void mrfld_update_bufcfg(struct mrfld_pinctrl *mp, unsigned int pin, in mrfld_update_bufcfg() argument
570 bufcfg = mrfld_get_bufcfg(mp, pin); in mrfld_update_bufcfg()
583 struct mrfld_pinctrl *mp = pinctrl_dev_get_drvdata(pctldev); in mrfld_pinmux_set_mux() local
584 const struct intel_pingroup *grp = &mp->groups[group]; in mrfld_pinmux_set_mux()
595 if (!mrfld_buf_available(mp, grp->pins[i])) in mrfld_pinmux_set_mux()
600 raw_spin_lock_irqsave(&mp->lock, flags); in mrfld_pinmux_set_mux()
602 mrfld_update_bufcfg(mp, grp->pins[i], bits, mask); in mrfld_pinmux_set_mux()
603 raw_spin_unlock_irqrestore(&mp->lock, flags); in mrfld_pinmux_set_mux()
612 struct mrfld_pinctrl *mp = pinctrl_dev_get_drvdata(pctldev); in mrfld_gpio_request_enable() local
617 if (!mrfld_buf_available(mp, pin)) in mrfld_gpio_request_enable()
620 raw_spin_lock_irqsave(&mp->lock, flags); in mrfld_gpio_request_enable()
621 mrfld_update_bufcfg(mp, pin, bits, mask); in mrfld_gpio_request_enable()
622 raw_spin_unlock_irqrestore(&mp->lock, flags); in mrfld_gpio_request_enable()
638 struct mrfld_pinctrl *mp = pinctrl_dev_get_drvdata(pctldev); in mrfld_config_get() local
643 if (!mrfld_buf_available(mp, pin)) in mrfld_config_get()
646 value = readl(mrfld_get_bufcfg(mp, pin)); in mrfld_config_get()
717 static int mrfld_config_set_pin(struct mrfld_pinctrl *mp, unsigned int pin, in mrfld_config_set_pin() argument
783 raw_spin_lock_irqsave(&mp->lock, flags); in mrfld_config_set_pin()
784 mrfld_update_bufcfg(mp, pin, bits, mask); in mrfld_config_set_pin()
785 raw_spin_unlock_irqrestore(&mp->lock, flags); in mrfld_config_set_pin()
793 struct mrfld_pinctrl *mp = pinctrl_dev_get_drvdata(pctldev); in mrfld_config_set() local
797 if (!mrfld_buf_available(mp, pin)) in mrfld_config_set()
807 ret = mrfld_config_set_pin(mp, pin, configs[i]); in mrfld_config_set()
877 struct mrfld_pinctrl *mp; in mrfld_pinctrl_probe() local
883 mp = devm_kzalloc(&pdev->dev, sizeof(*mp), GFP_KERNEL); in mrfld_pinctrl_probe()
884 if (!mp) in mrfld_pinctrl_probe()
887 mp->dev = &pdev->dev; in mrfld_pinctrl_probe()
888 raw_spin_lock_init(&mp->lock); in mrfld_pinctrl_probe()
913 mp->families = families; in mrfld_pinctrl_probe()
914 mp->nfamilies = nfamilies; in mrfld_pinctrl_probe()
915 mp->functions = mrfld_functions; in mrfld_pinctrl_probe()
916 mp->nfunctions = ARRAY_SIZE(mrfld_functions); in mrfld_pinctrl_probe()
917 mp->groups = mrfld_groups; in mrfld_pinctrl_probe()
918 mp->ngroups = ARRAY_SIZE(mrfld_groups); in mrfld_pinctrl_probe()
919 mp->pctldesc = mrfld_pinctrl_desc; in mrfld_pinctrl_probe()
920 mp->pctldesc.name = dev_name(&pdev->dev); in mrfld_pinctrl_probe()
921 mp->pctldesc.pins = mrfld_pins; in mrfld_pinctrl_probe()
922 mp->pctldesc.npins = ARRAY_SIZE(mrfld_pins); in mrfld_pinctrl_probe()
924 mp->pctldev = devm_pinctrl_register(&pdev->dev, &mp->pctldesc, mp); in mrfld_pinctrl_probe()
925 if (IS_ERR(mp->pctldev)) { in mrfld_pinctrl_probe()
927 return PTR_ERR(mp->pctldev); in mrfld_pinctrl_probe()
930 platform_set_drvdata(pdev, mp); in mrfld_pinctrl_probe()