raw_spin_lock_irqsave(&pctl->lock, flags);
if(pin_reg->func_sel_reg != -1){
- pinctrl_set_reg(pctl->padctl_base + pin_reg->func_sel_reg,
+ pinctrl_set_reg(pctl->padctl_base + pin_reg->func_sel_reg,
pin_config->pinmux_func, pin_reg->func_sel_shift,
pin_reg->func_sel_mask);
}
if(pin_reg->syscon_reg != -1){
pinctrl_set_reg(pctl->padctl_base + pin_reg->syscon_reg,
- pin_config->syscon, PADCFG_PAD_GMAC_SYSCON_SHIFT,
+ pin_config->syscon, PADCFG_PAD_GMAC_SYSCON_SHIFT,
PADCFG_PAD_GMAC_SYSCON_MASK);
}
+
+ if(pin_reg->pad_sel_reg != -1){
+ pinctrl_set_reg(pctl->padctl_base + pin_reg->pad_sel_reg,
+ pin_config->padmux_func, pin_reg->pad_sel_shift,
+ pin_reg->pad_sel_mask);
+ }
raw_spin_unlock_irqrestore(&pctl->lock, flags);
return 0;
pin_data->pin_config.pinmux_func = be32_to_cpu(*list++);
}
+ list = of_get_property(np, "sf,padmux", &size);
+ if (list) {
+ pin_reg->pad_sel_reg = be32_to_cpu(*list++);
+ pin_reg->pad_sel_shift = be32_to_cpu(*list++);
+ pin_reg->pad_sel_mask = be32_to_cpu(*list++);
+ pin_data->pin_config.padmux_func = be32_to_cpu(*list++);
+ }
+
list = of_get_property(np, "sf,pin-syscon", &size);
if (list) {
pin_reg->syscon_reg = be32_to_cpu(*list++);