We would need a high impedance implementation for a quirk, so here it is. While doing this series I also noticed a couple of opportunities to clean up, hence a few more patches (1st, 5th, and 6th). Series has been tested on Intel Meteor Lake-P. v2: - fixed a bug in patch 1 when applying debounce value - updated enum style (Mika) - made intel_gpio_set_high_impedance return void (Mika) - new patch to constify intel_get_community() - resplit "absolutely grotesque" macro to four (Mika) - ...and update more users, this shrinks binary a lot Andy Shevchenko (6): pinctrl: intel: Move debounce validation out of the lock pinctrl: intel: Refactor __intel_gpio_set_direction() to be more useful pinctrl: intel: Add __intel_gpio_get_direction() helper pinctrl: intel: Implement high impedance support pinctrl: intel: Constify intel_get_community() returned object pinctrl: intel: Introduce for_each_intel_gpio_group() helper et al. drivers/pinctrl/intel/pinctrl-baytrail.c | 3 +- drivers/pinctrl/intel/pinctrl-intel.c | 280 +++++++++++++--------- drivers/pinctrl/intel/pinctrl-intel.h | 2 +- drivers/pinctrl/intel/pinctrl-lynxpoint.c | 2 +- 4 files changed, 170 insertions(+), 117 deletions(-) -- 2.43.0.rc1.1336.g36b5255a03ac