Lines Matching refs:rza1_pctl
544 struct rza1_pinctrl *rza1_pctl) in rza1_pinmux_get_flags() argument
547 const struct rza1_pinmux_conf *pmx_conf = rza1_pctl->data; in rza1_pinmux_get_flags()
676 static int rza1_pin_mux_single(struct rza1_pinctrl *rza1_pctl, in rza1_pin_mux_single() argument
679 struct rza1_port *port = &rza1_pctl->ports[mux_conf->port]; in rza1_pin_mux_single()
689 rza1_pctl); in rza1_pin_mux_single()
888 static int rza1_parse_pinmux_node(struct rza1_pinctrl *rza1_pctl, in rza1_parse_pinmux_node() argument
893 struct pinctrl_dev *pctldev = rza1_pctl->pctl; in rza1_parse_pinmux_node()
905 dev_dbg(rza1_pctl->dev, "Missing %s property\n", prop_name); in rza1_parse_pinmux_node()
917 dev_err(rza1_pctl->dev, in rza1_parse_pinmux_node()
960 dev_err(rza1_pctl->dev, in rza1_parse_pinmux_node()
987 struct rza1_pinctrl *rza1_pctl = pinctrl_dev_get_drvdata(pctldev); in rza1_dt_node_to_map() local
998 dev_err(rza1_pctl->dev, "invalid pinmux node structure\n"); in rza1_dt_node_to_map()
1008 mux_confs = devm_kcalloc(rza1_pctl->dev, npins, sizeof(*mux_confs), in rza1_dt_node_to_map()
1010 grpins = devm_kcalloc(rza1_pctl->dev, npins, sizeof(*grpins), in rza1_dt_node_to_map()
1012 fngrps = devm_kzalloc(rza1_pctl->dev, sizeof(*fngrps), GFP_KERNEL); in rza1_dt_node_to_map()
1025 ret = rza1_parse_pinmux_node(rza1_pctl, np, mux_conf, grpin); in rza1_dt_node_to_map()
1028 ret = rza1_parse_pinmux_node(rza1_pctl, child, mux_conf, in rza1_dt_node_to_map()
1045 mutex_lock(&rza1_pctl->mutex); in rza1_dt_node_to_map()
1049 mutex_unlock(&rza1_pctl->mutex); in rza1_dt_node_to_map()
1060 dev_info(rza1_pctl->dev, "Parsed function and group %s with %d pins\n", in rza1_dt_node_to_map()
1075 mutex_unlock(&rza1_pctl->mutex); in rza1_dt_node_to_map()
1084 mutex_unlock(&rza1_pctl->mutex); in rza1_dt_node_to_map()
1086 dev_info(rza1_pctl->dev, "Unable to parse function and group %s\n", in rza1_dt_node_to_map()
1120 struct rza1_pinctrl *rza1_pctl = pinctrl_dev_get_drvdata(pctldev); in rza1_set_mux() local
1138 ret = rza1_pin_mux_single(rza1_pctl, &mux_confs[i]); in rza1_set_mux()
1184 static int rza1_parse_gpiochip(struct rza1_pinctrl *rza1_pctl, in rza1_parse_gpiochip() argument
1197 dev_err(rza1_pctl->dev, "Unable to parse %s list property\n", in rza1_parse_gpiochip()
1209 dev_err(rza1_pctl->dev, in rza1_parse_gpiochip()
1216 chip->label = devm_kasprintf(rza1_pctl->dev, GFP_KERNEL, "%pOFn", in rza1_parse_gpiochip()
1223 chip->parent = rza1_pctl->dev; in rza1_parse_gpiochip()
1231 ret = devm_gpiochip_add_data(rza1_pctl->dev, chip, in rza1_parse_gpiochip()
1232 &rza1_pctl->ports[gpioport]); in rza1_parse_gpiochip()
1236 pinctrl_add_gpio_range(rza1_pctl->pctl, range); in rza1_parse_gpiochip()
1238 dev_info(rza1_pctl->dev, "Parsed gpiochip %s with %d pins\n", in rza1_parse_gpiochip()
1249 static int rza1_gpio_register(struct rza1_pinctrl *rza1_pctl) in rza1_gpio_register() argument
1251 struct device_node *np = rza1_pctl->dev->of_node; in rza1_gpio_register()
1261 dev_dbg(rza1_pctl->dev, "No gpiochip registered\n"); in rza1_gpio_register()
1265 gpio_chips = devm_kcalloc(rza1_pctl->dev, ngpiochips, in rza1_gpio_register()
1267 gpio_ranges = devm_kcalloc(rza1_pctl->dev, ngpiochips, in rza1_gpio_register()
1277 ret = rza1_parse_gpiochip(rza1_pctl, child, &gpio_chips[i], in rza1_gpio_register()
1287 dev_info(rza1_pctl->dev, "Registered %u gpio controllers\n", i); in rza1_gpio_register()
1298 static int rza1_pinctrl_register(struct rza1_pinctrl *rza1_pctl) in rza1_pinctrl_register() argument
1305 pins = devm_kcalloc(rza1_pctl->dev, RZA1_NPINS, sizeof(*pins), in rza1_pinctrl_register()
1307 ports = devm_kcalloc(rza1_pctl->dev, RZA1_NPORTS, sizeof(*ports), in rza1_pinctrl_register()
1312 rza1_pctl->pins = pins; in rza1_pinctrl_register()
1313 rza1_pctl->desc.pins = pins; in rza1_pinctrl_register()
1314 rza1_pctl->desc.npins = RZA1_NPINS; in rza1_pinctrl_register()
1315 rza1_pctl->ports = ports; in rza1_pinctrl_register()
1322 pins[i].name = devm_kasprintf(rza1_pctl->dev, GFP_KERNEL, in rza1_pinctrl_register()
1335 ports[port_id].base = rza1_pctl->base; in rza1_pinctrl_register()
1341 ret = devm_pinctrl_register_and_init(rza1_pctl->dev, &rza1_pctl->desc, in rza1_pinctrl_register()
1342 rza1_pctl, &rza1_pctl->pctl); in rza1_pinctrl_register()
1344 dev_err(rza1_pctl->dev, in rza1_pinctrl_register()
1349 ret = pinctrl_enable(rza1_pctl->pctl); in rza1_pinctrl_register()
1351 dev_err(rza1_pctl->dev, in rza1_pinctrl_register()
1356 ret = rza1_gpio_register(rza1_pctl); in rza1_pinctrl_register()
1358 dev_err(rza1_pctl->dev, "RZ/A1 GPIO registration failed\n"); in rza1_pinctrl_register()
1367 struct rza1_pinctrl *rza1_pctl; in rza1_pinctrl_probe() local
1370 rza1_pctl = devm_kzalloc(&pdev->dev, sizeof(*rza1_pctl), GFP_KERNEL); in rza1_pinctrl_probe()
1371 if (!rza1_pctl) in rza1_pinctrl_probe()
1374 rza1_pctl->dev = &pdev->dev; in rza1_pinctrl_probe()
1376 rza1_pctl->base = devm_platform_ioremap_resource(pdev, 0); in rza1_pinctrl_probe()
1377 if (IS_ERR(rza1_pctl->base)) in rza1_pinctrl_probe()
1378 return PTR_ERR(rza1_pctl->base); in rza1_pinctrl_probe()
1380 mutex_init(&rza1_pctl->mutex); in rza1_pinctrl_probe()
1382 platform_set_drvdata(pdev, rza1_pctl); in rza1_pinctrl_probe()
1384 rza1_pctl->desc.name = DRIVER_NAME; in rza1_pinctrl_probe()
1385 rza1_pctl->desc.pctlops = &rza1_pinctrl_ops; in rza1_pinctrl_probe()
1386 rza1_pctl->desc.pmxops = &rza1_pinmux_ops; in rza1_pinctrl_probe()
1387 rza1_pctl->desc.owner = THIS_MODULE; in rza1_pinctrl_probe()
1388 rza1_pctl->data = of_device_get_match_data(&pdev->dev); in rza1_pinctrl_probe()
1390 ret = rza1_pinctrl_register(rza1_pctl); in rza1_pinctrl_probe()