}
}
-static int spacemit_pctrl_check_power(struct pinctrl_dev *pctldev,
- struct device_node *dn,
- struct spacemit_pin_mux_config *pinmuxs,
- int num_pins, const char *grpname)
-{
- struct spacemit_pinctrl *pctrl = pinctrl_dev_get_drvdata(pctldev);
- struct device *dev = pctrl->dev;
- enum spacemit_pin_io_type type;
- u32 power = 0, i;
-
- of_property_read_u32(dn, "power-source", &power);
-
- for (i = 0; i < num_pins; i++) {
- type = spacemit_to_pin_io_type(pinmuxs[i].pin);
-
- if (type != IO_TYPE_EXTERNAL)
- continue;
-
- switch (power) {
- case PIN_POWER_STATE_1V8:
- case PIN_POWER_STATE_3V3:
- break;
- default:
- dev_err(dev, "group %s has unsupported power\n",
- grpname);
- return -ENOTSUPP;
- }
- }
-
- return 0;
-}
-
static void spacemit_set_io_pwr_domain(struct spacemit_pinctrl *pctrl,
const struct spacemit_pin *spin,
const enum spacemit_pin_io_type type)
return dev_err_probe(dev, -ENODEV, "failed to get pin %d\n", pins[i]);
}
- ret = spacemit_pctrl_check_power(pctldev, child, pinmuxs,
- npins, grpname);
- if (ret < 0)
- return ret;
-
map[nmaps].type = PIN_MAP_TYPE_MUX_GROUP;
map[nmaps].data.mux.function = np->name;
map[nmaps].data.mux.group = grpname;