diff mbox series

[v5,2/3] spi: spi-altera-dfl: support n5010 feature revision

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

Commit Message

Martin Hundebøll July 16, 2021, 1:54 p.m. UTC
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(-)

Comments

Mark Brown July 16, 2021, 5:33 p.m. UTC | #1
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>
Tom Rix July 16, 2021, 8:44 p.m. UTC | #2
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;
Moritz Fischer July 17, 2021, 11:56 p.m. UTC | #3
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
Moritz Fischer July 29, 2021, 8:05 p.m. UTC | #4
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 mbox series

Patch

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;