Commit b6e6dc80 authored by Mark Brown's avatar Mark Brown

Merge remote-tracking branches 'spi/topic/fsl-dspi', 'spi/topic/gpio',...

Merge remote-tracking branches 'spi/topic/fsl-dspi', 'spi/topic/gpio', 'spi/topic/imx' and 'spi/topic/orion' into spi-next
ARM Freescale DSPI controller ARM Freescale DSPI controller
Required properties: Required properties:
- compatible : "fsl,vf610-dspi" - compatible : "fsl,vf610-dspi", "fsl,ls1021a-v1.0-dspi", "fsl,ls2085a-dspi"
- reg : Offset and length of the register set for the device - reg : Offset and length of the register set for the device
- interrupts : Should contain SPI controller interrupt - interrupts : Should contain SPI controller interrupt
- clocks: from common clock binding: handle to dspi clock. - clocks: from common clock binding: handle to dspi clock.
......
Marvell Orion SPI device Marvell Orion SPI device
Required properties: Required properties:
- compatible : should be "marvell,orion-spi" or "marvell,armada-370-spi". - compatible : should be on of the following:
- "marvell,orion-spi" for the Orion, mv78x00, Kirkwood and Dove SoCs
- "marvell,armada-370-spi", for the Armada 370 SoCs
- "marvell,armada-375-spi", for the Armada 375 SoCs
- "marvell,armada-380-spi", for the Armada 38x SoCs
- "marvell,armada-390-spi", for the Armada 39x SoCs
- "marvell,armada-xp-spi", for the Armada XP SoCs
- reg : offset and length of the register set for the device - reg : offset and length of the register set for the device
- cell-index : Which of multiple SPI controllers is this. - cell-index : Which of multiple SPI controllers is this.
Optional properties: Optional properties:
......
...@@ -222,7 +222,7 @@ config SPI_FALCON ...@@ -222,7 +222,7 @@ config SPI_FALCON
config SPI_GPIO config SPI_GPIO
tristate "GPIO-based bitbanging SPI Master" tristate "GPIO-based bitbanging SPI Master"
depends on GPIOLIB depends on GPIOLIB || COMPILE_TEST
select SPI_BITBANG select SPI_BITBANG
help help
This simple GPIO bitbanging SPI master uses the arch-neutral GPIO This simple GPIO bitbanging SPI master uses the arch-neutral GPIO
...@@ -328,7 +328,7 @@ config SPI_MESON_SPIFC ...@@ -328,7 +328,7 @@ config SPI_MESON_SPIFC
config SPI_OC_TINY config SPI_OC_TINY
tristate "OpenCores tiny SPI" tristate "OpenCores tiny SPI"
depends on GPIOLIB depends on GPIOLIB || COMPILE_TEST
select SPI_BITBANG select SPI_BITBANG
help help
This is the driver for OpenCores tiny SPI master controller. This is the driver for OpenCores tiny SPI master controller.
......
This diff is collapsed.
...@@ -674,7 +674,7 @@ static struct spi_imx_devtype_data imx51_ecspi_devtype_data = { ...@@ -674,7 +674,7 @@ static struct spi_imx_devtype_data imx51_ecspi_devtype_data = {
.devtype = IMX51_ECSPI, .devtype = IMX51_ECSPI,
}; };
static struct platform_device_id spi_imx_devtype[] = { static const struct platform_device_id spi_imx_devtype[] = {
{ {
.name = "imx1-cspi", .name = "imx1-cspi",
.driver_data = (kernel_ulong_t) &imx1_cspi_devtype_data, .driver_data = (kernel_ulong_t) &imx1_cspi_devtype_data,
......
...@@ -391,7 +391,7 @@ static const struct orion_spi_dev orion_spi_dev_data = { ...@@ -391,7 +391,7 @@ static const struct orion_spi_dev orion_spi_dev_data = {
.prescale_mask = ORION_SPI_CLK_PRESCALE_MASK, .prescale_mask = ORION_SPI_CLK_PRESCALE_MASK,
}; };
static const struct orion_spi_dev armada_spi_dev_data = { static const struct orion_spi_dev armada_370_spi_dev_data = {
.typ = ARMADA_SPI, .typ = ARMADA_SPI,
.min_divisor = 4, .min_divisor = 4,
.max_divisor = 1920, .max_divisor = 1920,
...@@ -399,9 +399,46 @@ static const struct orion_spi_dev armada_spi_dev_data = { ...@@ -399,9 +399,46 @@ static const struct orion_spi_dev armada_spi_dev_data = {
.prescale_mask = ARMADA_SPI_CLK_PRESCALE_MASK, .prescale_mask = ARMADA_SPI_CLK_PRESCALE_MASK,
}; };
static const struct orion_spi_dev armada_xp_spi_dev_data = {
.typ = ARMADA_SPI,
.max_hz = 50000000,
.max_divisor = 1920,
.prescale_mask = ARMADA_SPI_CLK_PRESCALE_MASK,
};
static const struct orion_spi_dev armada_375_spi_dev_data = {
.typ = ARMADA_SPI,
.min_divisor = 15,
.max_divisor = 1920,
.prescale_mask = ARMADA_SPI_CLK_PRESCALE_MASK,
};
static const struct of_device_id orion_spi_of_match_table[] = { static const struct of_device_id orion_spi_of_match_table[] = {
{ .compatible = "marvell,orion-spi", .data = &orion_spi_dev_data, }, {
{ .compatible = "marvell,armada-370-spi", .data = &armada_spi_dev_data, }, .compatible = "marvell,orion-spi",
.data = &orion_spi_dev_data,
},
{
.compatible = "marvell,armada-370-spi",
.data = &armada_370_spi_dev_data,
},
{
.compatible = "marvell,armada-375-spi",
.data = &armada_375_spi_dev_data,
},
{
.compatible = "marvell,armada-380-spi",
.data = &armada_xp_spi_dev_data,
},
{
.compatible = "marvell,armada-390-spi",
.data = &armada_xp_spi_dev_data,
},
{
.compatible = "marvell,armada-xp-spi",
.data = &armada_xp_spi_dev_data,
},
{} {}
}; };
MODULE_DEVICE_TABLE(of, orion_spi_of_match_table); MODULE_DEVICE_TABLE(of, orion_spi_of_match_table);
...@@ -473,9 +510,11 @@ static int orion_spi_probe(struct platform_device *pdev) ...@@ -473,9 +510,11 @@ static int orion_spi_probe(struct platform_device *pdev)
"marvell,armada-370-spi")) "marvell,armada-370-spi"))
master->max_speed_hz = min(devdata->max_hz, master->max_speed_hz = min(devdata->max_hz,
DIV_ROUND_UP(tclk_hz, devdata->min_divisor)); DIV_ROUND_UP(tclk_hz, devdata->min_divisor));
else else if (devdata->min_divisor)
master->max_speed_hz = master->max_speed_hz =
DIV_ROUND_UP(tclk_hz, devdata->min_divisor); DIV_ROUND_UP(tclk_hz, devdata->min_divisor);
else
master->max_speed_hz = devdata->max_hz;
master->min_speed_hz = DIV_ROUND_UP(tclk_hz, devdata->max_divisor); master->min_speed_hz = DIV_ROUND_UP(tclk_hz, devdata->max_divisor);
r = platform_get_resource(pdev, IORESOURCE_MEM, 0); r = platform_get_resource(pdev, IORESOURCE_MEM, 0);
......
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