On 23/10/2022 21:42, Yinbo Zhu wrote: > The loongson2 SoC has a few pins that can be used as GPIOs or take > multiple other functions. Add a driver for the pinmuxing. > > There is currently no support for GPIO pin pull-up and pull-down. Thank you for your patch. There is something to discuss/improve. > +static const struct pinmux_ops loongson2_pmx_ops = { > + .set_mux = loongson2_pmx_set_mux, > + .get_functions_count = loongson2_pmx_get_funcs_count, > + .get_function_name = loongson2_pmx_get_func_name, > + .get_function_groups = loongson2_pmx_get_groups, > +}; > + > +static int loongson2_pinctrl_probe(struct platform_device *pdev) > +{ > + struct device *dev = &pdev->dev; > + struct loongson2_pinctrl *pctrl; > + struct resource *res; > + > + pctrl = devm_kzalloc(dev, sizeof(*pctrl), GFP_KERNEL); > + if (!pctrl) > + return -ENOMEM; > + > + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); > + pctrl->reg_base = devm_ioremap_resource(dev, res); This is still not fixed. > + if (IS_ERR(pctrl->reg_base)) > + return dev_err_probe(pctrl->dev, PTR_ERR(pctrl->reg_base), > + "unable to map I/O memory"); Best regards, Krzysztof