Commit dba1572c authored by Thomas Kopp's avatar Thomas Kopp Committed by Marc Kleine-Budde

can: mcp25xxfd: narrow down wildcards in device tree bindings to "microchip,mcp251xfd"

The wildcard should be narrowed down to prevent existing and future devices
that are not compatible from matching. It is very unlikely that incompatible
devices will be released that do not match the wildcard.

Discussion Reference: https://lore.kernel.org/r/CAMuHMdVkwGjr6dJuMyhQNqFoJqbh6Ec5V2b5LenCshwpM2SDsQ@mail.gmail.comReported-by: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: default avatarThomas Kopp <thomas.kopp@microchip.com>
Link: https://lore.kernel.org/r/20200930091423.755-1-thomas.kopp@microchip.comSigned-off-by: default avatarMarc Kleine-Budde <mkl@pengutronix.de>
parent 0e051294
...@@ -41,10 +41,10 @@ static const struct mcp25xxfd_devtype_data mcp25xxfd_devtype_data_mcp2518fd = { ...@@ -41,10 +41,10 @@ static const struct mcp25xxfd_devtype_data mcp25xxfd_devtype_data_mcp2518fd = {
}; };
/* Autodetect model, start with CRC enabled. */ /* Autodetect model, start with CRC enabled. */
static const struct mcp25xxfd_devtype_data mcp25xxfd_devtype_data_mcp25xxfd = { static const struct mcp25xxfd_devtype_data mcp25xxfd_devtype_data_mcp251xfd = {
.quirks = MCP25XXFD_QUIRK_CRC_REG | MCP25XXFD_QUIRK_CRC_RX | .quirks = MCP25XXFD_QUIRK_CRC_REG | MCP25XXFD_QUIRK_CRC_RX |
MCP25XXFD_QUIRK_CRC_TX | MCP25XXFD_QUIRK_ECC, MCP25XXFD_QUIRK_CRC_TX | MCP25XXFD_QUIRK_ECC,
.model = MCP25XXFD_MODEL_MCP25XXFD, .model = MCP25XXFD_MODEL_MCP251XFD,
}; };
static const struct can_bittiming_const mcp25xxfd_bittiming_const = { static const struct can_bittiming_const mcp25xxfd_bittiming_const = {
...@@ -78,8 +78,8 @@ static const char *__mcp25xxfd_get_model_str(enum mcp25xxfd_model model) ...@@ -78,8 +78,8 @@ static const char *__mcp25xxfd_get_model_str(enum mcp25xxfd_model model)
return "MCP2517FD"; break; return "MCP2517FD"; break;
case MCP25XXFD_MODEL_MCP2518FD: case MCP25XXFD_MODEL_MCP2518FD:
return "MCP2518FD"; break; return "MCP2518FD"; break;
case MCP25XXFD_MODEL_MCP25XXFD: case MCP25XXFD_MODEL_MCP251XFD:
return "MCP25xxFD"; break; return "MCP251xFD"; break;
} }
return "<unknown>"; return "<unknown>";
...@@ -2494,7 +2494,7 @@ static int mcp25xxfd_register_chip_detect(struct mcp25xxfd_priv *priv) ...@@ -2494,7 +2494,7 @@ static int mcp25xxfd_register_chip_detect(struct mcp25xxfd_priv *priv)
else else
devtype_data = &mcp25xxfd_devtype_data_mcp2517fd; devtype_data = &mcp25xxfd_devtype_data_mcp2517fd;
if (!mcp25xxfd_is_25XX(priv) && if (!mcp25xxfd_is_251X(priv) &&
priv->devtype_data.model != devtype_data->model) { priv->devtype_data.model != devtype_data->model) {
netdev_info(ndev, netdev_info(ndev,
"Detected %s, but firmware specifies a %s. Fixing up.", "Detected %s, but firmware specifies a %s. Fixing up.",
...@@ -2703,8 +2703,8 @@ static const struct of_device_id mcp25xxfd_of_match[] = { ...@@ -2703,8 +2703,8 @@ static const struct of_device_id mcp25xxfd_of_match[] = {
.compatible = "microchip,mcp2518fd", .compatible = "microchip,mcp2518fd",
.data = &mcp25xxfd_devtype_data_mcp2518fd, .data = &mcp25xxfd_devtype_data_mcp2518fd,
}, { }, {
.compatible = "microchip,mcp25xxfd", .compatible = "microchip,mcp251xfd",
.data = &mcp25xxfd_devtype_data_mcp25xxfd, .data = &mcp25xxfd_devtype_data_mcp251xfd,
}, { }, {
/* sentinel */ /* sentinel */
}, },
...@@ -2719,8 +2719,8 @@ static const struct spi_device_id mcp25xxfd_id_table[] = { ...@@ -2719,8 +2719,8 @@ static const struct spi_device_id mcp25xxfd_id_table[] = {
.name = "mcp2518fd", .name = "mcp2518fd",
.driver_data = (kernel_ulong_t)&mcp25xxfd_devtype_data_mcp2518fd, .driver_data = (kernel_ulong_t)&mcp25xxfd_devtype_data_mcp2518fd,
}, { }, {
.name = "mcp25xxfd", .name = "mcp251xfd",
.driver_data = (kernel_ulong_t)&mcp25xxfd_devtype_data_mcp25xxfd, .driver_data = (kernel_ulong_t)&mcp25xxfd_devtype_data_mcp251xfd,
}, { }, {
/* sentinel */ /* sentinel */
}, },
......
...@@ -553,7 +553,7 @@ struct mcp25xxfd_regs_status { ...@@ -553,7 +553,7 @@ struct mcp25xxfd_regs_status {
enum mcp25xxfd_model { enum mcp25xxfd_model {
MCP25XXFD_MODEL_MCP2517FD = 0x2517, MCP25XXFD_MODEL_MCP2517FD = 0x2517,
MCP25XXFD_MODEL_MCP2518FD = 0x2518, MCP25XXFD_MODEL_MCP2518FD = 0x2518,
MCP25XXFD_MODEL_MCP25XXFD = 0xffff, /* autodetect model */ MCP25XXFD_MODEL_MCP251XFD = 0xffff, /* autodetect model */
}; };
struct mcp25xxfd_devtype_data { struct mcp25xxfd_devtype_data {
...@@ -607,7 +607,7 @@ mcp25xxfd_is_##_model(const struct mcp25xxfd_priv *priv) \ ...@@ -607,7 +607,7 @@ mcp25xxfd_is_##_model(const struct mcp25xxfd_priv *priv) \
MCP25XXFD_IS(2517); MCP25XXFD_IS(2517);
MCP25XXFD_IS(2518); MCP25XXFD_IS(2518);
MCP25XXFD_IS(25XX); MCP25XXFD_IS(251X);
static inline u8 mcp25xxfd_first_byte_set(u32 mask) static inline u8 mcp25xxfd_first_byte_set(u32 mask)
{ {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment