From patchwork Thu Nov 16 23:22:39 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lukasz Majewski X-Patchwork-Id: 10062193 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 3EDED604D3 for ; Thu, 16 Nov 2017 23:25:26 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 315E429FC4 for ; Thu, 16 Nov 2017 23:25:26 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 25F022A887; Thu, 16 Nov 2017 23:25:26 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-4.2 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_DNSWL_MED autolearn=unavailable version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [65.50.211.133]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 81C912AC55 for ; Thu, 16 Nov 2017 23:25:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:MIME-Version:Cc:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:References: In-Reply-To:Message-Id:Date:Subject:To:From:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Owner; bh=2B3K5Np78vOBI4Nd+m4fan8NK0rJdV/KJsW6c29cnc4=; b=ON1XhMW337SNjh6F4kqAf96Xsl 2x/VvnqlUVkAcfie729u+/QQMxIzge52EMoZsCBxGAJGnBf6lhhJW05tVIyJrA7eqmaLyJchsPvYV jek7YTBVMAf4S8SuapmSH93dQPYIy6pxqwV/f6/tNHu5QY5MvEZp39Tf2Kv5AKBZYaFQlJWq40ZSb M/lKfcBA4Ll/Pgjj/gz+6mE2j0/BM9Gc0AUYrH4+knuA2M+Wdut8Qmw2xygRpXT+WJT90VTBHtOyR PJduf6HEhKx+HgIqoUpqv62Jq9gBc9pxY85gCsHE+wxMsgzj3HMyRcPxBKAKCc/riZrXiOToxY4Y1 wa4JkQcA==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.87 #1 (Red Hat Linux)) id 1eFTX2-0005si-T6; Thu, 16 Nov 2017 23:25:17 +0000 Received: from mail-out.m-online.net ([212.18.0.9]) by bombadil.infradead.org with esmtps (Exim 4.87 #1 (Red Hat Linux)) id 1eFTVh-0003zM-KA for linux-arm-kernel@lists.infradead.org; Thu, 16 Nov 2017 23:24:19 +0000 Received: from frontend01.mail.m-online.net (unknown [192.168.8.182]) by mail-out.m-online.net (Postfix) with ESMTP id 3ydHNX0nkbz1qsD5; Fri, 17 Nov 2017 00:23:08 +0100 (CET) Received: from localhost (dynscan1.mnet-online.de [192.168.6.70]) by mail.m-online.net (Postfix) with ESMTP id 3ydHNX0bfKz1s7pj; Fri, 17 Nov 2017 00:23:08 +0100 (CET) X-Virus-Scanned: amavisd-new at mnet-online.de Received: from mail.mnet-online.de ([192.168.8.182]) by localhost (dynscan1.mail.m-online.net [192.168.6.70]) (amavisd-new, port 10024) with ESMTP id XLtQ1S4XQ0Xi; Fri, 17 Nov 2017 00:23:06 +0100 (CET) X-Auth-Info: B4P80CGilP79+Je+Kb+AF4sz9zNDBioy/NLrqEJfxaI= Received: from localhost.localdomain (89-64-27-66.dynamic.chello.pl [89.64.27.66]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.mnet-online.de (Postfix) with ESMTPSA; Fri, 17 Nov 2017 00:23:06 +0100 (CET) From: Lukasz Majewski To: Hartley Sweeten , Alexander Sverdlin , Arnd Bergmann , arndbergmann@gmail.com Subject: [PATCH 4/4] ARM: ep93xx: ts72xx: Add support for BK3 board - ts72xx derivative Date: Fri, 17 Nov 2017 00:22:39 +0100 Message-Id: <20171116232239.16823-5-lukma@denx.de> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20171116232239.16823-1-lukma@denx.de> References: <20171116232239.16823-1-lukma@denx.de> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20171116_152354_411306_6E646DFB X-CRM114-Status: GOOD ( 19.52 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-kernel@vger.kernel.org, Linus Walleij , Lukasz Majewski , Russell King , Olof Johansson , linux-arm-kernel@lists.infradead.org MIME-Version: 1.0 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP The BK3 board is a derivative of the ts72xx reference design. Hence, it can re-use code from the ts72xx-common.c file. Signed-off-by: Lukasz Majewski --- arch/arm/mach-ep93xx/Kconfig | 7 ++++ arch/arm/mach-ep93xx/Makefile | 1 + arch/arm/mach-ep93xx/bk3.c | 88 +++++++++++++++++++++++++++++++++++++++++++ arch/arm/mach-ep93xx/ts72xx.h | 5 +++ arch/arm/tools/mach-types | 1 + 5 files changed, 102 insertions(+) create mode 100644 arch/arm/mach-ep93xx/bk3.c diff --git a/arch/arm/mach-ep93xx/Kconfig b/arch/arm/mach-ep93xx/Kconfig index 16c5d6eedf45..18a93b404d5e 100644 --- a/arch/arm/mach-ep93xx/Kconfig +++ b/arch/arm/mach-ep93xx/Kconfig @@ -21,6 +21,13 @@ config MACH_ADSSPHERE Say 'Y' here if you want your kernel to support the ADS Sphere board. +config MACH_BK3 + bool "Support Liebherr BK3.1" + select TS72XX_COMMON + help + Say 'Y' here if you want your kernel to support the + Liebherr controller BK3.1. + config MACH_EDB93XX bool diff --git a/arch/arm/mach-ep93xx/Makefile b/arch/arm/mach-ep93xx/Makefile index f2692a072864..fb5bdb7cb944 100644 --- a/arch/arm/mach-ep93xx/Makefile +++ b/arch/arm/mach-ep93xx/Makefile @@ -9,6 +9,7 @@ obj-$(CONFIG_CRUNCH) += crunch.o crunch-bits.o AFLAGS_crunch-bits.o := -Wa,-mcpu=ep9312 obj-$(CONFIG_MACH_ADSSPHERE) += adssphere.o +obj-$(CONFIG_MACH_BK3) += bk3.o obj-$(CONFIG_MACH_EDB93XX) += edb93xx.o obj-$(CONFIG_MACH_GESBC9312) += gesbc9312.o obj-$(CONFIG_MACH_MICRO9) += micro9.o diff --git a/arch/arm/mach-ep93xx/bk3.c b/arch/arm/mach-ep93xx/bk3.c new file mode 100644 index 000000000000..6fb4b72500ee --- /dev/null +++ b/arch/arm/mach-ep93xx/bk3.c @@ -0,0 +1,88 @@ +/* + * arch/arm/mach-ep93xx/bk3.c + * Liebherr HVAC controller bk3.1 + * + * based on arch/arm/mach-ep93xx/ts72xx.c + * + * Copyright (C) 2006 Lennert Buytenhek + * Copyright (C) 2017 + * Lukasz Majewski, DENX Software Engineering, lukma@denx.de + * + * SPDX-License-Identifier: GPL-2.0+ + */ + +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#include +#include +#include + +#include "soc.h" +#include "ts72xx.h" + +/* NAND definition */ +static struct mtd_partition bk3_nand_parts[] = { + { + .name = "System", + .offset = 0x00000000, + .size = 0x01e00000, + }, { + .name = "Data", + .offset = 0x01e00000, + .size = 0x05f20000 + }, { + .name = "RedBoot", + .offset = 0x07d20000, + .size = 0x002e0000, + .mask_flags = MTD_WRITEABLE, /* force RO */ + }, +}; + +static AMBA_APB_DEVICE(i2s1, "apb:i2s", 1, EP93XX_I2S_PHYS_BASE, + { IRQ_EP93XX_SAI }, NULL); + +static struct map_desc bk3_io_desc[] __initdata = { + { + .virtual = BK3_CPLDVER_VIRT_BASE, + .pfn = __phys_to_pfn(BK3_CPLDVER_PHYS_BASE), + .length = BK3_CPLDVER_SIZE, + .type = MT_DEVICE, + } +}; + +static void __init bk3_map_io(void) +{ + ts72xx_common_map_io(); + iotable_init(bk3_io_desc, ARRAY_SIZE(bk3_io_desc)); +} + +static void __init bk3_init_machine(void) +{ + ep93xx_init_devices(); + + ts72xx_register_flash(bk3_nand_parts, ARRAY_SIZE(bk3_nand_parts)); + ts72xx_register_watchdog(); + ts72xx_register_eth(); + + amba_device_register(&i2s1_device, &iomem_resource); +} + +MACHINE_START(BK3, "Liebherr controller BK3.1") + /* Maintainer: Lukasz Majewski */ + .atag_offset = 0x100, + .map_io = bk3_map_io, + .init_irq = ep93xx_init_irq, + .init_time = ep93xx_timer_init, + .init_machine = bk3_init_machine, + .init_late = ep93xx_init_late, + .restart = ep93xx_restart, +MACHINE_END diff --git a/arch/arm/mach-ep93xx/ts72xx.h b/arch/arm/mach-ep93xx/ts72xx.h index a9d3bb49f666..07f6491f35ea 100644 --- a/arch/arm/mach-ep93xx/ts72xx.h +++ b/arch/arm/mach-ep93xx/ts72xx.h @@ -44,6 +44,11 @@ #define TS72XX_WDT_CONTROL_PHYS_BASE 0x23800000 #define TS72XX_WDT_FEED_PHYS_BASE 0x23c00000 +/* BK3 specific defines */ +#define BK3_CPLDVER_PHYS_BASE 0x23400000 +#define BK3_CPLDVER_VIRT_BASE 0xfebfd000 +#define BK3_CPLDVER_SIZE 0x00001000 + #ifndef __ASSEMBLY__ static inline int ts72xx_model(void) diff --git a/arch/arm/tools/mach-types b/arch/arm/tools/mach-types index a9313b66f770..4eac94c1eb6f 100644 --- a/arch/arm/tools/mach-types +++ b/arch/arm/tools/mach-types @@ -345,6 +345,7 @@ mxlads MACH_MXLADS MXLADS 1851 linkstation_mini MACH_LINKSTATION_MINI LINKSTATION_MINI 1858 afeb9260 MACH_AFEB9260 AFEB9260 1859 imx27ipcam MACH_IMX27IPCAM IMX27IPCAM 1871 +bk3 MACH_BK3 BK3 1880 rd88f6183ap_ge MACH_RD88F6183AP_GE RD88F6183AP_GE 1894 realview_pba8 MACH_REALVIEW_PBA8 REALVIEW_PBA8 1897 realview_pbx MACH_REALVIEW_PBX REALVIEW_PBX 1901