On 2017년 10월 19일 13:59, Chanwoo Choi wrote: > Hi, > > On 2017년 10월 19일 12:26, Raveendra Padasalagi wrote: >> Add changes to capture optional dt attribute "debounce-timeout-ms" >> provided in extcon node and used the same value if provided otherwise >> default value of 20ms is used for id and vbus gpios debounce time. >> >> Signed-off-by: Raveendra Padasalagi <raveendra.padasalagi@xxxxxxxxxxxx> >> Reviewed-by: Ray Jui <ray.jui@xxxxxxxxxxxx> >> Reviewed-by: Srinath Mannam <srinath.mannam@xxxxxxxxxxxx> >> --- >> >> Changes in v2: >> Rename gpio_debounce_timeout_ms to debounce_usecs >> >> drivers/extcon/extcon-usb-gpio.c | 12 +++++++++--- >> 1 file changed, 9 insertions(+), 3 deletions(-) >> >> diff --git a/drivers/extcon/extcon-usb-gpio.c b/drivers/extcon/extcon-usb-gpio.c >> index 9c925b0..76ef1da 100644 >> --- a/drivers/extcon/extcon-usb-gpio.c >> +++ b/drivers/extcon/extcon-usb-gpio.c >> @@ -41,6 +41,7 @@ struct usb_extcon_info { >> >> unsigned long debounce_jiffies; >> struct delayed_work wq_detcable; >> + unsigned int debounce_usecs; >> }; >> >> static const unsigned int usb_extcon_cable[] = { >> @@ -133,6 +134,11 @@ static int usb_extcon_probe(struct platform_device *pdev) >> if (IS_ERR(info->vbus_gpiod)) >> return PTR_ERR(info->vbus_gpiod); >> >> + ret = of_property_read_u32(np, "input-debounce", >> + &info->debounce_usecs); >> + if (ret) >> + info->debounce_usecs = USB_GPIO_DEBOUNCE_MS; > > The USB_GPIO_DEBOUNCE_MS indicates 20 millisecond. > You need to redefine it as following: > -#define USB_GPIO_DEBOUNCE_MS 20 /* ms */ > +#define USB_GPIO_DEBOUNCE_USEC 20000 > > info->debounce_usecs = USB_GPIO_DEBOUNCE_USEC; > > or > info->debounce_usecs = USB_GPIO_DEBOUNCE_MS * 1000; > > >> + >> info->edev = devm_extcon_dev_allocate(dev, usb_extcon_cable); >> if (IS_ERR(info->edev)) { >> dev_err(dev, "failed to allocate extcon device\n"); >> @@ -147,13 +153,13 @@ static int usb_extcon_probe(struct platform_device *pdev) >> >> if (info->id_gpiod) >> ret = gpiod_set_debounce(info->id_gpiod, >> - USB_GPIO_DEBOUNCE_MS * 1000); >> + info->debounce_usecs * 1000); > > The debounce_usecs is already microsecond, You don't need to mutiply with 1000. > > >> if (!ret && info->vbus_gpiod) >> ret = gpiod_set_debounce(info->vbus_gpiod, >> - USB_GPIO_DEBOUNCE_MS * 1000); >> + info->debounce_usecs * 1000); You don't need to mutiply with 1000. >> >> if (ret < 0) >> - info->debounce_jiffies = msecs_to_jiffies(USB_GPIO_DEBOUNCE_MS); >> + info->debounce_jiffies = msecs_to_jiffies(info->debounce_usecs); You should you the 'usecs_to_jiffies' because info->debounce_usecs indicates the usec. -- Best Regards, Chanwoo Choi Samsung Electronics -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html