pinctrl: at91-pio4: Add configuration to userspace
[linux-2.6-block.git] / drivers / pinctrl / pinctrl-at91-pio4.c
index 82b921fd630d5261d8f912c8e294cc3a1652dbfc..a7383b9a309e79dc2263f123cba0fedd331521f6 100644 (file)
@@ -897,6 +897,25 @@ static int atmel_conf_pin_config_group_set(struct pinctrl_dev *pctldev,
        return 0;
 }
 
+static int atmel_conf_pin_config_set(struct pinctrl_dev *pctldev,
+                                    unsigned pin,
+                                    unsigned long *configs,
+                                    unsigned num_configs)
+{
+       struct atmel_group *grp = atmel_pctl_find_group_by_pin(pctldev, pin);
+
+       return atmel_conf_pin_config_group_set(pctldev, grp->pin, configs, num_configs);
+}
+
+static int atmel_conf_pin_config_get(struct pinctrl_dev *pctldev,
+                                    unsigned pin,
+                                    unsigned long *configs)
+{
+       struct atmel_group *grp = atmel_pctl_find_group_by_pin(pctldev, pin);
+
+       return atmel_conf_pin_config_group_get(pctldev, grp->pin, configs);
+}
+
 static void atmel_conf_pin_config_dbg_show(struct pinctrl_dev *pctldev,
                                           struct seq_file *s,
                                           unsigned int pin_id)
@@ -944,6 +963,8 @@ static const struct pinconf_ops atmel_confops = {
        .pin_config_group_get   = atmel_conf_pin_config_group_get,
        .pin_config_group_set   = atmel_conf_pin_config_group_set,
        .pin_config_dbg_show    = atmel_conf_pin_config_dbg_show,
+       .pin_config_set         = atmel_conf_pin_config_set,
+       .pin_config_get         = atmel_conf_pin_config_get,
 };
 
 static struct pinctrl_desc atmel_pinctrl_desc = {
@@ -1134,6 +1155,7 @@ static int atmel_pinctrl_probe(struct platform_device *pdev)
        atmel_pioctrl->gpio_chip->label = dev_name(dev);
        atmel_pioctrl->gpio_chip->parent = dev;
        atmel_pioctrl->gpio_chip->names = atmel_pioctrl->group_names;
+       atmel_pioctrl->gpio_chip->set_config = gpiochip_generic_config;
 
        atmel_pioctrl->pm_wakeup_sources = devm_kcalloc(dev,
                        atmel_pioctrl->nbanks,