···209209 * means when user set smt, input enable is set at the same time. So they210210 * also need special control. If special control is success, this should211211 * return 0, otherwise return non-zero value.212212- *212212+ * @spec_pinmux_set: In some cases, there are two pinmux functions share213213+ * the same value in the same segment of pinmux control register. If user214214+ * want to use one of the two functions, they need an extra bit setting to215215+ * select the right one.216216+ * @spec_dir_set: In very few SoCs, direction control registers are not217217+ * arranged continuously, they may be cut to parts. So they need special218218+ * dir setting.219219+213220 * @dir_offset: The direction register offset.214221 * @pullen_offset: The pull-up/pull-down enable register offset.215222 * @pinmux_offset: The pinmux register offset.···241234 unsigned char align, bool isup, unsigned int arg);242235 int (*spec_ies_smt_set)(struct regmap *reg, unsigned int pin,243236 unsigned char align, int value, enum pin_config_param arg);237237+ void (*spec_pinmux_set)(struct regmap *reg, unsigned int pin,238238+ unsigned int mode);239239+ void (*spec_dir_set)(unsigned int *reg_addr, unsigned int pin);244240 unsigned int dir_offset;245241 unsigned int ies_offset;246242 unsigned int smt_offset;