Re: [PATCH v1 1/2] pinctrl: rockchip:Add input schmitt support

David.Wu david.wu at rock-chips.com
Tue Feb 28 03:12:19 PST 2017


Hi Heiko,

在 2017/2/24 0:51, Heiko Stuebner 写道:
> Hi David,
>
> Am Dienstag, 14. Februar 2017, 18:35:40 CET schrieb David Wu:
>> From: "david.wu" <david.wu at rock-chips.com>
>>
>>  struct rockchip_pin_config {
>> @@ -1355,6 +1358,53 @@ static int rockchip_set_pull(struct rockchip_pin_bank
>> *bank, return ret;
>>  }
>>
>> +static int rockchip_get_schmitt(struct rockchip_pin_bank *bank, int
>> pin_num) +{
>> +	struct rockchip_pinctrl *info = bank->drvdata;
>> +	struct rockchip_pin_ctrl *ctrl = info->ctrl;
>> +	struct regmap *regmap;
>> +	int reg, ret;
>> +	u8 bit;
>> +	u32 data;
>> +
>> +	ctrl->schmitt_calc_reg(bank, pin_num, &regmap, &reg, &bit);
>
> we might want to have and check an actual return value here.
> On things like the rk3288 only some special pins have these schmitt triggers
> it seems, so we might want to abort if something tries to access an
> unsupported one.

Thanks, i forget to check the return value.
>
>> +
>> +	ret = regmap_read(regmap, reg, &data);
>> +	if (ret)
>> +		return ret;
>> +
>> +	data >>= bit;
>> +	return data & 0x1;
>
> The mask seems to also be variable, for example on the rk3399 there seem to be
> multiple "levels" for at least gpio2. So your calc-callback might want to also
> set the right mask.

To the multiple "levels", i think we can use the 
"PIN_CONFIG_INPUT_SCHMITT" pin config, which described at pinconf-generic.h.

  * @PIN_CONFIG_INPUT_SCHMITT: this will configure an input pin to run in
  *	schmitt-trigger mode. If the schmitt-trigger has adjustable hysteresis,
  *	the threshold value is given on a custom format as argument when
  *	setting pins to this mode.

>
> Otherwise looks good.
>
>
> Heiko
>
>
>
>




More information about the Linux-rockchip mailing list