Lines Matching +full:rst +full:- +full:pins
2 * linux/drivers/pinctrl/pinmux-falcon.c
3 * based on linux/drivers/pinctrl/pinmux-pxa910.c
25 #include "pinctrl-lantiq.h"
50 #define PINS 32 macro
51 #define PORT(x) (x / PINS)
52 #define PORT_PIN(x) (x % PINS)
70 .pins = p, \
93 static struct pinctrl_pin_desc falcon_pads[PORTS * PINS];
98 int base = bank * PINS; in lantiq_load_pin_desc()
114 MFP_FALCON(GPIO0, RST, GPIO, NONE, NONE),
120 MFP_FALCON(GPIO6, RST, GPIO, NONE, NONE),
189 GRP_MUX("por", RST, pins_por),
193 GRP_MUX("hrst", RST, pins_hrst),
219 {"rst", ARRAY_AND_SIZE(ltq_rst_grps)},
234 /* --------- pinconf related code --------- */
238 return -ENOTSUPP; in falcon_pinconf_group_get()
245 return -ENOTSUPP; in falcon_pinconf_group_set()
253 void __iomem *mem = info->membase[PORT(pin)]; in falcon_pinconf_get()
277 return -ENOTSUPP; in falcon_pinconf_get()
290 void __iomem *mem = info->membase[PORT(pin)]; in falcon_pinconf_set()
317 return -ENOTSUPP; in falcon_pinconf_set()
322 return -ENOTSUPP; in falcon_pinconf_set()
337 seq_printf(s, " (port %d) mux %d -- ", port, in falcon_pinconf_dbg_show()
338 pad_r32(info->membase[port], LTQ_PADC_MUX(PORT_PIN(offset)))); in falcon_pinconf_dbg_show()
347 seq_printf(s, "drive-current %d ", in falcon_pinconf_dbg_show()
352 seq_printf(s, "slew-rate %d ", in falcon_pinconf_dbg_show()
357 if (desc->gpio_owner) in falcon_pinconf_dbg_show()
358 seq_printf(s, " owner: %s", desc->gpio_owner); in falcon_pinconf_dbg_show()
380 .pins = falcon_pads,
388 int port = PORT(info->mfp[mfp].pin); in falcon_mux_apply()
390 if ((port >= PORTS) || (!info->membase[port])) in falcon_mux_apply()
391 return -ENODEV; in falcon_mux_apply()
393 pad_w32(info->membase[port], mux, in falcon_mux_apply()
394 LTQ_PADC_MUX(PORT_PIN(info->mfp[mfp].pin))); in falcon_mux_apply()
400 {"lantiq,drive-current", LTQ_PINCONF_PARAM_DRIVE_CURRENT},
401 {"lantiq,slew-rate", LTQ_PINCONF_PARAM_SLEW_RATE},
414 /* --------- register the pinctrl layer --------- */
421 return -EINVAL; in pinctrl_falcon_get_range_size()
440 for_each_compatible_node(np, NULL, "lantiq,pad-falcon") { in pinctrl_falcon_probe()
445 int pins; in pinctrl_falcon_probe() local
451 dev_err(&pdev->dev, "failed to find pad pdev\n"); in pinctrl_falcon_probe()
458 falcon_info.clk[*bank] = clk_get(&ppdev->dev, NULL); in pinctrl_falcon_probe()
460 dev_err(&ppdev->dev, "failed to get clock\n"); in pinctrl_falcon_probe()
463 falcon_info.membase[*bank] = devm_ioremap_resource(&pdev->dev, in pinctrl_falcon_probe()
470 pins = fls(avail); in pinctrl_falcon_probe()
471 lantiq_load_pin_desc(&falcon_pads[pad_count], *bank, pins); in pinctrl_falcon_probe()
472 pad_count += pins; in pinctrl_falcon_probe()
474 dev_dbg(&pdev->dev, "found %s with %d pads\n", in pinctrl_falcon_probe()
475 res.name, pins); in pinctrl_falcon_probe()
477 dev_dbg(&pdev->dev, "found a total of %d pads\n", pad_count); in pinctrl_falcon_probe()
478 falcon_pctrl_desc.name = dev_name(&pdev->dev); in pinctrl_falcon_probe()
490 dev_info(&pdev->dev, "Init done\n"); in pinctrl_falcon_probe()
495 { .compatible = "lantiq,pinctrl-falcon" },
503 .name = "pinctrl-falcon",