[PATCH 1/6] mc13xxx: Define maximum SPI clock frequency global to driver

Sascha Hauer s.hauer at pengutronix.de
Thu Jul 19 13:55:12 EDT 2012


On Thu, Jul 19, 2012 at 07:30:12PM +0400, Alexander Shiyan wrote:
> This patch provide setup for SPI clk frequency global to driver.
> For MC13783 maximum clock frequency is 20 MHz,
> for MC13892 maximum clock frequency is 26 MHz,
> so we define 20 MHz as a maximum SPI clk.
> 
> Signed-off-by: Alexander Shiyan <shc_work at mail.ru>
> ---
>  arch/arm/boards/ccxmx51/ccxmx51.c          |    1 -
>  arch/arm/boards/freescale-mx51-pdk/board.c |    1 -
>  arch/arm/boards/pcm038/pcm038.c            |    1 -
>  drivers/mfd/mc13xxx.c                      |    1 +
>  4 files changed, 1 insertions(+), 3 deletions(-)
> 
> diff --git a/arch/arm/boards/ccxmx51/ccxmx51.c b/arch/arm/boards/ccxmx51/ccxmx51.c
> index f494174..f309e0c 100644
> --- a/arch/arm/boards/ccxmx51/ccxmx51.c
> +++ b/arch/arm/boards/ccxmx51/ccxmx51.c
> @@ -191,7 +191,6 @@ static struct spi_imx_master ecspi_0_data = {
>  static const struct spi_board_info ccxmx51_spi_board_info[] = {
>  	{
>  		.name		= "mc13xxx-spi",
> -		.max_speed_hz	= 6000000,
>  		.bus_num	= 0,
>  		.chip_select	= 0,
>  	},
> diff --git a/arch/arm/boards/freescale-mx51-pdk/board.c b/arch/arm/boards/freescale-mx51-pdk/board.c
> index 3a568d0..7c2c8fe 100644
> --- a/arch/arm/boards/freescale-mx51-pdk/board.c
> +++ b/arch/arm/boards/freescale-mx51-pdk/board.c
> @@ -117,7 +117,6 @@ static struct spi_imx_master spi_0_data = {
>  static const struct spi_board_info mx51_babbage_spi_board_info[] = {
>  	{
>  		.name = "mc13xxx-spi",
> -		.max_speed_hz = 300000,
>  		.bus_num = 0,
>  		.chip_select = 0,
>  	},
> diff --git a/arch/arm/boards/pcm038/pcm038.c b/arch/arm/boards/pcm038/pcm038.c
> index badc978..fa82b02 100644
> --- a/arch/arm/boards/pcm038/pcm038.c
> +++ b/arch/arm/boards/pcm038/pcm038.c
> @@ -59,7 +59,6 @@ static struct spi_imx_master pcm038_spi_0_data = {
>  static struct spi_board_info pcm038_spi_board_info[] = {
>  	{
>  		.name = "mc13xxx-spi",
> -		.max_speed_hz = 3000000,
>  		.bus_num = 0,
>  		.chip_select = 0,
>  	}
> diff --git a/drivers/mfd/mc13xxx.c b/drivers/mfd/mc13xxx.c
> index 2934e9d..8bb0d00 100644
> --- a/drivers/mfd/mc13xxx.c
> +++ b/drivers/mfd/mc13xxx.c
> @@ -297,6 +297,7 @@ static int mc_probe(struct device_d *dev, enum mc13xxx_mode mode)
>  		mc_dev->spi = dev->type_data;
>  		mc_dev->spi->mode = SPI_MODE_0 | SPI_CS_HIGH;
>  		mc_dev->spi->bits_per_word = 32;
> +		mc_dev->spi->max_speed_hz = 20000000;

The values indeed look quite arbitrary, but it may be that a hardware
design does not support such high frequencies. Maybe better

		if (!mc_dev->spi->max_speed_hz)
			mc_dev->spi->max_speed_hz = 20000000

?

Sascha

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |



More information about the barebox mailing list