From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 28E5BC77B60 for ; Fri, 28 Apr 2023 10:11:25 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1345854AbjD1KLX (ORCPT ); Fri, 28 Apr 2023 06:11:23 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53370 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1346045AbjD1KLP (ORCPT ); Fri, 28 Apr 2023 06:11:15 -0400 Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com [IPv6:2a00:1450:4864:20::32e]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3873D558A for ; Fri, 28 Apr 2023 03:11:11 -0700 (PDT) Received: by mail-wm1-x32e.google.com with SMTP id 5b1f17b1804b1-3f315712406so54035375e9.0 for ; Fri, 28 Apr 2023 03:11:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1682676669; x=1685268669; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=wXzFdP+bsCom1eIU4RjGMEhTHDjKgk0txNlrf8+QKjQ=; b=BTJadbAUme0Sy1hlHP/K4faG9iF+975AHqUFdEcWjuUQLtvs65XD2KY+1siMxyE9/l o6FKRidLgEQa3A9pzVkgzokqaVHcHAnrb+4s1Q4UEVWfLL0/1joAGQSDuB+dlS23akBL eyqrZ39sZx5ejMhovbd+YTearPccBC6fmWVBlfU4oU9YrcIQtMQk9gn4ejgAdj6FPium Ekk9tv02jYMShgZvwUbLrSolY+Hp2a23GnYESMDuGqgnAoIfs5r83sLzmZ+IWdbiAFP8 AXtXAzYYNSLywuEY5PSdMDNAQYWU2M92PldMuAQnBZomC5xqs2niHsqIvpYctk5pV5HT rwLw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1682676669; x=1685268669; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=wXzFdP+bsCom1eIU4RjGMEhTHDjKgk0txNlrf8+QKjQ=; b=NoNbEXYiyAexnE1inlkkC5PNsZ4clvr/J3hyG4BZvzo9Na8nTcRg2huLKCZS4HQrMY DzhX3fZn5iK1Q8n20RaTuNmY9Yvt14IrbrAmUEla1r0EXcdALTq5ocsq3mLmQIYj7bQb U+gITwK90uZHzqgmbIvkot3e6/1w2f1xhBPek8nH4VVd6emFRalW0B4ACbexjCjHPIDo HrxB810CdkxSUftERh4Qy05j5jq0z916n4Ohc1LtEWM1S+mQ748vH02bTwRDfEhvQiih z/aJR8jXbPGpGKn4M+hDsR6qKTgYoj4142UflzA6UkfnKNAR3FTDXSTyupmC0ITBIOWG Yqdw== X-Gm-Message-State: AC+VfDzAkIYXtxeDEaiXhAXAhcDe61H0PWsQq6SdFTDBdmbLls3Y/EUS 6IIPl1TR+dqFk03b5djciKI3EA== X-Google-Smtp-Source: ACHHUZ40io/HDINCoZegM4FbjUwOrQojqqHLfzHukPg8uxIUh+gUZC94V0ajzwAV5EvY1bNvrk3wgQ== X-Received: by 2002:a7b:cb86:0:b0:3f1:8129:2c53 with SMTP id m6-20020a7bcb86000000b003f181292c53mr3712923wmi.16.1682676669381; Fri, 28 Apr 2023 03:11:09 -0700 (PDT) Received: from [172.23.3.169] ([195.167.132.10]) by smtp.gmail.com with ESMTPSA id x8-20020a05600c21c800b003f2390bdd0csm15200964wmj.32.2023.04.28.03.11.08 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 28 Apr 2023 03:11:09 -0700 (PDT) Message-ID: <7d481097-9ffc-6ac5-a53e-09772b2d5b33@linaro.org> Date: Fri, 28 Apr 2023 11:11:07 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.9.1 Subject: Re: [PATCH 3/4] Input: pwm-vibra - add support for enable GPIO Content-Language: en-US To: Luca Weiss , ~postmarketos/upstreaming@lists.sr.ht, phone-devel@vger.kernel.org, Dmitry Torokhov , Rob Herring , Krzysztof Kozlowski , Sebastian Reichel , Andy Gross , Bjorn Andersson , Konrad Dybcio , Brian Masney Cc: linux-input@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org References: <20230427-hammerhead-vibra-v1-0-e87eeb94da51@z3ntu.xyz> <20230427-hammerhead-vibra-v1-3-e87eeb94da51@z3ntu.xyz> From: Caleb Connolly In-Reply-To: <20230427-hammerhead-vibra-v1-3-e87eeb94da51@z3ntu.xyz> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Precedence: bulk List-ID: X-Mailing-List: linux-input@vger.kernel.org On 27/04/2023 21:34, Luca Weiss wrote: > Some pwm vibrators have a dedicated enable GPIO that needs to be set > high so that the vibrator works. Add support for that optionally. > > Signed-off-by: Luca Weiss Reviewed-by: Caleb Connolly > --- > drivers/input/misc/pwm-vibra.c | 16 ++++++++++++++++ > 1 file changed, 16 insertions(+) > > diff --git a/drivers/input/misc/pwm-vibra.c b/drivers/input/misc/pwm-vibra.c > index c08971c97ad6..2ba035299db8 100644 > --- a/drivers/input/misc/pwm-vibra.c > +++ b/drivers/input/misc/pwm-vibra.c > @@ -11,6 +11,7 @@ > * Copyright (C) 2010, Lars-Peter Clausen > */ > > +#include > #include > #include > #include > @@ -23,6 +24,7 @@ > > struct pwm_vibrator { > struct input_dev *input; > + struct gpio_desc *enable_gpio; > struct pwm_device *pwm; > struct pwm_device *pwm_dir; > struct regulator *vcc; > @@ -48,6 +50,8 @@ static int pwm_vibrator_start(struct pwm_vibrator *vibrator) > vibrator->vcc_on = true; > } > > + gpiod_set_value_cansleep(vibrator->enable_gpio, 1); > + > pwm_get_state(vibrator->pwm, &state); > pwm_set_relative_duty_cycle(&state, vibrator->level, 0xffff); > state.enabled = true; > @@ -80,6 +84,8 @@ static void pwm_vibrator_stop(struct pwm_vibrator *vibrator) > pwm_disable(vibrator->pwm_dir); > pwm_disable(vibrator->pwm); > > + gpiod_set_value_cansleep(vibrator->enable_gpio, 0); > + > if (vibrator->vcc_on) { > regulator_disable(vibrator->vcc); > vibrator->vcc_on = false; > @@ -142,6 +148,16 @@ static int pwm_vibrator_probe(struct platform_device *pdev) > return err; > } > > + vibrator->enable_gpio = devm_gpiod_get_optional(&pdev->dev, "enable", > + GPIOD_OUT_LOW); > + err = PTR_ERR_OR_ZERO(vibrator->enable_gpio); > + if (err) { > + if (err != -EPROBE_DEFER) > + dev_err(&pdev->dev, "Failed to request enable gpio: %d\n", > + err); > + return err; > + } > + > vibrator->pwm = devm_pwm_get(&pdev->dev, "enable"); > err = PTR_ERR_OR_ZERO(vibrator->pwm); > if (err) { >