From: Marc Kleine-Budde <mkl@pengutronix.de>
To: netdev@vger.kernel.org
Cc: davem@davemloft.net, kuba@kernel.org, linux-can@vger.kernel.org,
kernel@pengutronix.de,
Markus Schneider-Pargmann <msp@baylibre.com>,
Marc Kleine-Budde <mkl@pengutronix.de>
Subject: [PATCH net-next 39/39] can: tcan4x5x: Specify separate read/write ranges
Date: Mon, 12 Dec 2022 12:30:45 +0100 [thread overview]
Message-ID: <20221212113045.222493-40-mkl@pengutronix.de> (raw)
In-Reply-To: <20221212113045.222493-1-mkl@pengutronix.de>
From: Markus Schneider-Pargmann <msp@baylibre.com>
Specify exactly which registers are read/writeable in the chip. This
is supposed to help detect any violations in the future.
Signed-off-by: Markus Schneider-Pargmann <msp@baylibre.com>
Link: https://lore.kernel.org/all/20221206115728.1056014-12-msp@baylibre.com
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
---
drivers/net/can/m_can/tcan4x5x-regmap.c | 43 +++++++++++++++++++++----
1 file changed, 37 insertions(+), 6 deletions(-)
diff --git a/drivers/net/can/m_can/tcan4x5x-regmap.c b/drivers/net/can/m_can/tcan4x5x-regmap.c
index 33aed989e42a..2b218ce04e9f 100644
--- a/drivers/net/can/m_can/tcan4x5x-regmap.c
+++ b/drivers/net/can/m_can/tcan4x5x-regmap.c
@@ -90,16 +90,47 @@ static int tcan4x5x_regmap_read(void *context,
return 0;
}
-static const struct regmap_range tcan4x5x_reg_table_yes_range[] = {
+static const struct regmap_range tcan4x5x_reg_table_wr_range[] = {
+ /* Device ID and SPI Registers */
+ 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 */
+ regmap_reg_range(0x100c, 0x102c),
+ regmap_reg_range(0x1048, 0x1048),
+ regmap_reg_range(0x1050, 0x105c),
+ regmap_reg_range(0x1080, 0x1088),
+ regmap_reg_range(0x1090, 0x1090),
+ regmap_reg_range(0x1098, 0x10a0),
+ regmap_reg_range(0x10a8, 0x10b0),
+ regmap_reg_range(0x10b8, 0x10c0),
+ regmap_reg_range(0x10c8, 0x10c8),
+ regmap_reg_range(0x10d0, 0x10d4),
+ regmap_reg_range(0x10e0, 0x10e4),
+ regmap_reg_range(0x10f0, 0x10f0),
+ regmap_reg_range(0x10f8, 0x10f8),
+ /* MRAM */
+ regmap_reg_range(0x8000, 0x87fc),
+};
+
+static const struct regmap_range tcan4x5x_reg_table_rd_range[] = {
regmap_reg_range(0x0000, 0x0010), /* Device ID and SPI Registers */
regmap_reg_range(0x0800, 0x0830), /* Device configuration registers and Interrupt Flags*/
regmap_reg_range(0x1000, 0x10fc), /* M_CAN */
regmap_reg_range(0x8000, 0x87fc), /* MRAM */
};
-static const struct regmap_access_table tcan4x5x_reg_table = {
- .yes_ranges = tcan4x5x_reg_table_yes_range,
- .n_yes_ranges = ARRAY_SIZE(tcan4x5x_reg_table_yes_range),
+static const struct regmap_access_table tcan4x5x_reg_table_wr = {
+ .yes_ranges = tcan4x5x_reg_table_wr_range,
+ .n_yes_ranges = ARRAY_SIZE(tcan4x5x_reg_table_wr_range),
+};
+
+static const struct regmap_access_table tcan4x5x_reg_table_rd = {
+ .yes_ranges = tcan4x5x_reg_table_rd_range,
+ .n_yes_ranges = ARRAY_SIZE(tcan4x5x_reg_table_rd_range),
};
static const struct regmap_config tcan4x5x_regmap = {
@@ -107,8 +138,8 @@ static const struct regmap_config tcan4x5x_regmap = {
.reg_stride = 4,
.pad_bits = 8,
.val_bits = 32,
- .wr_table = &tcan4x5x_reg_table,
- .rd_table = &tcan4x5x_reg_table,
+ .wr_table = &tcan4x5x_reg_table_wr,
+ .rd_table = &tcan4x5x_reg_table_rd,
.max_register = TCAN4X5X_MAX_REGISTER,
.cache_type = REGCACHE_NONE,
.read_flag_mask = (__force unsigned long)
--
2.35.1
prev parent reply other threads:[~2022-12-12 11:32 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-12-12 11:30 [PATCH net-next 0/39] pull-request: can-next 2022-12-12 Marc Kleine-Budde
2022-12-12 11:30 ` [PATCH net-next 01/39] can: kvaser_usb: kvaser_usb_set_bittiming(): fix redundant initialization warning for err Marc Kleine-Budde
2022-12-12 12:20 ` patchwork-bot+netdevbpf
2022-12-12 11:30 ` [PATCH net-next 02/39] can: kvaser_usb: kvaser_usb_set_{,data}bittiming(): remove empty lines in variable declaration Marc Kleine-Budde
2022-12-12 11:30 ` [PATCH net-next 03/39] can: rcar_canfd: rcar_canfd_probe: Add struct rcar_canfd_hw_info to driver data Marc Kleine-Budde
2022-12-12 11:30 ` [PATCH net-next 04/39] can: m_can: sort header inclusion alphabetically Marc Kleine-Budde
2022-12-12 11:30 ` [PATCH net-next 05/39] can: rcar_canfd: Add max_channels to struct rcar_canfd_hw_info Marc Kleine-Budde
2022-12-12 11:30 ` [PATCH net-next 06/39] can: rcar_canfd: Add shared_global_irqs " Marc Kleine-Budde
2022-12-12 11:30 ` [PATCH net-next 07/39] can: rcar_canfd: Add postdiv " Marc Kleine-Budde
2022-12-12 11:30 ` [PATCH net-next 08/39] can: rcar_canfd: Add multi_channel_irqs " Marc Kleine-Budde
2022-12-12 11:30 ` [PATCH net-next 09/39] can: ctucanfd: Drop obsolete dependency on COMPILE_TEST Marc Kleine-Budde
2022-12-12 11:30 ` [PATCH net-next 10/39] can: etas_es58x: sort the includes by alphabetic order Marc Kleine-Budde
2022-12-12 11:30 ` [PATCH net-next 11/39] can: flexcan: add auto stop mode for IMX93 to support wakeup Marc Kleine-Budde
2022-12-13 2:22 ` Bough Chen
2022-12-13 8:11 ` Marc Kleine-Budde
2022-12-12 11:30 ` [PATCH net-next 12/39] can: etas_es58x: add devlink support Marc Kleine-Budde
2022-12-12 11:30 ` [PATCH net-next 13/39] dt-bindings: can: fsl,flexcan: add imx93 compatible Marc Kleine-Budde
2022-12-12 11:30 ` [PATCH net-next 14/39] can: etas_es58x: add devlink port support Marc Kleine-Budde
2022-12-12 11:30 ` [PATCH net-next 15/39] dt-bindings: can: renesas,rcar-canfd: Document RZ/Five SoC Marc Kleine-Budde
2022-12-12 11:30 ` [PATCH net-next 16/39] USB: core: export usb_cache_string() Marc Kleine-Budde
2022-12-12 11:30 ` [PATCH net-next 17/39] can: c_can: use devm_platform_get_and_ioremap_resource() Marc Kleine-Budde
2022-12-12 11:30 ` [PATCH net-next 18/39] net: devlink: add DEVLINK_INFO_VERSION_GENERIC_FW_BOOTLOADER Marc Kleine-Budde
2022-12-12 11:30 ` [PATCH net-next 19/39] can: etas_es58x: export product information through devlink_ops::info_get() Marc Kleine-Budde
2022-12-12 11:30 ` [PATCH net-next 20/39] can: etas_es58x: remove es58x_get_product_info() Marc Kleine-Budde
2022-12-12 11:30 ` [PATCH net-next 21/39] Documentation: devlink: add devlink documentation for the etas_es58x driver Marc Kleine-Budde
2022-12-12 11:30 ` [PATCH net-next 22/39] can: ucan: use strscpy() to instead of strncpy() Marc Kleine-Budde
2022-12-12 11:30 ` [PATCH net-next 23/39] net: af_can: remove useless parameter 'err' in 'can_rx_register()' Marc Kleine-Budde
2022-12-12 11:30 ` [PATCH net-next 24/39] can: ucan: remove unused ucan_priv::intf Marc Kleine-Budde
2022-12-12 11:30 ` [PATCH net-next 25/39] can: gs_usb: remove gs_can::iface Marc Kleine-Budde
2022-12-12 11:30 ` [PATCH net-next 26/39] can: m_can: Call the RAM init directly from m_can_chip_config Marc Kleine-Budde
2022-12-12 11:30 ` [PATCH net-next 27/39] can: raw: add support for SO_MARK Marc Kleine-Budde
2022-12-12 11:30 ` [PATCH net-next 28/39] dt-bindings: can: renesas,rcar-canfd: Fix number of channels for R-Car V3U Marc Kleine-Budde
2022-12-12 11:30 ` [PATCH net-next 29/39] can: m_can: Eliminate double read of TXFQS in tx_handler Marc Kleine-Budde
2022-12-12 11:30 ` [PATCH net-next 30/39] can: m_can: Avoid reading irqstatus twice Marc Kleine-Budde
2022-12-12 11:30 ` [PATCH net-next 31/39] can: m_can: Read register PSR only on error Marc Kleine-Budde
2022-12-12 11:30 ` [PATCH net-next 32/39] can: m_can: Count TXE FIFO getidx in the driver Marc Kleine-Budde
2022-12-12 11:30 ` [PATCH net-next 33/39] can: m_can: Count read getindex " Marc Kleine-Budde
2022-12-12 11:30 ` [PATCH net-next 34/39] can: m_can: Batch acknowledge transmit events Marc Kleine-Budde
2022-12-12 11:30 ` [PATCH net-next 35/39] can: m_can: Batch acknowledge rx fifo Marc Kleine-Budde
2022-12-12 11:30 ` [PATCH net-next 36/39] can: tcan4x5x: Remove invalid write in clear_interrupts Marc Kleine-Budde
2022-12-12 11:30 ` [PATCH net-next 37/39] can: tcan4x5x: Fix use of register error status mask Marc Kleine-Budde
2022-12-12 11:30 ` [PATCH net-next 38/39] can: tcan4x5x: Fix register range of first two blocks Marc Kleine-Budde
2022-12-12 11:30 ` Marc Kleine-Budde [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20221212113045.222493-40-mkl@pengutronix.de \
--to=mkl@pengutronix.de \
--cc=davem@davemloft.net \
--cc=kernel@pengutronix.de \
--cc=kuba@kernel.org \
--cc=linux-can@vger.kernel.org \
--cc=msp@baylibre.com \
--cc=netdev@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).