[OpenWrt-Devel] lantiq: Initial linux 4.4 support (with SPI problems)

Martin Blumenstingl martin.blumenstingl at googlemail.com
Sun Jan 17 06:42:41 EST 2016

On Sat, Jan 16, 2016 at 10:48 PM, Daniel Schwierzeck
<daniel.schwierzeck at gmail.com> wrote:
> Am Samstag, den 16.01.2016, 21:17 +0100 schrieb Martin Blumenstingl:
>> So compared to your patch the final list of changes is:
>> - INIT_COMPLETION -> reinit_completion
>> - use clk_get_fpi()
>> - of_device_id for "lantiq,spi-xrx100"
>> I only have three small questions left:
>> - The "spi_frm" interrupt is currently unused - is that on purpose?
> yes, this interrupt is only needed for DMA transfers.
ok, thanks!

>> - I went ahead and added multiple "compatible" strings to the
>> soc.dtsi, for example: compatible = "lantiq,spi-ase",
>> "lantiq,spi-xway"; - do you see any problems with that?
> there should be only one compatible string in the DTS. For backward
> compatibility the driver could support old and new strings.
I have fixed this, see below

>> Please let me know if you have more feedback - otherwise I'll do the
>> final round of tests and send the patches later.
> AFAIK the upstream preference is to have "lantiq,<soc>-spi". I forgot
> to fix that in the driver. Could you change that? Thanks.
The new of_device_id table is now:
 { .compatible = "lantiq,spi-xway", .data = &spi_xway, }, /* DEPRECATED */
 { .compatible = "lantiq,ase-spi", .data = &spi_xway, },
 { .compatible = "lantiq,xrx100-spi", .data = &spi_xrx, },
 { .compatible = "lantiq,xrx200-spi", .data = &spi_xrx, },
 { .compatible = "lantiq,xrx330-spi", .data = &spi_xrx, },

This way we are still backwards compatible but have dedicated entries per SoC.
I could not find a danube device with SPI so I skipped that property for now.

While testing the changes I found that PCIe (and thus wifi) stopped
working on my TD-W8970. This was due to the backported pinctrl patches
which only add 50 pins for XRX200 instead of 56 (as before). That
changed the kernel-internal GPIO numbering, the first GPIO now starts
at 462. And since the PCIe driver used hardcoded GPIO numbers it broke
(because it failed to reset the PCIe device).
To make a long story short: I wrote a patch which fixes this - I'll
send the whole series in a few minutes.

openwrt-devel mailing list
openwrt-devel at lists.openwrt.org

More information about the openwrt-devel mailing list