Received: by 2002:a05:6902:102b:0:0:0:0 with SMTP id x11csp932727ybt; Wed, 17 Jun 2020 18:16:16 -0700 (PDT) X-Google-Smtp-Source: ABdhPJw/faNvuqrmFbSV1SpNC0EE/ua6ZqpDAoYcZh2Nc7MiQ90mXO//YQqQ/DqQVv+707HLH9uT X-Received: by 2002:a05:6402:897:: with SMTP id e23mr1795205edy.217.1592442976800; Wed, 17 Jun 2020 18:16:16 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1592442976; cv=none; d=google.com; s=arc-20160816; b=q3gkbXIyEy1iHq6sQ1bkxxp3BH0pvOZpJzpHzuaFCWZgl2L74JLx+i3afnXns5LBDK BWNpr8p6PAIu16AkYxZ6YosYs0ZvGPTdfmUjIfujCb4N/BTUHEI7nafAYpiRHJoYIPrh PRTrKMZNprLV/2AhIj5DhntGlRvg01kXZ8c/hQMwftv/2BP9aow3IQqo8TynYy6s3QQV QX7royVF4Nb95lpTyGBPjeOMzzRcMNJDvBuGrDljJCSVbWhlIWViiJc3GRwqbIK7Ku1/ CccfJwO6dChfST+R14BclwcHyAFMQXNyDg5ISlINdbAIjC6pxSQAXgJabHohng8EmWf2 5F/Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=1R57ka12q/VNu59E7ZAuyVzvTH6L14zAAOb21JvnDWM=; b=j0t+iL1yO8TDcCL24G/Q79V/4lZRbHcTKRHXY2XP4fWzj48Jy419bqcdgklkSkqgsl VNGSMmAKvKHnNdMa9xBxQgCYMotrjoR1tLk1ThKoThtlSqDq2L5BKCNDZ3kk0RYpJkC6 gzR/zQhl3Ysc50RqzdQN6IiF2/LDBBELJVsBlV1GP1C+niDQVY/98KhjsvXV8WinrvhY bF05d/ayS70BBW0CaDIR/T4Q5GeN+Jh087qVIYSK9u5ugwdfV0ZlpR+On5jmtKEdXwLG gGkjD1yYJuE2wHqLSyU0nnG6fIitpdA81QQrnxI26zzPijh/qlVALx4mo5VaQUwUjRKF VGzg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=YEP6Gax5; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id f11si980914edn.268.2020.06.17.18.15.54; Wed, 17 Jun 2020 18:16:16 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=YEP6Gax5; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727772AbgFRBLg (ORCPT + 99 others); Wed, 17 Jun 2020 21:11:36 -0400 Received: from mail.kernel.org ([198.145.29.99]:38898 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727864AbgFRBLL (ORCPT ); Wed, 17 Jun 2020 21:11:11 -0400 Received: from sasha-vm.mshome.net (c-73-47-72-35.hsd1.nh.comcast.net [73.47.72.35]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 5697920CC7; Thu, 18 Jun 2020 01:11:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1592442671; bh=lliB/SdB4dTr3vnMmXwI4BShyq2OiY3uebwxlyMoAxE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=YEP6Gax5VVeP5o0RCD3FwS+wNNjD2QhnOEg8vPKlo77xZSIoKZN3z+3Fce0/4PLeo Lf90xx9+Ibo5uKtuIe1cEQnNq9Qs/Qj+MRtozfHbU9FDunEIUqLpyJBKquLf1HQsYh iTjVtCsmLraH1ft8IgCVzBgYbHTpiS2Rgeus7DZE= From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Stephan Gerhold , Andi Shyti , Dmitry Torokhov , Sasha Levin , linux-input@vger.kernel.org Subject: [PATCH AUTOSEL 5.7 140/388] Input: mms114 - add extra compatible for mms345l Date: Wed, 17 Jun 2020 21:03:57 -0400 Message-Id: <20200618010805.600873-140-sashal@kernel.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200618010805.600873-1-sashal@kernel.org> References: <20200618010805.600873-1-sashal@kernel.org> MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Stephan Gerhold [ Upstream commit 7842087b0196d674ed877d768de8f2a34d7fdc53 ] MMS345L is another first generation touch screen from Melfas, which uses mostly the same registers as MMS152. However, there is some garbage printed during initialization. Apparently MMS345L does not have the MMS152_COMPAT_GROUP register that is read+printed during initialization. TSP FW Rev: bootloader 0x6 / core 0x26 / config 0x26, Compat group: \x06 On earlier kernel versions the compat group was actually printed as an ASCII control character, seems like it gets escaped now. But we probably shouldn't print something from a random register. Add a separate "melfas,mms345l" compatible that avoids reading from the MMS152_COMPAT_GROUP register. This might also help in case there is some other device-specific quirk in the future. Signed-off-by: Stephan Gerhold Reviewed-by: Andi Shyti Link: https://lore.kernel.org/r/20200423102431.2715-1-stephan@gerhold.net Signed-off-by: Dmitry Torokhov Signed-off-by: Sasha Levin --- drivers/input/touchscreen/mms114.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/drivers/input/touchscreen/mms114.c b/drivers/input/touchscreen/mms114.c index 2ef1adaed9af..5bdf4ac1a303 100644 --- a/drivers/input/touchscreen/mms114.c +++ b/drivers/input/touchscreen/mms114.c @@ -54,6 +54,7 @@ enum mms_type { TYPE_MMS114 = 114, TYPE_MMS152 = 152, + TYPE_MMS345L = 345, }; struct mms114_data { @@ -250,6 +251,15 @@ static int mms114_get_version(struct mms114_data *data) int error; switch (data->type) { + case TYPE_MMS345L: + error = __mms114_read_reg(data, MMS152_FW_REV, 3, buf); + if (error) + return error; + + dev_info(dev, "TSP FW Rev: bootloader 0x%x / core 0x%x / config 0x%x\n", + buf[0], buf[1], buf[2]); + break; + case TYPE_MMS152: error = __mms114_read_reg(data, MMS152_FW_REV, 3, buf); if (error) @@ -287,8 +297,8 @@ static int mms114_setup_regs(struct mms114_data *data) if (error < 0) return error; - /* MMS152 has no configuration or power on registers */ - if (data->type == TYPE_MMS152) + /* Only MMS114 has configuration and power on registers */ + if (data->type != TYPE_MMS114) return 0; error = mms114_set_active(data, true); @@ -597,6 +607,9 @@ static const struct of_device_id mms114_dt_match[] = { }, { .compatible = "melfas,mms152", .data = (void *)TYPE_MMS152, + }, { + .compatible = "melfas,mms345l", + .data = (void *)TYPE_MMS345L, }, { } }; -- 2.25.1