[PATCH 1/4 v4] drivers: create a pin control subsystem
Barry Song
21cnbao at gmail.com
Wed Aug 24 02:24:32 EDT 2011
> +int foo_list(struct pinmux_dev *pmxdev, unsigned selector)
pinctrl_dev?
> +{
> + if (selector >= ARRAY_SIZE(myfuncs))
> + return -EINVAL;
> + return 0;
> +}
> +
> +const char *foo_get_fname(struct pinmux_dev *pmxdev, unsigned selector)
pinctrl_dev?
> +{
> + if (selector >= ARRAY_SIZE(myfuncs))
> + return NULL;
> + return myfuncs[selector].name;
> +}
> +
> +static int foo_get_pins(struct pinmux_dev *pmxdev, unsigned selector,
> + unsigned ** const pins, unsigned * const num_pins)
pinctrl_dev?
> +{
> + if (selector >= ARRAY_SIZE(myfuncs))
> + return -EINVAL;
> + *pins = myfuncs[selector].pins;
> + *num_pins = myfuncs[selector].num_pins;
> + return 0;
> +}
> +
> +int foo_enable(struct pinmux_dev *pmxdev, unsigned selector)
> +{
> + if (selector < ARRAY_SIZE(myfuncs))
> + write((read(MUX)|(1<<selector)), MUX)
> + return 0;
> + }
> + return -EINVAL;
> +}
> +
> +int foo_disable(struct pinmux_dev *pmxdev, unsigned selector)
pinctrl_dev?
-barry
More information about the linux-arm-kernel
mailing list