Message ID | 20210716135441.3235863-3-martin@geanix.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 4f45f3404960109843eaa92c8a4a850d6bdd9981 |
Headers | show |
Series | fpga/spi/hwmon: Initial support for Silicom N5010 PAC | expand |
On Fri, Jul 16, 2021 at 03:54:40PM +0200, Martin Hundebøll wrote: > From: Martin Hundebøll <mhu@silicom.dk> > > The Max10 BMC on the Silicom n5010 PAC is slightly different than the > existing BMCs, so use a dedicated feature revision detect it. Acked-by: Mark Brown <broonie@kernel.org>
On 7/16/21 6:54 AM, Martin Hundebøll wrote: > From: Martin Hundebøll <mhu@silicom.dk> > > The Max10 BMC on the Silicom n5010 PAC is slightly different than the > existing BMCs, so use a dedicated feature revision detect it. > > Signed-off-by: Martin Hundebøll <mhu@silicom.dk> > Reviewed-by: Moritz Fischer <mdf@kernel.org> > --- > > Changes since v4: > * Moved spi board_info structure from global/static scope > to function/stack scope > > Changes since v3: > * Changed "BMC's" to "BMCs" > * Added Moritz' Reviewed-by > > Changes since v2: > * None > > Changes since v1: > * use feature revision from struct dfl_device instead of reading it > from io-mem > > drivers/spi/spi-altera-dfl.c | 21 ++++++++++++--------- > 1 file changed, 12 insertions(+), 9 deletions(-) > > diff --git a/drivers/spi/spi-altera-dfl.c b/drivers/spi/spi-altera-dfl.c > index 39a3e1a032e0..44fc9ee13fc7 100644 > --- a/drivers/spi/spi-altera-dfl.c > +++ b/drivers/spi/spi-altera-dfl.c > @@ -104,13 +104,6 @@ static const struct regmap_config indirect_regbus_cfg = { > .reg_read = indirect_bus_reg_read, > }; > > -static struct spi_board_info m10_bmc_info = { > - .modalias = "m10-d5005", > - .max_speed_hz = 12500000, > - .bus_num = 0, > - .chip_select = 0, > -}; > - > static void config_spi_master(void __iomem *base, struct spi_master *master) > { > u64 v; > @@ -130,6 +123,7 @@ static void config_spi_master(void __iomem *base, struct spi_master *master) > > static int dfl_spi_altera_probe(struct dfl_device *dfl_dev) > { > + struct spi_board_info board_info = { 0 }; > struct device *dev = &dfl_dev->dev; > struct spi_master *master; > struct altera_spi *hw; > @@ -170,9 +164,18 @@ static int dfl_spi_altera_probe(struct dfl_device *dfl_dev) > goto exit; > } > > - if (!spi_new_device(master, &m10_bmc_info)) { > + if (dfl_dev->revision == FME_FEATURE_REV_MAX10_SPI_N5010) > + strscpy(board_info.modalias, "m10-n5010", SPI_NAME_SIZE); > + else > + strscpy(board_info.modalias, "m10-d5005", SPI_NAME_SIZE); > + > + board_info.max_speed_hz = 12500000; > + board_info.bus_num = 0; > + board_info.chip_select = 0; > + > + if (!spi_new_device(master, &board_info)) { > dev_err(dev, "%s failed to create SPI device: %s\n", > - __func__, m10_bmc_info.modalias); > + __func__, board_info.modalias); > } > Looks good to me. Reviewed-by: Tom Rix <trix@redhat.com> > return 0;
On Fri, Jul 16, 2021 at 06:33:35PM +0100, Mark Brown wrote: > On Fri, Jul 16, 2021 at 03:54:40PM +0200, Martin Hundebøll wrote: > > From: Martin Hundebøll <mhu@silicom.dk> > > > > The Max10 BMC on the Silicom n5010 PAC is slightly different than the > > existing BMCs, so use a dedicated feature revision detect it. > > Acked-by: Mark Brown <broonie@kernel.org> Mark do you want me to provide a tag for this and the previous commit to avoid conflicts for other FPGA changes or do you think it's easier to just pick both of them up through FPGA or SPI tree? - Moritz
On Fri, Jul 16, 2021 at 01:44:45PM -0700, Tom Rix wrote: > > On 7/16/21 6:54 AM, Martin Hundebøll wrote: > > From: Martin Hundebøll <mhu@silicom.dk> > > > > The Max10 BMC on the Silicom n5010 PAC is slightly different than the > > existing BMCs, so use a dedicated feature revision detect it. > > > > Signed-off-by: Martin Hundebøll <mhu@silicom.dk> > > Reviewed-by: Moritz Fischer <mdf@kernel.org> > > --- > > > > Changes since v4: > > * Moved spi board_info structure from global/static scope > > to function/stack scope > > > > Changes since v3: > > * Changed "BMC's" to "BMCs" > > * Added Moritz' Reviewed-by > > > > Changes since v2: > > * None > > > > Changes since v1: > > * use feature revision from struct dfl_device instead of reading it > > from io-mem > > > > drivers/spi/spi-altera-dfl.c | 21 ++++++++++++--------- > > 1 file changed, 12 insertions(+), 9 deletions(-) > > > > diff --git a/drivers/spi/spi-altera-dfl.c b/drivers/spi/spi-altera-dfl.c > > index 39a3e1a032e0..44fc9ee13fc7 100644 > > --- a/drivers/spi/spi-altera-dfl.c > > +++ b/drivers/spi/spi-altera-dfl.c > > @@ -104,13 +104,6 @@ static const struct regmap_config indirect_regbus_cfg = { > > .reg_read = indirect_bus_reg_read, > > }; > > -static struct spi_board_info m10_bmc_info = { > > - .modalias = "m10-d5005", > > - .max_speed_hz = 12500000, > > - .bus_num = 0, > > - .chip_select = 0, > > -}; > > - > > static void config_spi_master(void __iomem *base, struct spi_master *master) > > { > > u64 v; > > @@ -130,6 +123,7 @@ static void config_spi_master(void __iomem *base, struct spi_master *master) > > static int dfl_spi_altera_probe(struct dfl_device *dfl_dev) > > { > > + struct spi_board_info board_info = { 0 }; > > struct device *dev = &dfl_dev->dev; > > struct spi_master *master; > > struct altera_spi *hw; > > @@ -170,9 +164,18 @@ static int dfl_spi_altera_probe(struct dfl_device *dfl_dev) > > goto exit; > > } > > - if (!spi_new_device(master, &m10_bmc_info)) { > > + if (dfl_dev->revision == FME_FEATURE_REV_MAX10_SPI_N5010) > > + strscpy(board_info.modalias, "m10-n5010", SPI_NAME_SIZE); > > + else > > + strscpy(board_info.modalias, "m10-d5005", SPI_NAME_SIZE); > > + > > + board_info.max_speed_hz = 12500000; > > + board_info.bus_num = 0; > > + board_info.chip_select = 0; > > + > > + if (!spi_new_device(master, &board_info)) { > > dev_err(dev, "%s failed to create SPI device: %s\n", > > - __func__, m10_bmc_info.modalias); > > + __func__, board_info.modalias); > > } > > Looks good to me. > > Reviewed-by: Tom Rix <trix@redhat.com> > > > return 0; > Applied to for-next, Thanks
diff --git a/drivers/spi/spi-altera-dfl.c b/drivers/spi/spi-altera-dfl.c index 39a3e1a032e0..44fc9ee13fc7 100644 --- a/drivers/spi/spi-altera-dfl.c +++ b/drivers/spi/spi-altera-dfl.c @@ -104,13 +104,6 @@ static const struct regmap_config indirect_regbus_cfg = { .reg_read = indirect_bus_reg_read, }; -static struct spi_board_info m10_bmc_info = { - .modalias = "m10-d5005", - .max_speed_hz = 12500000, - .bus_num = 0, - .chip_select = 0, -}; - static void config_spi_master(void __iomem *base, struct spi_master *master) { u64 v; @@ -130,6 +123,7 @@ static void config_spi_master(void __iomem *base, struct spi_master *master) static int dfl_spi_altera_probe(struct dfl_device *dfl_dev) { + struct spi_board_info board_info = { 0 }; struct device *dev = &dfl_dev->dev; struct spi_master *master; struct altera_spi *hw; @@ -170,9 +164,18 @@ static int dfl_spi_altera_probe(struct dfl_device *dfl_dev) goto exit; } - if (!spi_new_device(master, &m10_bmc_info)) { + if (dfl_dev->revision == FME_FEATURE_REV_MAX10_SPI_N5010) + strscpy(board_info.modalias, "m10-n5010", SPI_NAME_SIZE); + else + strscpy(board_info.modalias, "m10-d5005", SPI_NAME_SIZE); + + board_info.max_speed_hz = 12500000; + board_info.bus_num = 0; + board_info.chip_select = 0; + + if (!spi_new_device(master, &board_info)) { dev_err(dev, "%s failed to create SPI device: %s\n", - __func__, m10_bmc_info.modalias); + __func__, board_info.modalias); } return 0;