0001
0002
0003
0004
0005
0006
0007
0008
0009 struct meson8_pmx_data {
0010 bool is_gpio;
0011 unsigned int reg;
0012 unsigned int bit;
0013 };
0014
0015 #define PMX_DATA(r, b, g) \
0016 { \
0017 .reg = r, \
0018 .bit = b, \
0019 .is_gpio = g, \
0020 }
0021
0022 #define GROUP(grp, r, b) \
0023 { \
0024 .name = #grp, \
0025 .pins = grp ## _pins, \
0026 .num_pins = ARRAY_SIZE(grp ## _pins), \
0027 .data = (const struct meson8_pmx_data[]){ \
0028 PMX_DATA(r, b, false), \
0029 }, \
0030 }
0031
0032 #define GPIO_GROUP(gpio) \
0033 { \
0034 .name = #gpio, \
0035 .pins = (const unsigned int[]){ gpio }, \
0036 .num_pins = 1, \
0037 .data = (const struct meson8_pmx_data[]){ \
0038 PMX_DATA(0, 0, true), \
0039 }, \
0040 }
0041
0042 extern const struct pinmux_ops meson8_pmx_ops;