From nobody Fri Dec 19 19:36:23 2025 Received: from mail-ej1-f47.google.com (mail-ej1-f47.google.com [209.85.218.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8A25533E361 for ; Thu, 4 Dec 2025 12:29:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764851357; cv=none; b=sMsG1KB+64lqCmIx/zlPUKeEpmS8/S/VpTput5pN7GJ05a84d0WDkcxNU7OM2/2mwZZL1kiIZp8nhROhMoXxRuiEOnJ2VkkOESxHuwoeJvQuV4NPVJIZgZ/SzQXuHavfjKOvdA7c5wSgKMQdg/T+joRAjMsdwcKYm7ygod4GO78= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764851357; c=relaxed/simple; bh=g9caGip8nEOSZ45sBttRAv916t/vQHL6PXG7Jv3w3QU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Y/bePIiid8pJo2VjOxHcvEgGmMvwZvP58c2jzvmvtnE3pFQsN+e5jIPPrZ4vO1rsPsNbVKT4FtSc+SiEaVVqh8Eu63RzBFoohlOV9p7j6T1cqi/qsMi575bb6S5iMuP+X+vhj9Nf176Tigz/v5uuK1IcEAkqvVnB0i89OzZdrog= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=fairphone.com; spf=pass smtp.mailfrom=fairphone.com; dkim=pass (2048-bit key) header.d=fairphone.com header.i=@fairphone.com header.b=x9bgmvdL; arc=none smtp.client-ip=209.85.218.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=fairphone.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=fairphone.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=fairphone.com header.i=@fairphone.com header.b="x9bgmvdL" Received: by mail-ej1-f47.google.com with SMTP id a640c23a62f3a-b73545723ebso143143666b.1 for ; Thu, 04 Dec 2025 04:29:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fairphone.com; s=fair; t=1764851353; x=1765456153; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=3cAKVhALDjpLZtr9Twp/5glRYwXvQmazP9DHiOTwRrM=; b=x9bgmvdLp5bOq5DuyGU/DIzHR6KRYhMLmMrj538k3MQZ5kWQCnBuHvofWVGt3+xzFs PKrirfANxwoVVVUlwEKpACG03saR7zM6zNNoei/DbYz7JNYTp/QHUqrZihgIEmpo4LU8 ICe+Y7BxbsvFMX9n/ZOb5No4qTlDkToWYyQNTAx73x4cNCpTUYyJz3GQvC/yjTKomT3d EknPwx+KiUmQNx0+S4fxJ8mN7fvKoKbo8GL4ZFYBQ9Q/Wu368TFvPFvXra0kyPJayahq e4IhmR4njHsPWtgneII8iQBXjsWcG/DWz9kTzT1cD/hqOrZNRRmAPIN6hq7IQCXYA8oY 0XaA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764851353; x=1765456153; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=3cAKVhALDjpLZtr9Twp/5glRYwXvQmazP9DHiOTwRrM=; b=DQW1G40ZuYBZIHeF+stAfeKOMwgRjAPVLFYepnryWdapeW3zwWezIgYZn6H4ugytsj jUvhMvhoiKR6WVraQEuzWOcLynXJlcgMCsclxhv2M4Z66/6d1TjxWGln6Co3fDb67eyQ t9fbn+OgMH6lO0Vt1uN/EI8RkcePID+W125cGozJUeIA9kgHk4Aq5oaRMzrmm06uuhyT Uocu4O5Jws/k+BcmxYb9SgJD+x683q3pQr5BobIJNBp6Y+GBvLtm8pPQgn3Gh5mzIdKs 3hAn/5mXv9wpbM9swo6osAgSjc1IuiMKDs6tMIC1/4l2TnFDLf0w9nBr9qVUHVjFasfA 6LyQ== X-Forwarded-Encrypted: i=1; AJvYcCUGnFBZcEVJHrHyHG5Nwzg5qb24MagK+tcJabQ0ajxMP59xq8lzkyyvDa/0/hB0M9z8DH8D6azWsB9Gn2o=@vger.kernel.org X-Gm-Message-State: AOJu0Ywp22M7DzUrtowmDYjiamkw5wwB/A5lesXgu72oojDev65zLep6 LGw091Uo4rCY0c2zONXb/9WjC27dCeo+kfWcUkBn/xUH7BF/aNZitghHMn6ervyCADM= X-Gm-Gg: ASbGncvQXZeFtcdEOi6+6ChoulaYg4pG584bwoxGofRIWG7/kPYcCLycXJWNfSj+yvb aXqCRCVJHx2ADL9+5TcKVvb5367ULn/xtto1zzQtuYYcj56iXsuVREcN1oTRHr3tP9/kdvlV+Py 8M8N7uP+DVh2FDvYQsObjqoRzRsOSu6NJZOcUvm2CC5v7QWvXwrMm0N0DI37RYazVHKgc4nxPcJ fH4ZZ+pg9+FDnh+ooRVZgIweZsnFmWp6l/iCK79b+l5IzsexRyIOPyv3PKp4/uF7vziGcKSOw74 MrWfm2wqA9Si2ffjeNNOuPiYvbtpkUBipzBR7+3Ly//G5LsORfBs/XwGB+4uALSNRhcYsIhdFew xPdICv49h27mNFyT9rbPFC9FIN/ORijMZnzl2zfMmMwgv4eqMnueXKVOTj/kPxXpTdjK4Q2KoaA FOJkURAQ69QklrbQE6xWIesqDAo5pF1v3XixyDx3ilg6sqA+N4pcFwYtzIZ0txigIanct9 X-Google-Smtp-Source: AGHT+IG//OsOH2wLVDgIH2ZekMNRwF4VIMghhR7eDiuVEDJ9yrkn8agOLgvCyX6HmQUP+n2SwnyMSA== X-Received: by 2002:a17:907:97d0:b0:b71:29f7:47ef with SMTP id a640c23a62f3a-b79dc7826a6mr641436966b.61.1764851352486; Thu, 04 Dec 2025 04:29:12 -0800 (PST) Received: from [172.16.220.227] (144-178-202-139.static.ef-service.nl. [144.178.202.139]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b79f4a2f19dsm121351666b.64.2025.12.04.04.29.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 04 Dec 2025 04:29:12 -0800 (PST) From: Griffin Kroah-Hartman Date: Thu, 04 Dec 2025 13:29:01 +0100 Subject: [PATCH 2/3] Input: aw86938 - add driver for Awinic AW86938 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251204-aw86938-driver-v1-2-ebd71868df3a@fairphone.com> References: <20251204-aw86938-driver-v1-0-ebd71868df3a@fairphone.com> In-Reply-To: <20251204-aw86938-driver-v1-0-ebd71868df3a@fairphone.com> To: Dmitry Torokhov , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Bjorn Andersson , Konrad Dybcio , Luca Weiss Cc: linux-input@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, Griffin Kroah-Hartman X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1764851350; l=2259; i=griffin.kroah@fairphone.com; s=20250804; h=from:subject:message-id; bh=g9caGip8nEOSZ45sBttRAv916t/vQHL6PXG7Jv3w3QU=; b=zsTQCONX5cSL63xwKbm1K0spvpjuxlEq0t96aBr4SHekj4HeOM2iTLGN9IgFBl39CcTFMrPOW 0pgoEt63fTdDLvTpgZPpPFRu1on6/AB9AQOwZyXHp88Rk54vcUuldIF X-Developer-Key: i=griffin.kroah@fairphone.com; a=ed25519; pk=drSBvqKFiR+xucmLWONHSq/wGrW+YvcVtBXFYnYzn8U= Add support for the I2C-connected Awinic AW86938 LRA haptic driver. This driver is functionally similar to the AW86927. but suffers from distortion with higher gain values. Its vendor driver sets this value to 0x45, which fixes the problem and does not noticeably effect the AW86927's playback. Signed-off-by: Griffin Kroah-Hartman --- drivers/input/misc/aw86927.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/drivers/input/misc/aw86927.c b/drivers/input/misc/aw86927.c index abd117bb309478b3049f74e53582f06989f74e90..39e22dbdeeb7494ba1a8d4ca8fc= 40b5580c304f9 100644 --- a/drivers/input/misc/aw86927.c +++ b/drivers/input/misc/aw86927.c @@ -166,6 +166,7 @@ #define AW86927_BASEADDRH_VAL 0x08 #define AW86927_BASEADDRL_VAL 0x00 =20 +#define AW86938_CHIPID 0x9380 enum aw86927_work_mode { AW86927_STANDBY_MODE, AW86927_RAM_MODE, @@ -372,7 +373,7 @@ static int aw86927_play_sine(struct aw86927_data *hapti= cs) return err; =20 /* set gain to value lower than 0x80 to avoid distorted playback */ - err =3D regmap_write(haptics->regmap, AW86927_PLAYCFG2_REG, 0x7c); + err =3D regmap_write(haptics->regmap, AW86927_PLAYCFG2_REG, 0x45); if (err) return err; =20 @@ -602,6 +603,9 @@ static int aw86927_ram_init(struct aw86927_data *haptic= s) FIELD_PREP(AW86927_SYSCTRL3_EN_RAMINIT_MASK, AW86927_SYSCTRL3_EN_RAMINIT_ON)); =20 + /* AW86938 wants a 1ms delay here */ + usleep_range(1000, 1500); + /* Set base address for the start of the SRAM waveforms */ err =3D regmap_write(haptics->regmap, AW86927_BASEADDRH_REG, @@ -724,7 +728,12 @@ static int aw86927_detect(struct aw86927_data *haptics) =20 chip_id =3D be16_to_cpu(read_buf); =20 - if (chip_id !=3D AW86927_CHIPID) { + switch (chip_id) { + case AW86927_CHIPID: + break; + case AW86938_CHIPID: + break; + default: dev_err(haptics->dev, "Unexpected CHIPID value 0x%x\n", chip_id); return -ENODEV; } @@ -834,6 +843,7 @@ static int aw86927_probe(struct i2c_client *client) =20 static const struct of_device_id aw86927_of_id[] =3D { { .compatible =3D "awinic,aw86927" }, + { .compatible =3D "awinic,aw86938" }, { /* sentinel */ } }; =20 --=20 2.43.0