/* NOTE: normally the GPIO has to be put into HiZ when de-activated to cause minmal side effect when scanning other columns, here it is configured to be input, and it should work on most platforms.  */
static void __activate_col(const struct matrix_keypad_platform_data *pdata, int col, bool on)
/* NOTE: normally the GPIO has to be put into HiZ when de-activated to cause minmal side effect when scanning other columns, here it is configured to be input, and it should work on most platforms.  */
static void __activate_col(const struct matrix_keypad_platform_data *pdata, int col, bool on)
{
	bool level_on = !pdata->active_low;
	if (on) {
		gpio_direction_output(pdata->col_gpios[col], level_on);
	} else {
		gpio_set_value_cansleep(pdata->col_gpios[col], !level_on);
		gpio_direction_input(pdata->col_gpios[col]);
	}
}