Hello again,

I went a bit further into my investigation. Here are the results:

>  The problem I´m facing is with the sync_serial driver (SPI driver). I
>  wanted to try it out, but I have the following message when starting
>  linux:
>  ETRAX100LX sync_serial: Could not allocate IO group for port 1
>
>  I included the driver, configured for the sync serial port 1 (sser3).
>  The only configured serial port is the port 0 (for the debug console).
>
>  I´m going further in checking why there is a conflict (currently in
>  io_interface_mux.c). To debug, it would be much easier for me to have
>  the sync_serial driver as module. Did somebody create it?
>  (see http://mhonarc.axis.se/dev-etrax/msg08321.html, the driver has to
>  be modified to be able to be used as a module; if somebody did it, I
>  wouldn´t lose too much time...)

io_interface_mux.c is responsible for the registration of the device
drivers and allows (or not) the multiplexing of the interfaces. For
this purpose, devices groups are created:
static struct interface interfaces[] = {
        /* Begin Non-multiplexed interfaces */
        {
                .ioif = if_serial_0,
                .groups = 0,
                .gpio_g_in = 0,
                .gpio_g_out = 0,
                .gpio_b = 0
        },
        /* End Non-multiplexed interfaces */
        {
                .ioif = if_serial_1,
                .groups = group_e,
                .gpio_g_in =  0x00000000,
                .gpio_g_out = 0x00000000,
                .gpio_b = 0x00
        },
        {
                .ioif = if_serial_2,
                .groups = group_b,
                .gpio_g_in =  0x000000c0,
                .gpio_g_out = 0x000000c0,
                .gpio_b = 0x00
        },
        {
                .ioif = if_serial_3,
                .groups = group_c,
                .gpio_g_in =  0xc0000000,
                .gpio_g_out = 0xc0000000,
                .gpio_b = 0x00
        },
...
for example.
As I was trying to use sync serial 3, its definition is:
        {
                .ioif = if_sync_serial_3,
                .groups = group_c  | group_f,
                .gpio_g_in =  0xc0000000,
                .gpio_g_out = 0xc0000000,
                .gpio_b = 0x80
        },
but sync serial 3 as nothing to do with the group f (syncser1, i2c
,usb1, scsi...) and has only to be defined in group c (common pins
with serial 3, scsi8_0 and ata), therefore it´s new definition is:
        {
                .ioif = if_sync_serial_3,
                .groups = group_c,
                .gpio_g_in =  0xc0000000,
                .gpio_g_out = 0xc0000000,
                .gpio_b = 0x80
        },
And then I can use this syncser3 :)

Now I´m trying to have the real SPI behaviour on the syncser3 (MISO,
MOSI and CLK which clocks only when data is on the bus). I still
didn´t find any solution to stop the clock when no data is sent. Do
you have any advice?

Thanks
Teddy

Reply via email to