
These series of patch add support for atheros ath79 based SOCs in u-boot, at the present moment it's just available for ar933x and qca953x chip.
Changes in v8: - Use setbits_be32 - Use lookup-table instead of big switch statement for CPU detection - Fix multi-line comment for ar933x - Fix multi-line comment for qca953x - Remove ath79_serial_write/read - Use pinctrl for serial - Add Kconfig dependence for serial option - Remove ath79_spi_write/read - Use pinctrl for spi - Add Kconfig dependence for spi option - Use dev_get_parent - Move board/ath79/ap121 into board/qca/ap121 - Move SYS_VENDOR into board-level for ap121 - Move board/ath79/ap143 into board/qca/ap143 - Move SYS_VENDOR into board-level for ap143
Changes in v7: - Use setbits_32 - Fix include path for SoC specific headers - Use CKSEGxADDR instead of KSEGxADDR for ar933x - Use CKSEGxADDR instead of KSEGxADDR for qca953x - remove map_physmem for debug port - Define spi_cs_activate/spi_cs_deactivate - Rename MHZ to ATH79_SPI_MHZ - Use clrsetbits_32 - Use KSEG1 address for debug port in ap121 - Use KSEG1 address for debug port in ap143
Changes in v6: - Move ar933x as separate patch - Add get_bootstrap in reset.c - Use map_physmem instead of KSEG1ADDR - Add arch_cpu_init for detect SOC type for early - Remove board.c - Define magic value in ddr.c - Initial support for qca953x - Remove wait loop in putc and getc - Use map_physmem instead of KSEG1ADDR - Add rrw_delay in ath79_spi_priv for more accurate timing - Remove ath79_spi_delay - Calculate delay in ath79_spi_set_speed - Convert SZ_XXX into hex in ap121.h - Remove useless CONFIG_SYS_INIT_SP_OFFSET in ap121.h - Add board_early_init_f for DDR and pin initialization - Select UART and SPI in ap121_defconfig
Changes in v5: - Add independent Kconfig - Use SRAM for initial stack - Move DDR initialization into board_early_init_f - Convert DDR tap tunning code to C - Save SOC's version into arch_global_data - Add ddr.c for ar933x - remove ar933x_serial_platdata - Import document "qca,ar9330-uart.txt" from kernel - Add support for debug UART - remove ar933x_spi_platdata - Import document "spi-ath79.txt" from kernel - Add delay for bitbang operation - Move CONFIG_SYS_TEXT_BASE into ap121.h, and remove config.mk - Remove useless README file - Remove useless checkboard function
Changes in v4: - Use global_data to save CPU/DDR/AHB clock - Use arch_global_data to save SOC's type, revison and id - Add clk.c for ar933x - Auto calculate baudrate for serial driver - Move pinctrl code in serial driver into arch/mips/mach-ath79 - Use get_serial_clock to serial clock source - Use get_bus_freq instead of hardcode in SPI driver
Changes in v3: - Move SoC specific header files into arch/mips/mach-ath79/include/mach - Optimize assembly code - Same code style convertion - Convert serial driver to driver model - Convert spi driver to driver model - Add support for device tree
Changes in v2: - Move all SoC specific header files into arch/mips/include/asm/arch-ath79 - Check SOC type and extract common code into arch/mips/mach-ath79 - Move serial driver code into drivers/serial - Add a compatible spi driver - Add a reference board implemention
Wills Wang (9): mips: add base support for QCA/Atheros ath79 SOCs mips: ath79: add support for AR933x SOCs mips: ath79: add support for QCA953x SOCs drivers: pinctrl: Add simple pinctrl driver for QCA/Athores ar933x. drivers: pinctrl: Add simple pinctrl driver for QCA/Athores qca953x. drivers: serial: add serial driver for ar933x SOC drivers: spi: add spi support for QCA/Atheros ath79 SOCs mips: ath79: add AP121 reference board mips: ath79: add AP143 reference board
arch/mips/Kconfig | 6 + arch/mips/Makefile | 1 + arch/mips/dts/Makefile | 2 + arch/mips/dts/ap121.dts | 43 + arch/mips/dts/ap143.dts | 43 + arch/mips/dts/ar933x.dtsi | 82 ++ arch/mips/dts/qca953x.dtsi | 84 ++ arch/mips/include/asm/global_data.h | 6 + arch/mips/mach-ath79/Kconfig | 41 + arch/mips/mach-ath79/Makefile | 10 + arch/mips/mach-ath79/ar933x/Makefile | 7 + arch/mips/mach-ath79/ar933x/clk.c | 89 ++ arch/mips/mach-ath79/ar933x/ddr.c | 333 ++++++ arch/mips/mach-ath79/ar933x/lowlevel_init.S | 280 +++++ arch/mips/mach-ath79/cpu.c | 142 +++ arch/mips/mach-ath79/dram.c | 16 + arch/mips/mach-ath79/include/mach/ar71xx_regs.h | 1184 ++++++++++++++++++++ arch/mips/mach-ath79/include/mach/ath79.h | 143 +++ arch/mips/mach-ath79/include/mach/ddr.h | 13 + arch/mips/mach-ath79/include/mach/reset.h | 14 + arch/mips/mach-ath79/qca953x/Makefile | 7 + arch/mips/mach-ath79/qca953x/clk.c | 111 ++ arch/mips/mach-ath79/qca953x/ddr.c | 472 ++++++++ arch/mips/mach-ath79/qca953x/lowlevel_init.S | 186 +++ arch/mips/mach-ath79/reset.c | 71 ++ board/qca/ap121/Kconfig | 12 + board/qca/ap121/MAINTAINERS | 6 + board/qca/ap121/Makefile | 5 + board/qca/ap121/ap121.c | 50 + board/qca/ap143/Kconfig | 12 + board/qca/ap143/MAINTAINERS | 6 + board/qca/ap143/Makefile | 5 + board/qca/ap143/ap143.c | 66 ++ configs/ap121_defconfig | 46 + configs/ap143_defconfig | 45 + .../serial/qca,ar9330-uart.txt | 24 + doc/device-tree-bindings/spi/spi-ath79.txt | 19 + drivers/pinctrl/Kconfig | 18 + drivers/pinctrl/Makefile | 1 + drivers/pinctrl/ath79/Makefile | 6 + drivers/pinctrl/ath79/pinctrl_ar933x.c | 136 +++ drivers/pinctrl/ath79/pinctrl_qca953x.c | 156 +++ drivers/serial/Kconfig | 18 + drivers/serial/Makefile | 1 + drivers/serial/serial_ar933x.c | 255 +++++ drivers/spi/Kconfig | 9 + drivers/spi/Makefile | 1 + drivers/spi/ath79_spi.c | 240 ++++ include/configs/ap121.h | 87 ++ include/configs/ap143.h | 91 ++ 50 files changed, 4701 insertions(+) create mode 100644 arch/mips/dts/ap121.dts create mode 100644 arch/mips/dts/ap143.dts create mode 100644 arch/mips/dts/ar933x.dtsi create mode 100644 arch/mips/dts/qca953x.dtsi create mode 100644 arch/mips/mach-ath79/Kconfig create mode 100644 arch/mips/mach-ath79/Makefile create mode 100644 arch/mips/mach-ath79/ar933x/Makefile create mode 100644 arch/mips/mach-ath79/ar933x/clk.c create mode 100644 arch/mips/mach-ath79/ar933x/ddr.c create mode 100644 arch/mips/mach-ath79/ar933x/lowlevel_init.S create mode 100644 arch/mips/mach-ath79/cpu.c create mode 100644 arch/mips/mach-ath79/dram.c create mode 100644 arch/mips/mach-ath79/include/mach/ar71xx_regs.h create mode 100644 arch/mips/mach-ath79/include/mach/ath79.h create mode 100644 arch/mips/mach-ath79/include/mach/ddr.h create mode 100644 arch/mips/mach-ath79/include/mach/reset.h create mode 100644 arch/mips/mach-ath79/qca953x/Makefile create mode 100644 arch/mips/mach-ath79/qca953x/clk.c create mode 100644 arch/mips/mach-ath79/qca953x/ddr.c create mode 100644 arch/mips/mach-ath79/qca953x/lowlevel_init.S create mode 100644 arch/mips/mach-ath79/reset.c create mode 100644 board/qca/ap121/Kconfig create mode 100644 board/qca/ap121/MAINTAINERS create mode 100644 board/qca/ap121/Makefile create mode 100644 board/qca/ap121/ap121.c create mode 100644 board/qca/ap143/Kconfig create mode 100644 board/qca/ap143/MAINTAINERS create mode 100644 board/qca/ap143/Makefile create mode 100644 board/qca/ap143/ap143.c create mode 100644 configs/ap121_defconfig create mode 100644 configs/ap143_defconfig create mode 100644 doc/device-tree-bindings/serial/qca,ar9330-uart.txt create mode 100644 doc/device-tree-bindings/spi/spi-ath79.txt create mode 100644 drivers/pinctrl/ath79/Makefile create mode 100644 drivers/pinctrl/ath79/pinctrl_ar933x.c create mode 100644 drivers/pinctrl/ath79/pinctrl_qca953x.c create mode 100644 drivers/serial/serial_ar933x.c create mode 100644 drivers/spi/ath79_spi.c create mode 100644 include/configs/ap121.h create mode 100644 include/configs/ap143.h