From patchwork Tue Oct 2 06:13:37 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ryder Lee X-Patchwork-Id: 977707 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 42PbpH3G7Nz9sjB for ; Tue, 2 Oct 2018 21:02:31 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id 0FF3FC2202E; Tue, 2 Oct 2018 11:01:45 +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=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 B8121C22009; Tue, 2 Oct 2018 10:59:29 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 6CDA8C21FB3; Tue, 2 Oct 2018 06:14:13 +0000 (UTC) Received: from mailgw01.mediatek.com (unknown [210.61.82.183]) by lists.denx.de (Postfix) with ESMTPS id 7C957C21FB3 for ; Tue, 2 Oct 2018 06:14:10 +0000 (UTC) X-UUID: 1fbd3819285f4b95a4e441ecefa08303-20181002 Received: from mtkcas07.mediatek.inc [(172.21.101.84)] by mailgw01.mediatek.com (envelope-from ) (mhqrelay.mediatek.com ESMTP with TLS) with ESMTP id 7825876; Tue, 02 Oct 2018 14:14:00 +0800 Received: from MTKCAS06.mediatek.inc (172.21.101.30) by mtkmbs02n1.mediatek.inc (172.21.101.77) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Tue, 2 Oct 2018 14:13:59 +0800 Received: from mtkslt306.mediatek.inc (10.21.14.136) by MTKCAS06.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1395.4 via Frontend Transport; Tue, 2 Oct 2018 14:13:59 +0800 From: Ryder Lee To: Tom Rini , Simon Glass , Albert Aribaud Date: Tue, 2 Oct 2018 14:13:37 +0800 Message-ID: X-Mailer: git-send-email 1.9.1 MIME-Version: 1.0 X-MTK: N X-Mailman-Approved-At: Tue, 02 Oct 2018 10:59:23 +0000 Cc: Steven Liu , Roy Luo , Sean Wang , Weijie Gao , u-boot@lists.denx.de Subject: [U-Boot] [PATCH 00/20] Add 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 first round (time) to add U-boot support for MediaTek SoCs (MT7623n and MT7629), and the most of the drivers are based on mainline Linux, like clock, timer, mmc, pinctrl, watchdog, power domain and DTS. The following are the major differences between Linux and U-boot: - modify the driver interface 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 ns16550.c but add a highspeed register for MediaTek UARTs. - add a whole new SNOR driver mtk_qspi.c which is based on SPI master-slave hierarchy. Our current progress: The MT7623n (BananaPi R2) which has already supported in mainline Linux. - We can choice to boot from eMMC or SD card. (ROM -> MediaTek preloder -> U-boot ...) - MT7623n has an open development board called BananaPi R2 [1]. The MT7629 which has NOT supported in mainline Linux yet, but we will do it soon. - Boot from SNOR. (ROM -> (boot header parsing sequence) -> SPL -> U-boot ...) [1] http://wiki.banana-pi.org/Banana_Pi_BPI-R2 Thanks, Ryder Guochun Mao (1): spi: mtk_qspi: add qspi driver for MT7629 SoC Ryder Lee (16): tools: MediaTek: add MTK boot header generation to mkimage arm: MediaTek: add basic support for MT7629 boards arm: dts: MediaTek: add MT7629 reference board support arm: dts: MediaTek: add MT7623 Bananapi R2 board support configs: MediaTek: add MT7629 reference board support 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 (3): arm: MediaTek: add basic support for MT7623 boards configs: MediaTek: add MT7623 Bananapi R2 board support mmc: mtk-sd: add SD/MMC host controller driver for MT7623 SoC MAINTAINERS | 18 + Makefile | 20 + arch/arm/Kconfig | 14 + arch/arm/Makefile | 1 + arch/arm/dts/Makefile | 4 + arch/arm/dts/mt7623.dtsi | 258 +++++ arch/arm/dts/mt7623n-bananapi-bpi-r2.dts | 207 ++++ arch/arm/dts/mt7629-rfb.dts | 71 ++ arch/arm/dts/mt7629.dtsi | 232 +++++ arch/arm/include/asm/arch-mediatek/gpio.h | 9 + arch/arm/mach-mediatek/Kconfig | 32 + arch/arm/mach-mediatek/Makefile | 7 + arch/arm/mach-mediatek/cpu.c | 34 + arch/arm/mach-mediatek/include/mach/chipid.h | 17 + arch/arm/mach-mediatek/include/mach/gpio.h | 9 + arch/arm/mach-mediatek/init.h | 11 + arch/arm/mach-mediatek/mt7623/Makefile | 4 + arch/arm/mach-mediatek/mt7623/init.c | 53 + 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 | 142 +++ 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 | 4 + board/mediatek/mt7623/mt7623_rfb.c | 16 + board/mediatek/mt7629/Kconfig | 17 + board/mediatek/mt7629/MAINTAINERS | 7 + board/mediatek/mt7629/Makefile | 4 + 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 | 867 +++++++++++++++++ drivers/clk/mediatek/clk-mt7629.c | 666 +++++++++++++ drivers/clk/mediatek/clk-mtk.c | 494 ++++++++++ drivers/clk/mediatek/clk-mtk.h | 151 +++ drivers/mmc/Kconfig | 9 + drivers/mmc/Makefile | 1 + drivers/mmc/mtk-sd.c | 1286 +++++++++++++++++++++++++ drivers/pinctrl/Kconfig | 1 + drivers/pinctrl/Makefile | 1 + drivers/pinctrl/mediatek/Kconfig | 15 + drivers/pinctrl/mediatek/Makefile | 7 + drivers/pinctrl/mediatek/pinctrl-mt7623.c | 1280 ++++++++++++++++++++++++ drivers/pinctrl/mediatek/pinctrl-mt7629.c | 489 ++++++++++ drivers/pinctrl/mediatek/pinctrl-mtk-common.c | 558 +++++++++++ drivers/pinctrl/mediatek/pinctrl-mtk-common.h | 186 ++++ 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 | 406 ++++++++ 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 | 66 ++ include/configs/mt7629.h | 70 ++ include/dt-bindings/clock/mt7623-clk.h | 429 +++++++++ include/dt-bindings/clock/mt7629-clk.h | 217 +++++ include/dt-bindings/power/mt7623-power.h | 19 + include/dt-bindings/power/mt7629-power.h | 13 + include/dt-bindings/reset/mt7623-resets.h | 85 ++ include/image.h | 1 + scripts/Makefile.spl | 11 + tools/Makefile | 1 + tools/mtkimage.c | 748 ++++++++++++++ tools/mtkimage.h | 199 ++++ 80 files changed, 11299 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/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/include/mach/chipid.h create mode 100644 arch/arm/mach-mediatek/include/mach/gpio.h 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 include/dt-bindings/reset/mt7623-resets.h create mode 100644 tools/mtkimage.c create mode 100644 tools/mtkimage.h Tested-by: Matthias Brugger