From patchwork Fri Oct 12 07:00:49 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ryder Lee X-Patchwork-Id: 982871 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=mediatek.com Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 42Wf5C4rNQz9s2P for ; Fri, 12 Oct 2018 18:06:23 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 3756FC21DFB; Fri, 12 Oct 2018 07:06:11 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: * X-Spam-Status: No, score=1.3 required=5.0 tests=RCVD_IN_DNSWL_BLOCKED, RDNS_NONE, UNPARSEABLE_RELAY autolearn=no autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 614CCC21DD3; Fri, 12 Oct 2018 07:01:42 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id BDE09C21DC1; Fri, 12 Oct 2018 07:01:28 +0000 (UTC) Received: from mailgw02.mediatek.com (unknown [210.61.82.184]) by lists.denx.de (Postfix) with ESMTPS id B879FC21DD7 for ; Fri, 12 Oct 2018 07:01:21 +0000 (UTC) X-UUID: ceb840bce4604d098a5f6fac37891c96-20181012 X-UUID: ceb840bce4604d098a5f6fac37891c96-20181012 Received: from mtkcas07.mediatek.inc [(172.21.101.84)] by mailgw02.mediatek.com (envelope-from ) (mhqrelay.mediatek.com ESMTP with TLS) with ESMTP id 446517890; Fri, 12 Oct 2018 15:01:12 +0800 Received: from mtkcas07.mediatek.inc (172.21.101.84) by mtkmbs08n2.mediatek.inc (172.21.101.56) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Fri, 12 Oct 2018 15:01:09 +0800 Received: from mtkslt306.mediatek.inc (10.21.14.136) by mtkcas07.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1395.4 via Frontend Transport; Fri, 12 Oct 2018 15:01:09 +0800 From: Ryder Lee To: Tom Rini , Simon Glass , Albert Aribaud Date: Fri, 12 Oct 2018 15:00:49 +0800 Message-ID: X-Mailer: git-send-email 1.9.1 MIME-Version: 1.0 X-TM-SNTS-SMTP: 10BD847A63538AF13032829BAB46C47FA0D478CBF805E52A838CBE514289C8602000:8 X-MTK: N Cc: Ryder Lee , Steven Liu , Roy Luo , Sean Wang , u-boot@lists.denx.de Subject: [U-Boot] [PATCH v2 00/18] Add U-Boot support for MediaTek SoCs - MT7623n & MT7629 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Hello, This is the new round to add U-Boot support for MediaTek SoCs - MT7623n & MT7629, and the most of the drivers are based on mainline Linux, such as clock, timer, mmc, pinctrl, watchdog, power domain and device tree. The following are the major differences between mainline Linux and U-Boot: - Modify the drivers to adapt the U-Boot DM framework. - Remove unneeded DT nodes as they don't have proper drivers in U-Boot yet. - Just add the basic functions (step-by-step) so that we can monitor the size. - Reuse UART driver ns16550.c but add a highspeed register for MediaTek chips. - Add a whole new MT7629 SNOR driver which is based on SPI framework. Our current progress: The MT7623n (BananaPi R2) which has already been supported in mainline Linux. - Boot from eMMC or SD card. - Boot flow: ROM -> MediaTek's preloder -> U-Boot ... - An open development board called BananaPi R2 [1]. The MT7629 is NOT supported yet in mainline Linux, but I will add it soon. - Boot from SNOR currently. - Boot flow: ROM -> (boot header parsing sequence) -> SPL -> U-Boot ... [1] http://wiki.banana-pi.org/Banana_Pi_BPI-R2 Current implementation was validated via the FIT image. Thanks, Ryder Changes since v2: - Squash defconfig parts into other patches. - Drop unneeded definitions in include/configs/*. - Add a MT7629 qspi driver in the series. Changes since v1: - Fix new blank line at EOF and indentation. - Revise commit message. - Add missing sgmiisys device nodes. - Add Tested-by tags from Matthias. - Drop MT7629 qspi driver in the series, and we will implement another one based on the spi-mem framework. Guochun Mao (1): spi: mtk_qspi: add qspi driver for MT7629 SoC Ryder Lee (15): tools: MediaTek: add MTK boot header generation to mkimage arm: dts: MediaTek: add device tree for MT7629 arm: dts: MediaTek: add device tree for MT7623 arm: MediaTek: add basic support for MT7629 boards clk: MediaTek: add clock driver for MT7629 SoC. clk: MediaTek: add clock driver for MT7623 SoC. timer: MediaTek: add timer driver for MediaTek SoCs watchdog: MediaTek: add watchdog driver for MediaTek SoCs pinctrl: MediaTek: add pinctrl driver for MT7629 SoC pinctrl: MediaTek: add pinctrl driver for MT7623 SoC power domain: MediaTek: add power domain driver for MT7629 SoC power domain: MediaTek: add power domain driver for MT7623 SoC serial: 16550: allow the driver to support MediaTek serial ram: MediaTek: add DDR3 driver for MT7629 SoC MAINTAINERS: add an entry for MediaTek Weijie Gao (2): arm: MediaTek: add basic support for MT7623 boards mmc: mtk-sd: add SD/MMC host controller driver for MT7623 SoC MAINTAINERS | 18 + Makefile | 22 + arch/arm/Kconfig | 14 + arch/arm/Makefile | 1 + arch/arm/dts/Makefile | 4 + arch/arm/dts/mt7623.dtsi | 255 +++++ arch/arm/dts/mt7623n-bananapi-bpi-r2.dts | 207 ++++ arch/arm/dts/mt7629-rfb.dts | 71 ++ arch/arm/dts/mt7629.dtsi | 244 +++++ arch/arm/include/asm/arch-mediatek/gpio.h | 9 + arch/arm/include/asm/arch-mediatek/misc.h | 17 + arch/arm/mach-mediatek/Kconfig | 32 + arch/arm/mach-mediatek/Makefile | 7 + arch/arm/mach-mediatek/cpu.c | 34 + arch/arm/mach-mediatek/init.h | 11 + arch/arm/mach-mediatek/mt7623/Makefile | 4 + arch/arm/mach-mediatek/mt7623/init.c | 54 + arch/arm/mach-mediatek/mt7623/lowlevel_init.S | 22 + arch/arm/mach-mediatek/mt7623/preloader.h | 99 ++ arch/arm/mach-mediatek/mt7629/Makefile | 4 + arch/arm/mach-mediatek/mt7629/init.c | 131 +++ arch/arm/mach-mediatek/mt7629/lowlevel_init.S | 50 + arch/arm/mach-mediatek/spl.c | 43 + board/mediatek/mt7623/Kconfig | 13 + board/mediatek/mt7623/MAINTAINERS | 7 + board/mediatek/mt7623/Makefile | 3 + board/mediatek/mt7623/mt7623_rfb.c | 16 + board/mediatek/mt7629/Kconfig | 17 + board/mediatek/mt7629/MAINTAINERS | 7 + board/mediatek/mt7629/Makefile | 3 + board/mediatek/mt7629/mt7629_rfb.c | 16 + common/image.c | 1 + configs/mt7623n_bpir2_defconfig | 53 + configs/mt7629_rfb_defconfig | 73 ++ drivers/clk/Makefile | 1 + drivers/clk/mediatek/Makefile | 7 + drivers/clk/mediatek/clk-mt7623.c | 870 ++++++++++++++++ drivers/clk/mediatek/clk-mt7629.c | 709 +++++++++++++ drivers/clk/mediatek/clk-mtk.c | 492 +++++++++ drivers/clk/mediatek/clk-mtk.h | 153 +++ drivers/mmc/Kconfig | 9 + drivers/mmc/Makefile | 1 + drivers/mmc/mtk-sd.c | 1331 +++++++++++++++++++++++++ drivers/pinctrl/Kconfig | 1 + drivers/pinctrl/Makefile | 1 + drivers/pinctrl/mediatek/Kconfig | 15 + drivers/pinctrl/mediatek/Makefile | 7 + drivers/pinctrl/mediatek/pinctrl-mt7623.c | 1284 ++++++++++++++++++++++++ drivers/pinctrl/mediatek/pinctrl-mt7629.c | 488 +++++++++ drivers/pinctrl/mediatek/pinctrl-mtk-common.c | 552 ++++++++++ drivers/pinctrl/mediatek/pinctrl-mtk-common.h | 183 ++++ drivers/power/domain/Kconfig | 7 + drivers/power/domain/Makefile | 1 + drivers/power/domain/mtk-power-domain.c | 406 ++++++++ drivers/ram/Makefile | 1 + drivers/ram/mediatek/Makefile | 7 + drivers/ram/mediatek/ddr3-mt7629.c | 766 ++++++++++++++ drivers/serial/ns16550.c | 10 + drivers/spi/Kconfig | 7 + drivers/spi/Makefile | 1 + drivers/spi/mtk_qspi.c | 359 +++++++ drivers/timer/Kconfig | 7 + drivers/timer/Makefile | 1 + drivers/timer/mtk_timer.c | 85 ++ drivers/watchdog/Kconfig | 8 + drivers/watchdog/Makefile | 1 + drivers/watchdog/mtk_wdt.c | 135 +++ include/configs/mt7623.h | 61 ++ include/configs/mt7629.h | 62 ++ include/dt-bindings/clock/mt7623-clk.h | 413 ++++++++ include/dt-bindings/clock/mt7629-clk.h | 206 ++++ include/dt-bindings/power/mt7623-power.h | 19 + include/dt-bindings/power/mt7629-power.h | 13 + include/image.h | 1 + scripts/Makefile.spl | 11 + tools/Makefile | 1 + tools/mtkimage.c | 749 ++++++++++++++ tools/mtkimage.h | 199 ++++ 78 files changed, 11203 insertions(+) create mode 100644 arch/arm/dts/mt7623.dtsi create mode 100644 arch/arm/dts/mt7623n-bananapi-bpi-r2.dts create mode 100644 arch/arm/dts/mt7629-rfb.dts create mode 100644 arch/arm/dts/mt7629.dtsi create mode 100644 arch/arm/include/asm/arch-mediatek/gpio.h create mode 100644 arch/arm/include/asm/arch-mediatek/misc.h create mode 100644 arch/arm/mach-mediatek/Kconfig create mode 100644 arch/arm/mach-mediatek/Makefile create mode 100644 arch/arm/mach-mediatek/cpu.c create mode 100644 arch/arm/mach-mediatek/init.h create mode 100644 arch/arm/mach-mediatek/mt7623/Makefile create mode 100644 arch/arm/mach-mediatek/mt7623/init.c create mode 100644 arch/arm/mach-mediatek/mt7623/lowlevel_init.S create mode 100644 arch/arm/mach-mediatek/mt7623/preloader.h create mode 100644 arch/arm/mach-mediatek/mt7629/Makefile create mode 100644 arch/arm/mach-mediatek/mt7629/init.c create mode 100644 arch/arm/mach-mediatek/mt7629/lowlevel_init.S create mode 100644 arch/arm/mach-mediatek/spl.c create mode 100644 board/mediatek/mt7623/Kconfig create mode 100644 board/mediatek/mt7623/MAINTAINERS create mode 100644 board/mediatek/mt7623/Makefile create mode 100644 board/mediatek/mt7623/mt7623_rfb.c create mode 100644 board/mediatek/mt7629/Kconfig create mode 100644 board/mediatek/mt7629/MAINTAINERS create mode 100644 board/mediatek/mt7629/Makefile create mode 100644 board/mediatek/mt7629/mt7629_rfb.c create mode 100644 configs/mt7623n_bpir2_defconfig create mode 100644 configs/mt7629_rfb_defconfig create mode 100644 drivers/clk/mediatek/Makefile create mode 100644 drivers/clk/mediatek/clk-mt7623.c create mode 100644 drivers/clk/mediatek/clk-mt7629.c create mode 100644 drivers/clk/mediatek/clk-mtk.c create mode 100644 drivers/clk/mediatek/clk-mtk.h create mode 100644 drivers/mmc/mtk-sd.c create mode 100644 drivers/pinctrl/mediatek/Kconfig create mode 100644 drivers/pinctrl/mediatek/Makefile create mode 100644 drivers/pinctrl/mediatek/pinctrl-mt7623.c create mode 100644 drivers/pinctrl/mediatek/pinctrl-mt7629.c create mode 100644 drivers/pinctrl/mediatek/pinctrl-mtk-common.c create mode 100644 drivers/pinctrl/mediatek/pinctrl-mtk-common.h create mode 100644 drivers/power/domain/mtk-power-domain.c create mode 100644 drivers/ram/mediatek/Makefile create mode 100644 drivers/ram/mediatek/ddr3-mt7629.c create mode 100644 drivers/spi/mtk_qspi.c create mode 100644 drivers/timer/mtk_timer.c create mode 100644 drivers/watchdog/mtk_wdt.c create mode 100644 include/configs/mt7623.h create mode 100644 include/configs/mt7629.h create mode 100644 include/dt-bindings/clock/mt7623-clk.h create mode 100644 include/dt-bindings/clock/mt7629-clk.h create mode 100644 include/dt-bindings/power/mt7623-power.h create mode 100644 include/dt-bindings/power/mt7629-power.h create mode 100644 tools/mtkimage.c create mode 100644 tools/mtkimage.h