Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fe1bd78b authored by Trent Piepho's avatar Trent Piepho Committed by Shawn Guo
Browse files

ARM: imx: Update spi_imx platform data to reflect current state



The docs for the spi_imx platform data still refer to a -32 offset used to
specify a native chip select.  This was removed in commit 602c8f44
("spi: imx: fix use of native chip-selects with devicetree") and no
longer works as documented.  Update documentation.

The macro MXC_SPI_CS() is no longer is needed.

If a board uses all native chip selects, then it's not necessary to
specify a chip select array at all, as all native is the default (this is
how device-tree configured SPI masters work too).  Most of the spi-imx
platform data users have their chip select arrays removed by this patch.

This patch also fixes a bug in mx31moboard introduced in the '602 commit.
When that board was updated in commit 901f26bc ("ARM: imx: set
correct chip_select in platform setup") to reflect the SPI change, only
SPI bus 2 was updated and SPI bus 1 was left with non-sequential chip
selects.  The mc13783 spi device on bus 1 had its chip select updated as
if it were on bus 2.

CC: Sascha Hauer <kernel@pengutronix.de>
CC: Fabio Estevam <fabio.estevam@nxp.com>
Acked-by: default avatarGreg Ungerer <gerg@linux-m68k.org>
Reviewed-by: default avatarOleksij Rempel <o.rempel@pengutronix.de>
Signed-off-by: default avatarTrent Piepho <tpiepho@impinj.com>
Signed-off-by: default avatarShawn Guo <shawnguo@kernel.org>
parent 60cc43fc
Loading
Loading
Loading
Loading
+2 −16
Original line number Diff line number Diff line
@@ -374,26 +374,12 @@ static struct imx_ssi_platform_data mx31_3ds_ssi_pdata = {
};

/* SPI */
static int spi0_internal_chipselect[] = {
	MXC_SPI_CS(0),
	MXC_SPI_CS(1),
	MXC_SPI_CS(2),
};

static const struct spi_imx_master spi0_pdata __initconst = {
	.chipselect	= spi0_internal_chipselect,
	.num_chipselect	= ARRAY_SIZE(spi0_internal_chipselect),
};

static int spi1_internal_chipselect[] = {
	MXC_SPI_CS(0),
	MXC_SPI_CS(1),
	MXC_SPI_CS(2),
	.num_chipselect	= 3,
};

static const struct spi_imx_master spi1_pdata __initconst = {
	.chipselect	= spi1_internal_chipselect,
	.num_chipselect	= ARRAY_SIZE(spi1_internal_chipselect),
	.num_chipselect	= 3,
};

static struct spi_board_info mx31_3ds_spi_devs[] __initdata = {
+2 −10
Original line number Diff line number Diff line
@@ -226,20 +226,12 @@ static void __init lilly1131_usb_init(void)

/* SPI */

static int spi_internal_chipselect[] = {
	MXC_SPI_CS(0),
	MXC_SPI_CS(1),
	MXC_SPI_CS(2),
};

static const struct spi_imx_master spi0_pdata __initconst = {
	.chipselect = spi_internal_chipselect,
	.num_chipselect = ARRAY_SIZE(spi_internal_chipselect),
	.num_chipselect = 3,
};

static const struct spi_imx_master spi1_pdata __initconst = {
	.chipselect = spi_internal_chipselect,
	.num_chipselect = ARRAY_SIZE(spi_internal_chipselect),
	.num_chipselect = 3,
};

static struct mc13xxx_platform_data mc13783_pdata __initdata = {
+2 −14
Original line number Diff line number Diff line
@@ -83,15 +83,8 @@ static const struct imxuart_platform_data uart_pdata __initconst = {
};

/* SPI */
static int spi0_internal_chipselect[] = {
	MXC_SPI_CS(0),
	MXC_SPI_CS(1),
	MXC_SPI_CS(2),
};

static const struct spi_imx_master spi0_pdata __initconst = {
	.chipselect	= spi0_internal_chipselect,
	.num_chipselect	= ARRAY_SIZE(spi0_internal_chipselect),
	.num_chipselect	= 3,
};

static const struct mxc_nand_platform_data
@@ -133,13 +126,8 @@ static struct platform_device smsc911x_device = {
 * The MC13783 is the only hard-wired SPI device on the module.
 */

static int spi1_internal_chipselect[] = {
	MXC_SPI_CS(0),
};

static const struct spi_imx_master spi1_pdata __initconst = {
	.chipselect	= spi1_internal_chipselect,
	.num_chipselect	= ARRAY_SIZE(spi1_internal_chipselect),
	.num_chipselect	= 1,
};

static struct mc13xxx_platform_data mc13783_pdata __initdata = {
+3 −14
Original line number Diff line number Diff line
@@ -152,14 +152,8 @@ static const struct imxi2c_platform_data moboard_i2c1_data __initconst = {
	.bitrate = 100000,
};

static int moboard_spi1_cs[] = {
	MXC_SPI_CS(0),
	MXC_SPI_CS(2),
};

static const struct spi_imx_master moboard_spi1_pdata __initconst = {
	.chipselect	= moboard_spi1_cs,
	.num_chipselect	= ARRAY_SIZE(moboard_spi1_cs),
	.num_chipselect	= 3,
};

static struct regulator_consumer_supply sdhc_consumers[] = {
@@ -296,19 +290,14 @@ static struct spi_board_info moboard_spi_board_info[] __initdata = {
		/* irq number is run-time assigned */
		.max_speed_hz = 300000,
		.bus_num = 1,
		.chip_select = 1,
		.chip_select = 0,
		.platform_data = &moboard_pmic,
		.mode = SPI_CS_HIGH,
	},
};

static int moboard_spi2_cs[] = {
	MXC_SPI_CS(0), MXC_SPI_CS(1),
};

static const struct spi_imx_master moboard_spi2_pdata __initconst = {
	.chipselect	= moboard_spi2_cs,
	.num_chipselect	= ARRAY_SIZE(moboard_spi2_cs),
	.num_chipselect	= 2,
};

#define SDHC1_CD IOMUX_TO_GPIO(MX31_PIN_ATA_CS0)
+1 −4
Original line number Diff line number Diff line
@@ -56,11 +56,8 @@ static struct spi_board_info pcm037_spi_dev[] = {
};

/* Platform Data for MXC CSPI */
static int pcm037_spi1_cs[] = { MXC_SPI_CS(0), MXC_SPI_CS(1), };

static const struct spi_imx_master pcm037_spi1_pdata __initconst = {
	.chipselect = pcm037_spi1_cs,
	.num_chipselect = ARRAY_SIZE(pcm037_spi1_cs),
	.num_chipselect = 2,
};

/* GPIO-keys input device */
Loading