Stanislaw Gruszka napsal(a):
On Thu, Nov 25, 2010 at 09:53:19PM +0100, Radovan Vapeník wrote:
We do not detect any IDE device, registers do not contain status/data
that IDE layer expect. As far only two possible reasons of that
problem come in mind:
- board specific code does not reset CF device (with proper
reset duration?). This is expected, there is rst_pin in
struct at91_cf_data but driver does not use it
- CF 9 pin (ATA SEL) is not grounded or set to 0 if connected
to controller (also in board specific initialization code)
To debug problem further, you can add your own code at the end of
at91_ide_probe(), which read/write IDE register to see if device
react properly and give some sensible status values.
Stanislaw
Seems problem is really on reset pin, i have analysed using
oscilloscope and on reset pin is still in logical "1", without
change during module loading. I will try to find out why is this
happening.
I was unclear. Driver does not change reset pin. Reset need to be
done in board initialization code. You have to add something like that
#define RST_PIN AT91_PIN_PC5
at91_set_gpio_output(RST_PIN, 1);
at91_set_gpio_value(RST_PIN,0);
mdelay(2);
at91_set_gpio_value(RST_PIN,1);
in your arch/arm/mach-at91/board-NAME.c (I'm not sure if 2ms is
correct IDE reset duration).
Stanislaw
I found out the reason of transients - it is caused by enabled pull-up
resistor on lower 16 bits on EBI0 - bit EBI0_DBPUC shoul be set to "1",
normally is set to "0". But the CF still no working, problem is is
elsewhere.
Radovan
--
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html