This patch set adds support for the Lenovo ix4-300d NAS based on Marvell Armada XP MV78230 SoC. Unfortunately, this very SoC has a broken SoC-Id and wrongly indentifies itself as MV78460 instead. Marvell's BSP u-boot fixes this by overwriting the PCI ID register that is used by Linux for SoC identification with the correct value, so we also add a proper fixup. Stuff that is already working on ix4: - Front USB port on xHCI PCI - Both GbEs (with txdesc fix for mvneta) on 88E1318S PHYs - LEDs and buttons Missing functions: - Front GLCD (I started a driver but have to have another look at it) - Back USB on internal controllers (missing CI glue logic and USB PHY for Armada XP, have some old patches for KW and Dove) - 88SX7042 4-port SATA controller on PCIe x4 (nothing here) - NAND flash (hope Ezequiel finds some time here) - External RTC, Fan control (nothing here) Patches 1-4 add support for Marvell 88E1318S PHYs, 74x164 used as GPIO expander, and bitbang SPI. Patches 5-7 cleanup and convert mvebu-mbus driver from a postcore-registered driver to be directly called from mvebu SoC init which allows to setup mbus windows before any drivers. Patches 8-9 install a fixup function for Armada 370/XP SoCs to fake a correct SoC Id for broken MV78230 SoCs. Patches 10-12 cleanup Armada 370/XP code prior to adding support for Lenovo ix4-300d in Patch 13. Sebastian Hesselbarth (13): net: phy: Support Marvell 88E1318S PHY gpio: Add driver for 74x164 compatible shift-registers spi: ath79: move spidelay from spi-bitbang-txrx spi: Add SPI GPIO bitbang driver bus: mvebu-mbus: Remove coherency attribute bus: mvebu-mbus: Drop device reference bus: mvebu-mbus: Convert mbus platform driver to direct driver ARM: mvebu: Move PCIe register defines to socid.h ARM: mvebu: armada-xp: Fixup broken MV78230-A0 SoC ID ARM: mvebu: armada-xp: Limit PUP access to Armada XP ARM: mvebu: armada-xp: Use MBUS_ERR_PROP_EN define ARM: mvebu: armada-xp: Sort boards and images alphabetically ARM: mvebu: armada-xp: Add Lenovo Iomega ix4-300d arch/arm/boards/Makefile | 1 + arch/arm/boards/lenovo-ix4-300d/Makefile | 1 + arch/arm/boards/lenovo-ix4-300d/kwbimage.cfg | 5 + arch/arm/boards/lenovo-ix4-300d/lowlevel.c | 35 +++ arch/arm/dts/Makefile | 1 + arch/arm/dts/armada-xp-lenovo-ix4-300d-bb.dts | 14 ++ arch/arm/mach-mvebu/Kconfig | 8 +- arch/arm/mach-mvebu/armada-370-xp.c | 87 +++++++- arch/arm/mach-mvebu/common.c | 5 +- arch/arm/mach-mvebu/dove.c | 1 + .../mach-mvebu/include/mach/armada-370-xp-regs.h | 31 ++- arch/arm/mach-mvebu/include/mach/socid.h | 4 + arch/arm/mach-mvebu/kirkwood.c | 1 + drivers/bus/mvebu-mbus.c | 48 ++--- drivers/gpio/Kconfig | 8 + drivers/gpio/Makefile | 1 + drivers/gpio/gpio-74164.c | 131 ++++++++++++ drivers/net/phy/marvell.c | 31 +++ drivers/spi/Kconfig | 4 + drivers/spi/Makefile | 1 + drivers/spi/ath79_spi.c | 2 + drivers/spi/gpio_spi.c | 238 +++++++++++++++++++++ drivers/spi/spi-bitbang-txrx.h | 2 - images/Makefile.mvebu | 31 ++- include/linux/mbus.h | 2 + include/spi/spi_gpio.h | 36 ++++ 26 files changed, 665 insertions(+), 64 deletions(-) create mode 100644 arch/arm/boards/lenovo-ix4-300d/Makefile create mode 100644 arch/arm/boards/lenovo-ix4-300d/kwbimage.cfg create mode 100644 arch/arm/boards/lenovo-ix4-300d/lowlevel.c create mode 100644 arch/arm/dts/armada-xp-lenovo-ix4-300d-bb.dts create mode 100644 drivers/gpio/gpio-74164.c create mode 100644 drivers/spi/gpio_spi.c create mode 100644 include/spi/spi_gpio.h --- Cc: barebox@xxxxxxxxxxxxxxxxxxx Cc: Ezequiel Garcia <ezequiel.garcia@xxxxxxxxxxxxxxxxxx> Cc: Thomas Petazzoni <thomas.petazzoni@xxxxxxxxxxxxxxxxxx> -- 2.1.0 _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox