0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011 #ifndef __DRIVERS_PINCTRL_IMX1_H
0012 #define __DRIVERS_PINCTRL_IMX1_H
0013
0014 struct platform_device;
0015
0016
0017
0018
0019
0020
0021
0022 struct imx1_pin {
0023 unsigned int pin_id;
0024 unsigned int mux_id;
0025 unsigned long config;
0026 };
0027
0028
0029
0030
0031
0032
0033
0034
0035 struct imx1_pin_group {
0036 const char *name;
0037 unsigned int *pin_ids;
0038 struct imx1_pin *pins;
0039 unsigned npins;
0040 };
0041
0042
0043
0044
0045
0046
0047
0048 struct imx1_pmx_func {
0049 const char *name;
0050 const char **groups;
0051 unsigned num_groups;
0052 };
0053
0054 struct imx1_pinctrl_soc_info {
0055 struct device *dev;
0056 const struct pinctrl_pin_desc *pins;
0057 unsigned int npins;
0058 struct imx1_pin_group *groups;
0059 unsigned int ngroups;
0060 struct imx1_pmx_func *functions;
0061 unsigned int nfunctions;
0062 };
0063
0064 #define IMX_PINCTRL_PIN(pin) PINCTRL_PIN(pin, #pin)
0065
0066 int imx1_pinctrl_core_probe(struct platform_device *pdev,
0067 struct imx1_pinctrl_soc_info *info);
0068 #endif