[PATCH v12 0/6] Driver for at91 usart in spi mode
From: geert@linux-m68k.org (Geert Uytterhoeven)
Date: 2018-09-11 19:05:12
Also in:
linux-devicetree, linux-serial, linux-spi, lkml
Hi Alexandre, On Tue, Sep 11, 2018 at 8:58 PM Alexandre Belloni [off-list ref] wrote:
On 11/09/2018 19:39:30+0100, Lee Jones wrote:quoted
On Tue, 11 Sep 2018, Geert Uytterhoeven wrote:quoted
On Tue, Sep 11, 2018 at 5:36 PM Alexandre Belloni [off-list ref] wrote:quoted
On 11/09/2018 16:59:09+0200, Geert Uytterhoeven wrote:quoted
On Tue, Sep 11, 2018 at 11:40 AM Alexandre Belloni [off-list ref] wrote:quoted
Then you'd have multiple compatible strings for the same IP which is a big no-no.It's still the same hardware device, isn't? What if the SPI or UART slave is not on-board, but on an expansion board? Then the SoC-specific .dtsi has no idea what mode should be used. Hence shouldn't the software derive the hardware mode from the full hardware description in DT? If that's impossible (I didn't look into detail whether an SPI bus can easily be distinguished from a UART bus), perhaps a mode property should be added?Yes, this is exactly what is done: https://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd.git/tree/drivers/mfd/at91-usart.c?h=ib-mfd-spi-tty-4.20-1#n33OK. I guess the main "hackish" part is that the mfd_cell uses of_compatible, which thus requires having additional compatible values? I think those can just be removed. AFAICS, the SPI and serial drivers already match against the "at91_usart_spi" resp. "atmel_usart_serial" platform device names?The hackish part of this driver is that it's using MFD for something which is clearly not an MFD. It's a USART device. Nothing more, nothing less. Does anyone have the datasheet to hand?It is not a simple usart, it is either a usart or a full blown SPI controller with registers changing layout depending on the selected mode. Otherwise, I'm not sure how you would get a USART to do SPI.
Note the "S" in USART. SPI is just synchronous serial with a shared clock
for transmit and receive. So the hardware is not that unrelated.
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert at linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds