From nobody Sat Feb 7 17:20:23 2026 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 D5C15EB64D7 for ; Wed, 21 Jun 2023 09:32:32 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231875AbjFUJcb (ORCPT ); Wed, 21 Jun 2023 05:32:31 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34866 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231861AbjFUJbP (ORCPT ); Wed, 21 Jun 2023 05:31:15 -0400 Received: from mail-lj1-x232.google.com (mail-lj1-x232.google.com [IPv6:2a00:1450:4864:20::232]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5683510F8 for ; Wed, 21 Jun 2023 02:31:11 -0700 (PDT) Received: by mail-lj1-x232.google.com with SMTP id 38308e7fff4ca-2b46a06c553so63823711fa.1 for ; Wed, 21 Jun 2023 02:31:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20221208.gappssmtp.com; s=20221208; t=1687339869; x=1689931869; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=iUVZalfP6V27NAYz5kQTxrxcxQh7F8OqnR+1IuXKgno=; b=1NSCmre2p7CtkNBkBJvdszJkRwwGaioXWZdO9EoPmJnoKNEGXXEu6EFvU6OgprI5xc tNLkv1dB9ERCHrEUpnTmLZDBzjMzhSVv4UdIs49WCyTKl8Kh/tuD9bFDYntp0pq77pkh rAo12jFi/yvwkjV6rGqstr6iqTzJgJ65dZl8q2XnC53Duoonqw3IhHvngOffXYqqEG3N Xm0SbOk8kbFQCK3y7GZwC8TlYnRblyaNUE2ptaLDzkOoXlopaD4qC8VTiVYh/iUbrdSJ Fp3M3vuvPtPIWQV/Hz+KWNLxB8jMJSZf0+6FxPzEv16pO8LfN7RRV2bpfV9JQl2eBTws 2q/Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687339869; x=1689931869; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=iUVZalfP6V27NAYz5kQTxrxcxQh7F8OqnR+1IuXKgno=; b=DaTOMGSk6WaKMnfmflxs0OmR1c7H04jqJjJjpeY/VYam+lqLfHCPLa7+o+pzps0rei CheiUZc4PlqTOoPj0Iju+p4lcnogPy0FHJ6f7vPHjojMyyCMj98hWRdaLWr8dyxd1Xqv gtXFzQ1FqPa9aCgmRAqBp6o6YInNClb03CgKiXN1lufgYrRJ9Z8Dj+4PQfC2ClKktkzr ZWu6paJuHSArmdpfB3tMjBc0ZUPCsaqhidgmAwNzQM+IIqZ+vgaURI985BQ6MQcDUJye 2FHgsoDiBVORW+Jj/OGIva7V9nIQAR0v5tTMiDnyTPSG/0YIzPeTNpCc/wleN8R89njY cSwA== X-Gm-Message-State: AC+VfDxekIfQirWz3bIlbrFh8FdOnybe09OnJBtaByvxZAyBsziY+zBt rbSldhdej1pV8CwLNq3M9OsevA== X-Google-Smtp-Source: ACHHUZ5niONPbfuy2pOl3UdRueK/q4eJCqkzPPKmPZ8iuLpRxdjpzGVdHt5BRKAlNXSVVVJQYSq+HQ== X-Received: by 2002:a19:5053:0:b0:4f9:5519:78b8 with SMTP id z19-20020a195053000000b004f9551978b8mr2520136lfj.63.1687339869403; Wed, 21 Jun 2023 02:31:09 -0700 (PDT) Received: from blmsp.fritz.box ([2001:4091:a247:82fa:b762:4f68:e1ed:5041]) by smtp.gmail.com with ESMTPSA id t10-20020a5d49ca000000b002fe96f0b3acsm3977344wrs.63.2023.06.21.02.31.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 21 Jun 2023 02:31:08 -0700 (PDT) From: Markus Schneider-Pargmann To: Wolfgang Grandegger , Marc Kleine-Budde , Rob Herring , Krzysztof Kozlowski Cc: "David S . Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Conor Dooley , Chandrasekar Ramakrishnan , Michal Kubiak , Vivek Yadav , linux-can@vger.kernel.org, netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Simon Horman , Markus Schneider-Pargmann Subject: [PATCH v2 1/6] dt-bindings: can: tcan4x5x: Add tcan4552 and tcan4553 variants Date: Wed, 21 Jun 2023 11:30:58 +0200 Message-Id: <20230621093103.3134655-2-msp@baylibre.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230621093103.3134655-1-msp@baylibre.com> References: <20230621093103.3134655-1-msp@baylibre.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" These two new chips do not have state or wake pins. Signed-off-by: Markus Schneider-Pargmann Acked-by: Krzysztof Kozlowski --- .../devicetree/bindings/net/can/tcan4x5x.txt | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/Documentation/devicetree/bindings/net/can/tcan4x5x.txt b/Docum= entation/devicetree/bindings/net/can/tcan4x5x.txt index e3501bfa22e9..170e23f0610d 100644 --- a/Documentation/devicetree/bindings/net/can/tcan4x5x.txt +++ b/Documentation/devicetree/bindings/net/can/tcan4x5x.txt @@ -4,7 +4,10 @@ Texas Instruments TCAN4x5x CAN Controller This file provides device node information for the TCAN4x5x interface cont= ains. =20 Required properties: - - compatible: "ti,tcan4x5x" + - compatible: + "ti,tcan4552", "ti,tcan4x5x" + "ti,tcan4553", "ti,tcan4x5x" or + "ti,tcan4x5x" - reg: 0 - #address-cells: 1 - #size-cells: 0 @@ -21,8 +24,10 @@ Optional properties: - reset-gpios: Hardwired output GPIO. If not defined then software reset. - device-state-gpios: Input GPIO that indicates if the device is in - a sleep state or if the device is active. - - device-wake-gpios: Wake up GPIO to wake up the TCAN device. + a sleep state or if the device is active. Not + available with tcan4552/4553. + - device-wake-gpios: Wake up GPIO to wake up the TCAN device. Not + available with tcan4552/4553. =20 Example: tcan4x5x: tcan4x5x@0 { --=20 2.40.1 From nobody Sat Feb 7 17:20:23 2026 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 4BB36C0015E for ; Wed, 21 Jun 2023 09:32:38 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231886AbjFUJcg (ORCPT ); Wed, 21 Jun 2023 05:32:36 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34868 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230124AbjFUJbP (ORCPT ); Wed, 21 Jun 2023 05:31:15 -0400 Received: from mail-wr1-x435.google.com (mail-wr1-x435.google.com [IPv6:2a00:1450:4864:20::435]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7323AE6C for ; Wed, 21 Jun 2023 02:31:12 -0700 (PDT) Received: by mail-wr1-x435.google.com with SMTP id ffacd0b85a97d-31121494630so6568230f8f.3 for ; Wed, 21 Jun 2023 02:31:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20221208.gappssmtp.com; s=20221208; t=1687339871; x=1689931871; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=aOPR69iAQ16PRI3TWa1E2gZcgSDBVpUe2mB3Tg7XdFY=; b=p6VfhCsZ1XQVk+UFLTJRo9cf3iTipfn7+MBuZGX/3xu99DkZWmG8tzt/4QEiu0vdoP SwlKwJZpil8SEzBGic9Sdgl41L2ROAyA7fjHmwCysGNFyiJ2HXeo4xDhFyiizQzpbGAb pFEwDePat4OO5iNIvyfT6kCa1Y1wwPfNVqWTUay+XSTDaay8iLXaiNAWpNJosnHvR002 85B6egNdHCN4pFH1hnrVd2eyXbxaTHobsIy0GYO0HIrF0qrfTKXUZWMqa3bWv6qy4XO8 Fmtgt9r0knq3H5Xf8bnbXgXrDmp7C2UqP5JkHSCkA99CZSH22vhgwzEkEOE5iahxQgJf FIAA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687339871; x=1689931871; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=aOPR69iAQ16PRI3TWa1E2gZcgSDBVpUe2mB3Tg7XdFY=; b=TmgnAKvA8XMsJjxIOuuQ5vTmNaLxz1GQE/wbvlr4bU5tuTnQUGw527hAU+2fZVeCXH Sio5urrnGpncIRHdi4jxs60nppFL4t1hf/7LRudLpfODeh0JdXtKOIQU4Bm7v/i4Ci8R 27cMCcT+veojuHvErdlrlLr+TviPS9O8KcplsqI4KJ7QWAqZnugXvMk8zTlm7sYANRpd GNUMdIYPAPNMElygafpWfi1w2VYsHvKol2NmilT1dKOc4/K4jDJFV39oH5bV+eK5O5yL 08vsmPRhZjGx6jgC3KXKJL135nVSQC14nFkAE0o3dT2xUF2dB3EKYhDTopYBcDF+K5tK LvIQ== X-Gm-Message-State: AC+VfDyvQeOnXN2SQaOoMjYJbbY7le9ZD+F/OSXJI1VL4TeY3MTYvYfQ 25hF4x6dGwD+Ln+AYnDAGOtr3A== X-Google-Smtp-Source: ACHHUZ7h1oBelfPdJ7hS0YJrsBMI7+8RNi0jGbeXTETw7BrgmXNO4eGVgr+m/lxb6bEa7Izo9X0Sqw== X-Received: by 2002:adf:f287:0:b0:311:13e6:650a with SMTP id k7-20020adff287000000b0031113e6650amr12500326wro.28.1687339870910; Wed, 21 Jun 2023 02:31:10 -0700 (PDT) Received: from blmsp.fritz.box ([2001:4091:a247:82fa:b762:4f68:e1ed:5041]) by smtp.gmail.com with ESMTPSA id t10-20020a5d49ca000000b002fe96f0b3acsm3977344wrs.63.2023.06.21.02.31.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 21 Jun 2023 02:31:10 -0700 (PDT) From: Markus Schneider-Pargmann To: Wolfgang Grandegger , Marc Kleine-Budde , Rob Herring , Krzysztof Kozlowski Cc: "David S . Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Conor Dooley , Chandrasekar Ramakrishnan , Michal Kubiak , Vivek Yadav , linux-can@vger.kernel.org, netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Simon Horman , Markus Schneider-Pargmann Subject: [PATCH v2 2/6] can: tcan4x5x: Remove reserved register 0x814 from writable table Date: Wed, 21 Jun 2023 11:30:59 +0200 Message-Id: <20230621093103.3134655-3-msp@baylibre.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230621093103.3134655-1-msp@baylibre.com> References: <20230621093103.3134655-1-msp@baylibre.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" The mentioned register is not writable. It is reserved and should not be written. Fixes: 39dbb21b6a29 ("can: tcan4x5x: Specify separate read/write ranges") Signed-off-by: Markus Schneider-Pargmann Reviewed-by: Michal Kubiak --- drivers/net/can/m_can/tcan4x5x-regmap.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/net/can/m_can/tcan4x5x-regmap.c b/drivers/net/can/m_ca= n/tcan4x5x-regmap.c index 2b218ce04e9f..fafa6daa67e6 100644 --- a/drivers/net/can/m_can/tcan4x5x-regmap.c +++ b/drivers/net/can/m_can/tcan4x5x-regmap.c @@ -95,7 +95,6 @@ static const struct regmap_range tcan4x5x_reg_table_wr_ra= nge[] =3D { regmap_reg_range(0x000c, 0x0010), /* Device configuration registers and Interrupt Flags*/ regmap_reg_range(0x0800, 0x080c), - regmap_reg_range(0x0814, 0x0814), regmap_reg_range(0x0820, 0x0820), regmap_reg_range(0x0830, 0x0830), /* M_CAN */ --=20 2.40.1 From nobody Sat Feb 7 17:20:23 2026 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 ED5C1EB64DC for ; Wed, 21 Jun 2023 09:32:41 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230265AbjFUJck (ORCPT ); Wed, 21 Jun 2023 05:32:40 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35090 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231607AbjFUJbP (ORCPT ); Wed, 21 Jun 2023 05:31:15 -0400 Received: from mail-wr1-x435.google.com (mail-wr1-x435.google.com [IPv6:2a00:1450:4864:20::435]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 959AC1718 for ; Wed, 21 Jun 2023 02:31:13 -0700 (PDT) Received: by mail-wr1-x435.google.com with SMTP id ffacd0b85a97d-311153ec442so4551017f8f.1 for ; Wed, 21 Jun 2023 02:31:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20221208.gappssmtp.com; s=20221208; t=1687339872; x=1689931872; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=ybtO4Wog7AXA+LuJ7ppZ2BwN9dyYZ5NmmDbgKQHeLHM=; b=GbEYPR52b9eyHWmMfQU9tvxe081wY8nIF6gJ+LgJ2SlgFQ61zD+2NzGNljuXKeWy24 LICZ2j4cIUIqB4M9uHH9OBqCAf81admdZooSMEzGnVTZlENGAJArH+OU0feZq4wZJOIJ Vvmyp1jnZUar0x3VDO97AP/HdoH9AoCKcyIa/32nekVLkhrKozliSJQmm6MdckAS7A1d 43G5aKpBfnpfF8e4HGgwvkwzwk0ERyZ/t+jxxVJGFEiSAhKR7nkVegtGqXe0vJySt9CZ Z0BZB4msJpteWeG4DHueVVr5CfwIUnYQExTnPDUsxSv8vYpYVsW6e2jl8xXbVPL4Qhu4 tNWA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687339872; x=1689931872; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ybtO4Wog7AXA+LuJ7ppZ2BwN9dyYZ5NmmDbgKQHeLHM=; b=j2n75eRO1PQky560vgU+tZTMIRkBaQeIaKJuM8P221feHXOIdqofbiN0oayMszajjm 6SbWZh3a0Wqt2IOWWICEJ3tsUp+f/Zkb1CQg4Wo3XoiLnwG7SfCsAPMlFxP607uwHiFz abKed74cQcJwDbyJhaiRzrkL140JqOla79OWzut3J23+YJTYqULgDh//PZOxwbwTBmu8 jBrJGp8PR1Smds2HQFJ8GpFspGLNmAg8tURmOlofhBDR3TamRSOTgT6EhnelUqJthCUy SxOVzaJftuRIJ0o4N1k+MfDOxNgrks1r7N2AgpIWcSV+qP1yAWhEuD4lnfCra7JZk3WH j3oQ== X-Gm-Message-State: AC+VfDz5yeG+s2YclFkGvuXqMCZmcR756+nJzYsVsv5YYxkBi6SUeD17 9ZMuSLY1WcsuoCXME23F5GnL8g== X-Google-Smtp-Source: ACHHUZ6N4ShxDPmm0lHjPVsFzQjzdixQQokpJC6Xp7OpddAHkKElZIycIIwE8vb2xIbBKwges4fvGg== X-Received: by 2002:a5d:6501:0:b0:30f:c420:1743 with SMTP id x1-20020a5d6501000000b0030fc4201743mr12562307wru.26.1687339872182; Wed, 21 Jun 2023 02:31:12 -0700 (PDT) Received: from blmsp.fritz.box ([2001:4091:a247:82fa:b762:4f68:e1ed:5041]) by smtp.gmail.com with ESMTPSA id t10-20020a5d49ca000000b002fe96f0b3acsm3977344wrs.63.2023.06.21.02.31.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 21 Jun 2023 02:31:11 -0700 (PDT) From: Markus Schneider-Pargmann To: Wolfgang Grandegger , Marc Kleine-Budde , Rob Herring , Krzysztof Kozlowski Cc: "David S . Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Conor Dooley , Chandrasekar Ramakrishnan , Michal Kubiak , Vivek Yadav , linux-can@vger.kernel.org, netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Simon Horman , Markus Schneider-Pargmann Subject: [PATCH v2 3/6] can: tcan4x5x: Check size of mram configuration Date: Wed, 21 Jun 2023 11:31:00 +0200 Message-Id: <20230621093103.3134655-4-msp@baylibre.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230621093103.3134655-1-msp@baylibre.com> References: <20230621093103.3134655-1-msp@baylibre.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" To reduce debugging effort in case the mram is misconfigured, add this size check of the DT configuration. Currently if the mram configuration doesn't fit into the available MRAM it just overwrites other areas of the MRAM. Signed-off-by: Markus Schneider-Pargmann Reviewed-by: Michal Kubiak --- drivers/net/can/m_can/m_can.c | 16 ++++++++++++++++ drivers/net/can/m_can/m_can.h | 1 + drivers/net/can/m_can/tcan4x5x-core.c | 5 +++++ 3 files changed, 22 insertions(+) diff --git a/drivers/net/can/m_can/m_can.c b/drivers/net/can/m_can/m_can.c index a5003435802b..1cdd2675f022 100644 --- a/drivers/net/can/m_can/m_can.c +++ b/drivers/net/can/m_can/m_can.c @@ -1887,6 +1887,22 @@ static int register_m_can_dev(struct net_device *dev) return register_candev(dev); } =20 +int m_can_check_mram_cfg(struct m_can_classdev *cdev, u32 mram_max_size) +{ + u32 total_size; + + total_size =3D cdev->mcfg[MRAM_TXB].off - cdev->mcfg[MRAM_SIDF].off + + cdev->mcfg[MRAM_TXB].num * TXB_ELEMENT_SIZE; + if (total_size > mram_max_size) { + dev_err(cdev->dev, "Total size of mram config(%u) exceeds mram(%u)\n", + total_size, mram_max_size); + return -EINVAL; + } + + return 0; +} +EXPORT_SYMBOL_GPL(m_can_check_mram_cfg); + static void m_can_of_parse_mram(struct m_can_classdev *cdev, const u32 *mram_config_vals) { diff --git a/drivers/net/can/m_can/m_can.h b/drivers/net/can/m_can/m_can.h index a839dc71dc9b..d8150d8128e7 100644 --- a/drivers/net/can/m_can/m_can.h +++ b/drivers/net/can/m_can/m_can.h @@ -101,6 +101,7 @@ int m_can_class_register(struct m_can_classdev *cdev); void m_can_class_unregister(struct m_can_classdev *cdev); int m_can_class_get_clocks(struct m_can_classdev *cdev); int m_can_init_ram(struct m_can_classdev *priv); +int m_can_check_mram_cfg(struct m_can_classdev *cdev, u32 mram_max_size); =20 int m_can_class_suspend(struct device *dev); int m_can_class_resume(struct device *dev); diff --git a/drivers/net/can/m_can/tcan4x5x-core.c b/drivers/net/can/m_can/= tcan4x5x-core.c index 2342aa011647..e706518176e4 100644 --- a/drivers/net/can/m_can/tcan4x5x-core.c +++ b/drivers/net/can/m_can/tcan4x5x-core.c @@ -80,6 +80,7 @@ TCAN4X5X_MCAN_IR_RF1F) =20 #define TCAN4X5X_MRAM_START 0x8000 +#define TCAN4X5X_MRAM_SIZE 0x800 #define TCAN4X5X_MCAN_OFFSET 0x1000 =20 #define TCAN4X5X_CLEAR_ALL_INT 0xffffffff @@ -307,6 +308,10 @@ static int tcan4x5x_can_probe(struct spi_device *spi) if (!mcan_class) return -ENOMEM; =20 + ret =3D m_can_check_mram_cfg(mcan_class, TCAN4X5X_MRAM_SIZE); + if (ret) + goto out_m_can_class_free_dev; + priv =3D cdev_to_priv(mcan_class); =20 priv->power =3D devm_regulator_get_optional(&spi->dev, "vsup"); --=20 2.40.1 From nobody Sat Feb 7 17:20:23 2026 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 BD3ABEB64D7 for ; Wed, 21 Jun 2023 09:32:50 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229647AbjFUJct (ORCPT ); Wed, 21 Jun 2023 05:32:49 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35106 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231880AbjFUJbR (ORCPT ); Wed, 21 Jun 2023 05:31:17 -0400 Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com [IPv6:2a00:1450:4864:20::32b]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CB541199E for ; Wed, 21 Jun 2023 02:31:14 -0700 (PDT) Received: by mail-wm1-x32b.google.com with SMTP id 5b1f17b1804b1-3f8f3786f1dso62309855e9.2 for ; Wed, 21 Jun 2023 02:31:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20221208.gappssmtp.com; s=20221208; t=1687339873; x=1689931873; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=tK3XW9CvIKNotY0VMKRibuYSfqNfjSdewyrI1jRS2zM=; b=vvdnouFDr5rb5PrRGsiwpdR9r3jMNwu2DJKvMiB+TZcBK9nVZqtjy4UYTSQ4p9v/VP AquDpYPH11jrF5fDASMF0QD9sJEtSrMVtpn4yTrfXcrzYRXBVSUfh2j8cqsfBFxl6wTQ LmmUZA3e3tI2GkjWfMnNEG3XGt5EgaGGOhZA6bzTEwgGegB/VylAiRHrvVfHS0fVbHuQ bfIUDZN+XP5AHAn0UFS+tCcSTpqsif6XY8g0v6JNt3OixPHVV2E/2if5qputFSnY8AkV w5dl7UPoPIRGpkOn5p4VxIO1FmgwCj7Lu+5VB0Ymn7gcjmTddwZD9HzLFJBnZ0KPr8G8 dL7Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687339873; x=1689931873; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=tK3XW9CvIKNotY0VMKRibuYSfqNfjSdewyrI1jRS2zM=; b=RD16FrI0NPLFsiKMwgHTrciEU0weEVhEbGm2NY0P12IX15Ec5MqPt+xHVa8wRexLed 4hqlwovTp9NJjPEuX5mUdyw320d6IKtx7Sy+8F6gteMDivyDY0MklaMcqvgXlvGoDzct 2jdp1+OmqZqgjO7FFkd+VEl+TJNj1+d5yjwQd+3J4BrScm1gucTguIHpOuYh3Lw/lBKY Znr6hLZRKpqTP6Ni9O0jdagF8lbAQ5PJ1H9urXeyJpEbZk7eGohDnXA3ij+1nr5aa8Ot DOjSk+bCS080aag9OETb2aPHN/krgxs+uMGZNoC0bQA9NrHaGOS9bAM3n6trXhDAY3k1 jpsA== X-Gm-Message-State: AC+VfDy5m3pyRaSG2Nk6M69iCJ6x6+ldTn1GVWddIU6Q7eC3DcuFea9w xGuswZE4qVDLuyW9YU3pKqO16g== X-Google-Smtp-Source: ACHHUZ7COqfi5t5n61Ie+ILJw3861GrMcUy4TqaeUI4JHKNwaDVVPooLUubzz7WmMReSJ+T8lRhG0A== X-Received: by 2002:a05:600c:2051:b0:3f7:3545:4630 with SMTP id p17-20020a05600c205100b003f735454630mr15189344wmg.20.1687339873364; Wed, 21 Jun 2023 02:31:13 -0700 (PDT) Received: from blmsp.fritz.box ([2001:4091:a247:82fa:b762:4f68:e1ed:5041]) by smtp.gmail.com with ESMTPSA id t10-20020a5d49ca000000b002fe96f0b3acsm3977344wrs.63.2023.06.21.02.31.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 21 Jun 2023 02:31:12 -0700 (PDT) From: Markus Schneider-Pargmann To: Wolfgang Grandegger , Marc Kleine-Budde , Rob Herring , Krzysztof Kozlowski Cc: "David S . Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Conor Dooley , Chandrasekar Ramakrishnan , Michal Kubiak , Vivek Yadav , linux-can@vger.kernel.org, netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Simon Horman , Markus Schneider-Pargmann Subject: [PATCH v2 4/6] can: tcan4x5x: Rename ID registers to match datasheet Date: Wed, 21 Jun 2023 11:31:01 +0200 Message-Id: <20230621093103.3134655-5-msp@baylibre.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230621093103.3134655-1-msp@baylibre.com> References: <20230621093103.3134655-1-msp@baylibre.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" The datasheet calls these registers ID1 and ID2. Rename these to avoid confusion. Signed-off-by: Markus Schneider-Pargmann Reviewed-by: Michal Kubiak --- drivers/net/can/m_can/tcan4x5x-core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/net/can/m_can/tcan4x5x-core.c b/drivers/net/can/m_can/= tcan4x5x-core.c index e706518176e4..fb9375fa20ec 100644 --- a/drivers/net/can/m_can/tcan4x5x-core.c +++ b/drivers/net/can/m_can/tcan4x5x-core.c @@ -6,8 +6,8 @@ =20 #define TCAN4X5X_EXT_CLK_DEF 40000000 =20 -#define TCAN4X5X_DEV_ID0 0x00 -#define TCAN4X5X_DEV_ID1 0x04 +#define TCAN4X5X_DEV_ID1 0x00 +#define TCAN4X5X_DEV_ID2 0x04 #define TCAN4X5X_REV 0x08 #define TCAN4X5X_STATUS 0x0C #define TCAN4X5X_ERROR_STATUS_MASK 0x10 --=20 2.40.1 From nobody Sat Feb 7 17:20:23 2026 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 AD4FCEB64D7 for ; Wed, 21 Jun 2023 09:32:56 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230396AbjFUJcy (ORCPT ); Wed, 21 Jun 2023 05:32:54 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34878 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231256AbjFUJbS (ORCPT ); Wed, 21 Jun 2023 05:31:18 -0400 Received: from mail-wr1-x433.google.com (mail-wr1-x433.google.com [IPv6:2a00:1450:4864:20::433]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 32C2319AF for ; Wed, 21 Jun 2023 02:31:16 -0700 (PDT) Received: by mail-wr1-x433.google.com with SMTP id ffacd0b85a97d-3112f256941so3627681f8f.1 for ; Wed, 21 Jun 2023 02:31:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20221208.gappssmtp.com; s=20221208; t=1687339874; x=1689931874; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=r9i7Uk9aCK3lESxenmpxDJxkyZ2pr8k/0UfT23fdTCU=; b=HMgfcToT+99atd0bEiOKT3uanwqjHO/q5VjUGAtCm8HErnMups9azwMX8fcFcKdIQl 6lyWoxMdiAxsrjuZTTGn98YG1dCeeQRiGOqr6gcjASDjukONjjHPxvtsQfhUiVcBIDcY EhtHaUF0BIw8TWhppvIrNxdkl48e7fD9VY+rn6oEwpktSkLwEeiq5G3B+KIle89b2Q8+ UTI0aXxydtrWn6JMb2tGM/tdzMRShsIpVFgravjjptsWm3WaWZxCU1BvlU75zWFr2llR vNltpYb/766oVwx5ICst7gjtM02ZNO79qA822hHN0W0MyEPHUzfKsTiIWeX3RXkHxh+8 wmxQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687339874; x=1689931874; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=r9i7Uk9aCK3lESxenmpxDJxkyZ2pr8k/0UfT23fdTCU=; b=kLDFXVkVSdTw3VzbChcBPDZq6/jCflqhHKXwpmFzbByHJbdXvQlQnGyel/5mAMkPjZ un/sesB+w86GUBZYQn2qFZ8qV/MDZm3uUcFHKnMy7Hu+iuap2e0MNKNRtAlRjOg77uq5 xggiNtKtn1KYXcGeBYF2g6A3T2cktuZri8W/He1DG7rzW/PgUa8JP7oMDsm0D1hI4Pzw yY6XkZwOJC5Pgl5CICx0SglKZCSXk5k5QN4CyVjN7S/fiw5N7ZP53o9wevlMhkteT6yA qiCOp7+S8+EaSKLnaK1kSemGpkdnojWn6rGmQGNWES9Nxi7gV9m298hChGcNjbxgn1Ue eqpg== X-Gm-Message-State: AC+VfDz5l3uLeEhjEmwC6f3iq91RJN36nGRzmT7um/3UcCz9pZ6ItDNu 0r0Gc1rLxNx4jXPZ6RNX4ZYflg== X-Google-Smtp-Source: ACHHUZ7Pu7OaqYZZMO9Cjox1GAG9gZTMhbuui5bdyWhgpv6HpGu/DrL+U5iPrc3XAkpwSKqppaw1rw== X-Received: by 2002:adf:e489:0:b0:311:d3c:df0 with SMTP id i9-20020adfe489000000b003110d3c0df0mr9514734wrm.43.1687339874666; Wed, 21 Jun 2023 02:31:14 -0700 (PDT) Received: from blmsp.fritz.box ([2001:4091:a247:82fa:b762:4f68:e1ed:5041]) by smtp.gmail.com with ESMTPSA id t10-20020a5d49ca000000b002fe96f0b3acsm3977344wrs.63.2023.06.21.02.31.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 21 Jun 2023 02:31:14 -0700 (PDT) From: Markus Schneider-Pargmann To: Wolfgang Grandegger , Marc Kleine-Budde , Rob Herring , Krzysztof Kozlowski Cc: "David S . Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Conor Dooley , Chandrasekar Ramakrishnan , Michal Kubiak , Vivek Yadav , linux-can@vger.kernel.org, netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Simon Horman , Markus Schneider-Pargmann Subject: [PATCH v2 5/6] can: tcan4x5x: Add support for tcan4552/4553 Date: Wed, 21 Jun 2023 11:31:02 +0200 Message-Id: <20230621093103.3134655-6-msp@baylibre.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230621093103.3134655-1-msp@baylibre.com> References: <20230621093103.3134655-1-msp@baylibre.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" tcan4552 and tcan4553 do not have wake or state pins, so they are currently not compatible with the generic driver. The generic driver uses tcan4x5x_disable_state() and tcan4x5x_disable_wake() if the gpios are not defined. These functions use register bits that are not available in tcan4552/4553. This patch adds support by introducing version information to reflect if the chip has wake and state pins. Also the version is now checked. Signed-off-by: Markus Schneider-Pargmann --- drivers/net/can/m_can/tcan4x5x-core.c | 128 +++++++++++++++++++++----- 1 file changed, 104 insertions(+), 24 deletions(-) diff --git a/drivers/net/can/m_can/tcan4x5x-core.c b/drivers/net/can/m_can/= tcan4x5x-core.c index fb9375fa20ec..756acd122075 100644 --- a/drivers/net/can/m_can/tcan4x5x-core.c +++ b/drivers/net/can/m_can/tcan4x5x-core.c @@ -7,6 +7,7 @@ #define TCAN4X5X_EXT_CLK_DEF 40000000 =20 #define TCAN4X5X_DEV_ID1 0x00 +#define TCAN4X5X_DEV_ID1_TCAN 0x4e414354 /* ASCII TCAN */ #define TCAN4X5X_DEV_ID2 0x04 #define TCAN4X5X_REV 0x08 #define TCAN4X5X_STATUS 0x0C @@ -103,6 +104,13 @@ #define TCAN4X5X_WD_3_S_TIMER BIT(29) #define TCAN4X5X_WD_6_S_TIMER (BIT(28) | BIT(29)) =20 +struct tcan4x5x_version_info { + u32 id2_register; + + bool has_wake_pin; + bool has_state_pin; +}; + static inline struct tcan4x5x_priv *cdev_to_priv(struct m_can_classdev *cd= ev) { return container_of(cdev, struct tcan4x5x_priv, cdev); @@ -254,18 +262,68 @@ static int tcan4x5x_disable_state(struct m_can_classd= ev *cdev) TCAN4X5X_DISABLE_INH_MSK, 0x01); } =20 -static int tcan4x5x_get_gpios(struct m_can_classdev *cdev) +static const struct tcan4x5x_version_info tcan4x5x_generic; +static const struct of_device_id tcan4x5x_of_match[]; + +static const struct tcan4x5x_version_info +*tcan4x5x_find_version_info(struct tcan4x5x_priv *priv, u32 id2_value) +{ + for (int i =3D 0; tcan4x5x_of_match[i].data; ++i) { + const struct tcan4x5x_version_info *vinfo =3D + tcan4x5x_of_match[i].data; + if (!vinfo->id2_register || id2_value =3D=3D vinfo->id2_register) { + dev_warn(&priv->spi->dev, "TCAN device is %s, please use it in DT\n", + tcan4x5x_of_match[i].compatible); + return vinfo; + } + } + + return &tcan4x5x_generic; +} + +static int tcan4x5x_verify_version(struct tcan4x5x_priv *priv, + const struct tcan4x5x_version_info **info) +{ + u32 val; + int ret; + + ret =3D regmap_read(priv->regmap, TCAN4X5X_DEV_ID1, &val); + if (ret) + return ret; + + if (val !=3D TCAN4X5X_DEV_ID1_TCAN) { + dev_err(&priv->spi->dev, "Not a tcan device %x\n", val); + return -ENODEV; + } + + if (!(*info)->id2_register) + return 0; + + ret =3D regmap_read(priv->regmap, TCAN4X5X_DEV_ID2, &val); + if (ret) + return ret; + + if ((*info)->id2_register !=3D val) + *info =3D tcan4x5x_find_version_info(priv, val); + + return 0; +} + +static int tcan4x5x_get_gpios(struct m_can_classdev *cdev, + const struct tcan4x5x_version_info *version_info) { struct tcan4x5x_priv *tcan4x5x =3D cdev_to_priv(cdev); int ret; =20 - tcan4x5x->device_wake_gpio =3D devm_gpiod_get(cdev->dev, "device-wake", - GPIOD_OUT_HIGH); - if (IS_ERR(tcan4x5x->device_wake_gpio)) { - if (PTR_ERR(tcan4x5x->device_wake_gpio) =3D=3D -EPROBE_DEFER) - return -EPROBE_DEFER; + if (version_info->has_wake_pin) { + tcan4x5x->device_wake_gpio =3D devm_gpiod_get(cdev->dev, "device-wake", + GPIOD_OUT_HIGH); + if (IS_ERR(tcan4x5x->device_wake_gpio)) { + if (PTR_ERR(tcan4x5x->device_wake_gpio) =3D=3D -EPROBE_DEFER) + return -EPROBE_DEFER; =20 - tcan4x5x_disable_wake(cdev); + tcan4x5x_disable_wake(cdev); + } } =20 tcan4x5x->reset_gpio =3D devm_gpiod_get_optional(cdev->dev, "reset", @@ -277,12 +335,14 @@ static int tcan4x5x_get_gpios(struct m_can_classdev *= cdev) if (ret) return ret; =20 - tcan4x5x->device_state_gpio =3D devm_gpiod_get_optional(cdev->dev, - "device-state", - GPIOD_IN); - if (IS_ERR(tcan4x5x->device_state_gpio)) { - tcan4x5x->device_state_gpio =3D NULL; - tcan4x5x_disable_state(cdev); + if (version_info->has_state_pin) { + tcan4x5x->device_state_gpio =3D devm_gpiod_get_optional(cdev->dev, + "device-state", + GPIOD_IN); + if (IS_ERR(tcan4x5x->device_state_gpio)) { + tcan4x5x->device_state_gpio =3D NULL; + tcan4x5x_disable_state(cdev); + } } =20 return 0; @@ -299,10 +359,15 @@ static struct m_can_ops tcan4x5x_ops =3D { =20 static int tcan4x5x_can_probe(struct spi_device *spi) { + const struct tcan4x5x_version_info *version_info; struct tcan4x5x_priv *priv; struct m_can_classdev *mcan_class; int freq, ret; =20 + version_info =3D of_device_get_match_data(&spi->dev); + if (!version_info) + version_info =3D (void *)spi_get_device_id(spi)->driver_data; + mcan_class =3D m_can_class_allocate_dev(&spi->dev, sizeof(struct tcan4x5x_priv)); if (!mcan_class) @@ -361,7 +426,11 @@ static int tcan4x5x_can_probe(struct spi_device *spi) if (ret) goto out_m_can_class_free_dev; =20 - ret =3D tcan4x5x_get_gpios(mcan_class); + ret =3D tcan4x5x_verify_version(priv, &version_info); + if (ret) + goto out_power; + + ret =3D tcan4x5x_get_gpios(mcan_class, version_info); if (ret) goto out_power; =20 @@ -394,21 +463,32 @@ static void tcan4x5x_can_remove(struct spi_device *sp= i) m_can_class_free_dev(priv->cdev.net); } =20 +static const struct tcan4x5x_version_info tcan4x5x_generic =3D { + .has_state_pin =3D true, + .has_wake_pin =3D true, +}; + +static const struct tcan4x5x_version_info tcan4x5x_tcan4552 =3D { + .id2_register =3D 0x32353534, /* ASCII =3D 4552 */ +}; + +static const struct tcan4x5x_version_info tcan4x5x_tcan4553 =3D { + .id2_register =3D 0x33353534, /* ASCII =3D 4553 */ +}; + static const struct of_device_id tcan4x5x_of_match[] =3D { - { - .compatible =3D "ti,tcan4x5x", - }, { - /* sentinel */ - }, + { .compatible =3D "ti,tcan4552", .data =3D &tcan4x5x_tcan4552 }, + { .compatible =3D "ti,tcan4553", .data =3D &tcan4x5x_tcan4553 }, + { .compatible =3D "ti,tcan4x5x", .data =3D &tcan4x5x_generic }, + { /* sentinel */ } }; MODULE_DEVICE_TABLE(of, tcan4x5x_of_match); =20 static const struct spi_device_id tcan4x5x_id_table[] =3D { - { - .name =3D "tcan4x5x", - }, { - /* sentinel */ - }, + { .name =3D "tcan4x5x", .driver_data =3D (unsigned long)&tcan4x5x_generic= , }, + { .name =3D "tcan4552", .driver_data =3D (unsigned long)&tcan4x5x_tcan455= 2, }, + { .name =3D "tcan4553", .driver_data =3D (unsigned long)&tcan4x5x_tcan455= 3, }, + { /* sentinel */ } }; MODULE_DEVICE_TABLE(spi, tcan4x5x_id_table); =20 --=20 2.40.1 From nobody Sat Feb 7 17:20:23 2026 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 6C2F9EB64D7 for ; Wed, 21 Jun 2023 09:33:02 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229879AbjFUJdA (ORCPT ); Wed, 21 Jun 2023 05:33:00 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34902 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231366AbjFUJbc (ORCPT ); Wed, 21 Jun 2023 05:31:32 -0400 Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com [IPv6:2a00:1450:4864:20::330]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 477DC19B6 for ; Wed, 21 Jun 2023 02:31:17 -0700 (PDT) Received: by mail-wm1-x330.google.com with SMTP id 5b1f17b1804b1-3f9c2913133so2871495e9.1 for ; Wed, 21 Jun 2023 02:31:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20221208.gappssmtp.com; s=20221208; t=1687339876; x=1689931876; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=iCNYj/86/5sdpI0dqVl7psoKKhFSLSkxZDdeHiB+vfs=; b=zKBvUDeuh/AFGKGg1KW0cPS/Z+YJwgyTetO5WMcCNXlsdpA6DjdA+JCVw45yfuzOQ7 +ggePlPV3BBZnFVirubbyFlazU9n8ZAQj0zkNJ/DD+8+2atf/UTfto6Um/z+4M4Zq6B9 EjBubPtKj/umzTqO5cGA7NrHohxZE4BCTl1MBpXkc8BnPRZwr9YUtV/s4CYuyxjCbokc P5vyN9h0L5kRalzYsd99rB177VmsDdNE8fI4EFcRb8+b6tJOlJ8DZiTvy3pnH0pRaWcZ tHRdrkMTSwHYtYfyih96fQ+/L8iuf0mZH0mZ5GaI7ysumftvk8TaZMPd5kO9ke+Ysz0U X8aA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687339876; x=1689931876; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=iCNYj/86/5sdpI0dqVl7psoKKhFSLSkxZDdeHiB+vfs=; b=GRQp2yFpvayDgr+E+/BaD0Pkt3fujgBD17VMDX9PKA6jGHRtXQyzn0bRvf2+4W0vyM 3XZQJ5SouyRj0YZ4M0NeHomNBbqdhbI1eUn1W8KSXc1BZdXgeUhMumnAWFnQ29NSQYiZ OgeW6jrzNrrlSY+9ZygVz9zpXB2Thl3xC2sgoel5LMnIaoMXluHn3y4iofAIqjWSkBWq Nd35ORuOipKhDwmCLrXd7oNLnpRIwpCqNchPYr8C2hYW1tFaeT6R/cxuBCL1Yf5nPRMR 9RRBY0iOUgIlgcZ0WEXbjd6hPVrhVEW+3JrdIvPRuRU3gG8m2nGshOVxFzvgqWTZwrBW VJuA== X-Gm-Message-State: AC+VfDz9JIPh1C+OkERCfl5d//mul6FOqHwa4Szz1mqskVNAU5deBHav zsQEyTdwpO/0TX7wOQtucUgBMA== X-Google-Smtp-Source: ACHHUZ7UtUgNUTqAfGOg4L/0CMP4+0xc+qarTvVyytZqEa5kddJf6P2sJTX0FK96SnjlHw6+Bk3Cpg== X-Received: by 2002:a05:600c:248:b0:3f9:b3b4:4367 with SMTP id 8-20020a05600c024800b003f9b3b44367mr5036089wmj.15.1687339875812; Wed, 21 Jun 2023 02:31:15 -0700 (PDT) Received: from blmsp.fritz.box ([2001:4091:a247:82fa:b762:4f68:e1ed:5041]) by smtp.gmail.com with ESMTPSA id t10-20020a5d49ca000000b002fe96f0b3acsm3977344wrs.63.2023.06.21.02.31.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 21 Jun 2023 02:31:15 -0700 (PDT) From: Markus Schneider-Pargmann To: Wolfgang Grandegger , Marc Kleine-Budde , Rob Herring , Krzysztof Kozlowski Cc: "David S . Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Conor Dooley , Chandrasekar Ramakrishnan , Michal Kubiak , Vivek Yadav , linux-can@vger.kernel.org, netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Simon Horman , Markus Schneider-Pargmann Subject: [PATCH v2 6/6] can: tcan4x5x: Add error messages in probe Date: Wed, 21 Jun 2023 11:31:03 +0200 Message-Id: <20230621093103.3134655-7-msp@baylibre.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230621093103.3134655-1-msp@baylibre.com> References: <20230621093103.3134655-1-msp@baylibre.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" To be able to understand issues during probe easier, add error messages if something fails. Signed-off-by: Markus Schneider-Pargmann --- drivers/net/can/m_can/tcan4x5x-core.c | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/drivers/net/can/m_can/tcan4x5x-core.c b/drivers/net/can/m_can/= tcan4x5x-core.c index 756acd122075..e30faa1cf893 100644 --- a/drivers/net/can/m_can/tcan4x5x-core.c +++ b/drivers/net/can/m_can/tcan4x5x-core.c @@ -397,6 +397,8 @@ static int tcan4x5x_can_probe(struct spi_device *spi) =20 /* Sanity check */ if (freq < 20000000 || freq > TCAN4X5X_EXT_CLK_DEF) { + dev_err(&spi->dev, "Clock frequency is out of supported range %d\n", + freq); ret =3D -ERANGE; goto out_m_can_class_free_dev; } @@ -415,32 +417,44 @@ static int tcan4x5x_can_probe(struct spi_device *spi) /* Configure the SPI bus */ spi->bits_per_word =3D 8; ret =3D spi_setup(spi); - if (ret) + if (ret) { + dev_err(&spi->dev, "SPI setup failed %d\n", ret); goto out_m_can_class_free_dev; + } =20 ret =3D tcan4x5x_regmap_init(priv); - if (ret) + if (ret) { + dev_err(&spi->dev, "regmap init failed %d\n", ret); goto out_m_can_class_free_dev; + } =20 ret =3D tcan4x5x_power_enable(priv->power, 1); - if (ret) + if (ret) { + dev_err(&spi->dev, "Enabling regulator failed %d\n", ret); goto out_m_can_class_free_dev; + } =20 ret =3D tcan4x5x_verify_version(priv, &version_info); if (ret) goto out_power; =20 ret =3D tcan4x5x_get_gpios(mcan_class, version_info); - if (ret) + if (ret) { + dev_err(&spi->dev, "Getting gpios failed %d\n", ret); goto out_power; + } =20 ret =3D tcan4x5x_init(mcan_class); - if (ret) + if (ret) { + dev_err(&spi->dev, "tcan initialization failed %d\n", ret); goto out_power; + } =20 ret =3D m_can_class_register(mcan_class); - if (ret) + if (ret) { + dev_err(&spi->dev, "Failed registering m_can device %d\n", ret); goto out_power; + } =20 netdev_info(mcan_class->net, "TCAN4X5X successfully initialized.\n"); return 0; --=20 2.40.1