AnsweredAssumed Answered

problem with spidev on iMX6DL

Question asked by Rafal Wegner on Sep 12, 2014
Latest reply on Sep 17, 2014 by alejandrolozano

Hello everybody!

 

Currently I am trying to enable the spidev driver for the SPI interface on the board with MX6DL working under Linux.On my board I have fpga chip from altera connected to IMX6DL. I have changed configuration file for my board adding:

 

#define SABREAUTO_ECSPI2_CS1    IMX_GPIO_NR(5, 9)
#define SABREAUTO_ECSPI2_CS0    IMX_GPIO_NR(5, 12)

 

static int mx6q_sabreauto_spi_cs[] = {

   SABREAUTO_ECSPI2_CS0,

   SABREAUTO_ECSPI2_CS1,

};

 

static const struct spi_imx_master mx6q_sabreauto_spi_data __initconst = {

    .chipselect = mx6q_sabreauto_spi_cs,

    .num_chipselect = ARRAY_SIZE(mx6q_sabreauto_spi_cs),

};

 

I have changed existing m25p32_spi0_board_info struct to use spidev:

 

static struct spi_board_info m25p32_spi0_board_info[] __initdata = {

    {

        /* The modalias must be the same as spi device driver name */

        .modalias    = "spidev",

        .max_speed_hz    = 70000000,

        .bus_num    = 1,

        .chip_select    = 0,

        .mode = SPI_MODE_0,

    },

};

 

static void spi_device_init(void)

{

    spi_register_board_info(m25p32_spi0_board_info,

                ARRAY_SIZE(m25p32_spi0_board_info));

}

 

spi_device_init function is called inside mx6_board_init after:

 

imx6q_add_ecspi(1, &mx6q_sabreauto_spi_data);

 

The result is that I don't see entry in /dev eg. /dev/spidevx.y as I would expect.

No matter how I change configuration of my board I always see entries /dev/spi-0 to /dev/spi-4 - don't know what it is.

 

$ find -name '*spi*'

./dev/spi-2

./dev/spi-0

./dev/spi-3

./dev/spi-1

./dev/spi-4

./proc/irq/64/spi_imx

./sys/devices/platform/imx6q-ecspi.1

./sys/devices/platform/imx6q-ecspi.1/spi_master

./sys/devices/platform/imx6q-ecspi.1/spi_master/spi1

./sys/devices/platform/imx6q-ecspi.1/spi_master/spi1/spi1.0

./sys/devices/platform/imx6q-ecspi.1/spi_master/spi1/spi1.0/spidev

./sys/devices/platform/imx6q-ecspi.1/spi_master/spi1/spi1.0/spidev/spidev1.0

./sys/bus/platform/devices/imx6q-ecspi.1

./sys/bus/platform/drivers/spi_imx

./sys/bus/platform/drivers/spi_imx/imx6q-ecspi.1

./sys/bus/spi

./sys/bus/spi/devices/spi1.0

./sys/bus/spi/drivers/spidev

./sys/bus/spi/drivers/spidev/spi1.0

./sys/class/spi_master

./sys/class/spi_master/spi1

./sys/class/spidev

./sys/class/spidev/spidev1.0

./sys/module/spidev

 

Additional information: I am using kernel 3.0.35, added in LTIB SPI suppport: "Freescale i.MX SPI controllers" and "User mode SPI device driver support".

 

Does anyone knows what am I doing wrong or what is missing in my configuration?

 

Thank in advance

Best regards

Rafal

Outcomes