Lines Matching refs:drvdata
192 static int samsung_dt_subnode_to_map(struct samsung_pinctrl_drv_data *drvdata, in samsung_dt_subnode_to_map() argument
272 struct samsung_pinctrl_drv_data *drvdata; in samsung_dt_node_to_map() local
277 drvdata = pinctrl_dev_get_drvdata(pctldev); in samsung_dt_node_to_map()
284 return samsung_dt_subnode_to_map(drvdata, pctldev->dev, in samsung_dt_node_to_map()
290 ret = samsung_dt_subnode_to_map(drvdata, pctldev->dev, np, map, in samsung_dt_node_to_map()
313 struct samsung_pinctrl_drv_data *drvdata; in samsung_get_functions_count() local
315 drvdata = pinctrl_dev_get_drvdata(pctldev); in samsung_get_functions_count()
316 return drvdata->nr_functions; in samsung_get_functions_count()
323 struct samsung_pinctrl_drv_data *drvdata; in samsung_pinmux_get_fname() local
325 drvdata = pinctrl_dev_get_drvdata(pctldev); in samsung_pinmux_get_fname()
326 return drvdata->pmx_functions[selector].name; in samsung_pinmux_get_fname()
334 struct samsung_pinctrl_drv_data *drvdata; in samsung_pinmux_get_groups() local
336 drvdata = pinctrl_dev_get_drvdata(pctldev); in samsung_pinmux_get_groups()
337 *groups = drvdata->pmx_functions[selector].groups; in samsung_pinmux_get_groups()
338 *num_groups = drvdata->pmx_functions[selector].num_groups; in samsung_pinmux_get_groups()
346 static void pin_to_reg_bank(struct samsung_pinctrl_drv_data *drvdata, in pin_to_reg_bank() argument
352 b = drvdata->pin_banks; in pin_to_reg_bank()
358 *reg = drvdata->virt_base + b->pctl_offset; in pin_to_reg_bank()
368 struct samsung_pinctrl_drv_data *drvdata; in samsung_pinmux_setup() local
377 drvdata = pinctrl_dev_get_drvdata(pctldev); in samsung_pinmux_setup()
378 func = &drvdata->pmx_functions[selector]; in samsung_pinmux_setup()
379 grp = &drvdata->pin_groups[group]; in samsung_pinmux_setup()
381 pin_to_reg_bank(drvdata, grp->pins[0] - drvdata->pin_base, in samsung_pinmux_setup()
424 struct samsung_pinctrl_drv_data *drvdata; in samsung_pinconf_rw() local
433 drvdata = pinctrl_dev_get_drvdata(pctldev); in samsung_pinconf_rw()
434 pin_to_reg_bank(drvdata, pin - drvdata->pin_base, ®_base, in samsung_pinconf_rw()
493 struct samsung_pinctrl_drv_data *drvdata; in samsung_pinconf_group_set() local
497 drvdata = pinctrl_dev_get_drvdata(pctldev); in samsung_pinconf_group_set()
498 pins = drvdata->pin_groups[group].pins; in samsung_pinconf_group_set()
500 for (cnt = 0; cnt < drvdata->pin_groups[group].num_pins; cnt++) in samsung_pinconf_group_set()
510 struct samsung_pinctrl_drv_data *drvdata; in samsung_pinconf_group_get() local
513 drvdata = pinctrl_dev_get_drvdata(pctldev); in samsung_pinconf_group_get()
514 pins = drvdata->pin_groups[group].pins; in samsung_pinconf_group_get()
536 reg = bank->drvdata->virt_base + bank->pctl_offset; in samsung_gpio_set()
557 reg = bank->drvdata->virt_base + bank->pctl_offset; in samsung_gpio_get()
574 struct samsung_pinctrl_drv_data *drvdata; in samsung_gpio_set_direction() local
581 drvdata = bank->drvdata; in samsung_gpio_set_direction()
583 reg = drvdata->virt_base + bank->pctl_offset + in samsung_gpio_set_direction()
640 struct samsung_pinctrl_drv_data *drvdata, in samsung_pinctrl_create_groups() argument
643 struct pinctrl_desc *ctrldesc = &drvdata->pctl; in samsung_pinctrl_create_groups()
666 struct samsung_pinctrl_drv_data *drvdata, in samsung_pinctrl_create_function() argument
710 struct samsung_pinctrl_drv_data *drvdata, in samsung_pinctrl_create_functions() argument
759 ret = samsung_pinctrl_create_function(dev, drvdata, in samsung_pinctrl_create_functions()
771 ret = samsung_pinctrl_create_function(dev, drvdata, in samsung_pinctrl_create_functions()
793 struct samsung_pinctrl_drv_data *drvdata) in samsung_pinctrl_parse_dt() argument
800 groups = samsung_pinctrl_create_groups(dev, drvdata, &grp_cnt); in samsung_pinctrl_parse_dt()
806 functions = samsung_pinctrl_create_functions(dev, drvdata, &func_cnt); in samsung_pinctrl_parse_dt()
812 drvdata->pin_groups = groups; in samsung_pinctrl_parse_dt()
813 drvdata->nr_groups = grp_cnt; in samsung_pinctrl_parse_dt()
814 drvdata->pmx_functions = functions; in samsung_pinctrl_parse_dt()
815 drvdata->nr_functions = func_cnt; in samsung_pinctrl_parse_dt()
822 struct samsung_pinctrl_drv_data *drvdata) in samsung_pinctrl_register() argument
824 struct pinctrl_desc *ctrldesc = &drvdata->pctl; in samsung_pinctrl_register()
837 drvdata->nr_pins, GFP_KERNEL); in samsung_pinctrl_register()
843 ctrldesc->npins = drvdata->nr_pins; in samsung_pinctrl_register()
847 pdesc->number = pin + drvdata->pin_base; in samsung_pinctrl_register()
854 drvdata->nr_pins, GFP_KERNEL); in samsung_pinctrl_register()
861 for (bank = 0; bank < drvdata->nr_banks; bank++) { in samsung_pinctrl_register()
862 pin_bank = &drvdata->pin_banks[bank]; in samsung_pinctrl_register()
871 ret = samsung_pinctrl_parse_dt(pdev, drvdata); in samsung_pinctrl_register()
875 drvdata->pctl_dev = pinctrl_register(ctrldesc, &pdev->dev, drvdata); in samsung_pinctrl_register()
876 if (!drvdata->pctl_dev) { in samsung_pinctrl_register()
881 for (bank = 0; bank < drvdata->nr_banks; ++bank) { in samsung_pinctrl_register()
882 pin_bank = &drvdata->pin_banks[bank]; in samsung_pinctrl_register()
885 pin_bank->grange.pin_base = drvdata->pin_base in samsung_pinctrl_register()
890 pinctrl_add_gpio_range(drvdata->pctl_dev, &pin_bank->grange); in samsung_pinctrl_register()
919 struct samsung_pinctrl_drv_data *drvdata) in samsung_gpiolib_register() argument
921 struct samsung_pin_bank *bank = drvdata->pin_banks; in samsung_gpiolib_register()
926 for (i = 0; i < drvdata->nr_banks; ++i, ++bank) { in samsung_gpiolib_register()
930 gc->base = drvdata->pin_base + bank->pin_base; in samsung_gpiolib_register()
954 struct samsung_pinctrl_drv_data *drvdata) in samsung_gpiolib_unregister() argument
956 struct samsung_pin_bank *bank = drvdata->pin_banks; in samsung_gpiolib_unregister()
959 for (i = 0; i < drvdata->nr_banks; ++i, ++bank) in samsung_gpiolib_unregister()
1010 bank->drvdata = d; in samsung_pinctrl_get_soc_data()
1035 struct samsung_pinctrl_drv_data *drvdata; in samsung_pinctrl_probe() local
1046 drvdata = devm_kzalloc(dev, sizeof(*drvdata), GFP_KERNEL); in samsung_pinctrl_probe()
1047 if (!drvdata) { in samsung_pinctrl_probe()
1053 ctrl = samsung_pinctrl_get_soc_data(drvdata, pdev); in samsung_pinctrl_probe()
1058 drvdata->dev = dev; in samsung_pinctrl_probe()
1061 drvdata->virt_base = devm_ioremap_resource(&pdev->dev, res); in samsung_pinctrl_probe()
1062 if (IS_ERR(drvdata->virt_base)) in samsung_pinctrl_probe()
1063 return PTR_ERR(drvdata->virt_base); in samsung_pinctrl_probe()
1067 drvdata->irq = res->start; in samsung_pinctrl_probe()
1069 ret = samsung_gpiolib_register(pdev, drvdata); in samsung_pinctrl_probe()
1073 ret = samsung_pinctrl_register(pdev, drvdata); in samsung_pinctrl_probe()
1075 samsung_gpiolib_unregister(pdev, drvdata); in samsung_pinctrl_probe()
1080 ctrl->eint_gpio_init(drvdata); in samsung_pinctrl_probe()
1082 ctrl->eint_wkup_init(drvdata); in samsung_pinctrl_probe()
1084 platform_set_drvdata(pdev, drvdata); in samsung_pinctrl_probe()
1087 list_add_tail(&drvdata->node, &drvdata_list); in samsung_pinctrl_probe()
1100 struct samsung_pinctrl_drv_data *drvdata) in samsung_pinctrl_suspend_dev() argument
1102 void __iomem *virt_base = drvdata->virt_base; in samsung_pinctrl_suspend_dev()
1105 for (i = 0; i < drvdata->nr_banks; i++) { in samsung_pinctrl_suspend_dev()
1106 struct samsung_pin_bank *bank = &drvdata->pin_banks[i]; in samsung_pinctrl_suspend_dev()
1134 if (drvdata->suspend) in samsung_pinctrl_suspend_dev()
1135 drvdata->suspend(drvdata); in samsung_pinctrl_suspend_dev()
1146 static void samsung_pinctrl_resume_dev(struct samsung_pinctrl_drv_data *drvdata) in samsung_pinctrl_resume_dev() argument
1148 void __iomem *virt_base = drvdata->virt_base; in samsung_pinctrl_resume_dev()
1151 if (drvdata->resume) in samsung_pinctrl_resume_dev()
1152 drvdata->resume(drvdata); in samsung_pinctrl_resume_dev()
1154 for (i = 0; i < drvdata->nr_banks; i++) { in samsung_pinctrl_resume_dev()
1155 struct samsung_pin_bank *bank = &drvdata->pin_banks[i]; in samsung_pinctrl_resume_dev()
1193 struct samsung_pinctrl_drv_data *drvdata; in samsung_pinctrl_suspend() local
1195 list_for_each_entry(drvdata, &drvdata_list, node) { in samsung_pinctrl_suspend()
1196 samsung_pinctrl_suspend_dev(drvdata); in samsung_pinctrl_suspend()
1209 struct samsung_pinctrl_drv_data *drvdata; in samsung_pinctrl_resume() local
1211 list_for_each_entry_reverse(drvdata, &drvdata_list, node) { in samsung_pinctrl_resume()
1212 samsung_pinctrl_resume_dev(drvdata); in samsung_pinctrl_resume()