Unverified Commit 1fccd182 authored by Xu Yilun's avatar Xu Yilun Committed by Mark Brown
Browse files

spi: altera: add platform data for slave information.



This patch introduces platform data for slave information, it allows
spi-altera to add new spi devices once master registration is done.

Signed-off-by: default avatarWu Hao <hao.wu@intel.com>
Signed-off-by: default avatarXu Yilun <yilun.xu@intel.com>
Signed-off-by: default avatarMatthew Gerlach <matthew.gerlach@linux.intel.com>
Signed-off-by: default avatarRuss Weight <russell.h.weight@intel.com>
Reviewed-by: default avatarTom Rix <trix@redhat.com>
Link: https://lore.kernel.org/r/1591845911-10197-4-git-send-email-yilun.xu@intel.com


Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent 8e04187c
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -189,6 +189,7 @@ static int altera_spi_probe(struct platform_device *pdev)
	struct altera_spi *hw;
	struct spi_master *master;
	int err = -ENODEV;
	u16 i;

	master = spi_alloc_master(&pdev->dev, sizeof(struct altera_spi));
	if (!master)
@@ -244,6 +245,16 @@ static int altera_spi_probe(struct platform_device *pdev)
	err = devm_spi_register_master(&pdev->dev, master);
	if (err)
		goto exit;

	if (pdata) {
		for (i = 0; i < pdata->num_devices; i++) {
			if (!spi_new_device(master, pdata->devices + i))
				dev_warn(&pdev->dev,
					 "unable to create SPI device: %s\n",
					 pdata->devices[i].modalias);
		}
	}

	dev_info(&pdev->dev, "base %p, irq %d\n", hw->base, hw->irq);

	return 0;
+5 −0
Original line number Diff line number Diff line
@@ -14,11 +14,16 @@
 * @mode_bits:		Mode bits of SPI master.
 * @num_chipselect:	Number of chipselects.
 * @bits_per_word_mask:	bitmask of supported bits_per_word for transfers.
 * @num_devices:	Number of devices that shall be added when the driver
 *			is probed.
 * @devices:		The devices to add.
 */
struct altera_spi_platform_data {
	u16				mode_bits;
	u16				num_chipselect;
	u32				bits_per_word_mask;
	u16				num_devices;
	struct spi_board_info		*devices;
};

#endif /* __LINUX_SPI_ALTERA_H */