pinctrl: qcom: qdf2xxx: add names to the gpios
authorTimur Tabi <timur@codeaurora.org>
Mon, 6 Mar 2017 23:32:02 +0000 (17:32 -0600)
committerLinus Walleij <linus.walleij@linaro.org>
Thu, 16 Mar 2017 15:39:04 +0000 (16:39 +0100)
The sysfs and debugfs entries for pin control drivers work better when
the individual pins are given real names, even if they are all just
"gpio0", "gpio1", etc.

Signed-off-by: Timur Tabi <timur@codeaurora.org>
Acked-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/pinctrl/qcom/pinctrl-qdf2xxx.c

index f448534edf467d31c6fb3cc3a59adcccf8eea797..bb3ce5c3e18b782988f175687a2f5a9120ee1da7 100644 (file)
@@ -35,10 +35,14 @@ static struct msm_pinctrl_soc_data qdf2xxx_pinctrl;
 /* A reasonable limit to the number of GPIOS */
 #define MAX_GPIOS      256
 
+/* maximum size of each gpio name (enough room for "gpioXXX" + null) */
+#define NAME_SIZE      8
+
 static int qdf2xxx_pinctrl_probe(struct platform_device *pdev)
 {
        struct pinctrl_pin_desc *pins;
        struct msm_pingroup *groups;
+       char (*names)[NAME_SIZE];
        unsigned int i;
        u32 num_gpios;
        int ret;
@@ -59,15 +63,21 @@ static int qdf2xxx_pinctrl_probe(struct platform_device *pdev)
                sizeof(struct pinctrl_pin_desc), GFP_KERNEL);
        groups = devm_kcalloc(&pdev->dev, num_gpios,
                sizeof(struct msm_pingroup), GFP_KERNEL);
+       names = devm_kcalloc(&pdev->dev, num_gpios, NAME_SIZE, GFP_KERNEL);
 
-       if (!pins || !groups)
+       if (!pins || !groups || !names)
                return -ENOMEM;
 
        for (i = 0; i < num_gpios; i++) {
+               snprintf(names[i], NAME_SIZE, "gpio%u", i);
+
                pins[i].number = i;
+               pins[i].name = names[i];
 
-               groups[i].npins = 1,
+               groups[i].npins = 1;
+               groups[i].name = names[i];
                groups[i].pins = &pins[i].number;
+
                groups[i].ctl_reg = 0x10000 * i;
                groups[i].io_reg = 0x04 + 0x10000 * i;
                groups[i].intr_cfg_reg = 0x08 + 0x10000 * i;