From patchwork Tue Feb 25 22:17:44 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Markus Mayer X-Patchwork-Id: 25327 Return-Path: X-Original-To: linaro@patches.linaro.org Delivered-To: linaro@patches.linaro.org Received: from mail-ie0-f199.google.com (mail-ie0-f199.google.com [209.85.223.199]) by ip-10-151-82-157.ec2.internal (Postfix) with ESMTPS id B26ED20543 for ; Tue, 25 Feb 2014 22:18:31 +0000 (UTC) Received: by mail-ie0-f199.google.com with SMTP id lx4sf3990990iec.2 for ; Tue, 25 Feb 2014 14:18:31 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:delivered-to:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:sender:precedence:list-id :x-original-sender:x-original-authentication-results:mailing-list :list-post:list-help:list-archive:list-unsubscribe:content-type; bh=sA1oFt9CmDGwDYF+/crBiODLgfjWWJ4OTH9xUT4IpL8=; b=h1Pkunm+aqSa7CRizSSYQJNnqWrJAXJgeW/R3cDBsLg5pzxZy39/WKxZYYm4wUBCoa mDYeEzDkzoNgx4TIopl83GinhW4QpegWoOfTg3HGzLkHw9dx/OcNi84xYYimWRWI0Bf8 g4K+8/RijGmkzkBJgkXZNtUZAv19BzCA8P2j5H7QYvcBYeTzVQ7ME549/r5Lvd7r0gBG HNYkp/AcJLAZDTJhIEWPvDYn7O8LTBmn6l5ruAcgeKw6j/vfJNneEUAQAh9+gvxJSILk jro1RbGNJfvlcFKFk5KaH5z28M0BmPBXk1oOfRSIhdloVmPKTiqTQ8K/B8qQvcL2+oN3 lpVQ== X-Gm-Message-State: ALoCoQlJHOoKaXU4QUMiyl9XDXk6Ea25Za5hA6obT/pwSm09u6KnCTw6w7TbFRRAn18VD6HnYaeo X-Received: by 10.182.118.194 with SMTP id ko2mr1794323obb.32.1393366711059; Tue, 25 Feb 2014 14:18:31 -0800 (PST) X-BeenThere: patchwork-forward@linaro.org Received: by 10.140.25.33 with SMTP id 30ls2663595qgs.22.gmail; Tue, 25 Feb 2014 14:18:30 -0800 (PST) X-Received: by 10.220.147.16 with SMTP id j16mr2993007vcv.28.1393366710817; Tue, 25 Feb 2014 14:18:30 -0800 (PST) Received: from mail-vc0-f180.google.com (mail-vc0-f180.google.com [209.85.220.180]) by mx.google.com with ESMTPS id sj10si7202395vcb.15.2014.02.25.14.18.30 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Tue, 25 Feb 2014 14:18:30 -0800 (PST) Received-SPF: neutral (google.com: 209.85.220.180 is neither permitted nor denied by best guess record for domain of patch+caf_=patchwork-forward=linaro.org@linaro.org) client-ip=209.85.220.180; Received: by mail-vc0-f180.google.com with SMTP id ks9so50753vcb.25 for ; Tue, 25 Feb 2014 14:18:30 -0800 (PST) X-Received: by 10.58.201.5 with SMTP id jw5mr2891421vec.6.1393366710731; Tue, 25 Feb 2014 14:18:30 -0800 (PST) X-Forwarded-To: patchwork-forward@linaro.org X-Forwarded-For: patch@linaro.org patchwork-forward@linaro.org Delivered-To: patch@linaro.org Received: by 10.220.174.196 with SMTP id u4csp171323vcz; Tue, 25 Feb 2014 14:18:30 -0800 (PST) X-Received: by 10.67.13.226 with SMTP id fb2mr4245290pad.146.1393366709882; Tue, 25 Feb 2014 14:18:29 -0800 (PST) Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id ey10si1935707pab.227.2014.02.25.14.18.29; Tue, 25 Feb 2014 14:18:29 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753502AbaBYWSU (ORCPT + 26 others); Tue, 25 Feb 2014 17:18:20 -0500 Received: from mail-gw3-out.broadcom.com ([216.31.210.64]:13984 "EHLO mail-gw3-out.broadcom.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752530AbaBYWSS (ORCPT ); Tue, 25 Feb 2014 17:18:18 -0500 X-IronPort-AV: E=Sophos;i="4.97,542,1389772800"; d="scan'208";a="16363943" Received: from irvexchcas08.broadcom.com (HELO IRVEXCHCAS08.corp.ad.broadcom.com) ([10.9.208.57]) by mail-gw3-out.broadcom.com with ESMTP; 25 Feb 2014 14:29:44 -0800 Received: from IRVEXCHSMTP2.corp.ad.broadcom.com (10.9.207.52) by IRVEXCHCAS08.corp.ad.broadcom.com (10.9.208.57) with Microsoft SMTP Server (TLS) id 14.3.174.1; Tue, 25 Feb 2014 14:18:17 -0800 Received: from mail-irva-13.broadcom.com (10.10.10.20) by IRVEXCHSMTP2.corp.ad.broadcom.com (10.9.207.52) with Microsoft SMTP Server id 14.3.174.1; Tue, 25 Feb 2014 14:18:17 -0800 Received: from mail.broadcom.com (lbrmn-lnxub70.ric.broadcom.com [10.136.8.215]) by mail-irva-13.broadcom.com (Postfix) with ESMTP id 31B5BEEBB8; Tue, 25 Feb 2014 14:18:17 -0800 (PST) From: Markus Mayer To: Matt Porter , Christian Daudt CC: ARM Kernel List , "Linux Kernel Mailing List" Subject: [PATCH 2/4] ARM: bcm281xx: Consolidate reboot code Date: Tue, 25 Feb 2014 14:17:44 -0800 Message-ID: <1393366666-28625-3-git-send-email-markus.mayer@linaro.org> X-Mailer: git-send-email 1.7.9.5 In-Reply-To: <1393366666-28625-1-git-send-email-markus.mayer@linaro.org> References: <1393366666-28625-1-git-send-email-markus.mayer@linaro.org> MIME-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org Precedence: list List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Removed-Original-Auth: Dkim didn't pass. X-Original-Sender: markus.mayer@linaro.org X-Original-Authentication-Results: mx.google.com; spf=neutral (google.com: 209.85.220.180 is neither permitted nor denied by best guess record for domain of patch+caf_=patchwork-forward=linaro.org@linaro.org) smtp.mail=patch+caf_=patchwork-forward=linaro.org@linaro.org Mailing-list: list patchwork-forward@linaro.org; contact patchwork-forward+owners@linaro.org X-Google-Group-Id: 836684582541 List-Post: , List-Help: , List-Archive: List-Unsubscribe: , Consolidate reboot code and remove unnecessary functions. Signed-off-by: Markus Mayer --- arch/arm/mach-bcm/board_bcm281xx.c | 46 ++++++++++++++++++++++++--------- arch/arm/mach-bcm/kona.c | 50 ------------------------------------ arch/arm/mach-bcm/kona.h | 4 --- 3 files changed, 34 insertions(+), 66 deletions(-) diff --git a/arch/arm/mach-bcm/board_bcm281xx.c b/arch/arm/mach-bcm/board_bcm281xx.c index 4874f56..e0d0bc5e 100644 --- a/arch/arm/mach-bcm/board_bcm281xx.c +++ b/arch/arm/mach-bcm/board_bcm281xx.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012-2013 Broadcom Corporation + * Copyright (C) 2012-2014 Broadcom Corporation * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as @@ -19,25 +19,47 @@ #include "kona.h" -static void bcm_board_setup_restart(void) +#define SECWDOG_OFFSET 0x00000000 +#define SECWDOG_RESERVED_MASK 0xe2000000 +#define SECWDOG_WD_LOAD_FLAG_MASK 0x10000000 +#define SECWDOG_EN_MASK 0x08000000 +#define SECWDOG_SRSTEN_MASK 0x04000000 +#define SECWDOG_CLKS_SHIFT 20 +#define SECWDOG_COUNT_SHIFT 0 + +static void bcm281xx_restart(enum reboot_mode mode, const char *cmd) { - struct device_node *np; + uint32_t val; + void __iomem *base; + struct device_node *np_wdog; - np = of_find_compatible_node(NULL, NULL, "brcm,bcm11351"); - if (np) { - if (of_device_is_available(np)) - bcm_kona_setup_restart(); - of_node_put(np); + np_wdog = of_find_compatible_node(NULL, NULL, "brcm,kona-wdt"); + if (!np_wdog) { + pr_emerg("Couldn't find brcm,kona-wdt\n"); + return; + } + base = of_iomap(np_wdog, 0); + if (!base) { + pr_emerg("Couldn't map brcm,kona-wdt\n"); + return; } - /* Restart setup for other boards goes here */ + + /* Enable watchdog with short timeout (244us). */ + val = readl(base + SECWDOG_OFFSET); + val &= SECWDOG_RESERVED_MASK | SECWDOG_WD_LOAD_FLAG_MASK; + val |= SECWDOG_EN_MASK | SECWDOG_SRSTEN_MASK | + (0x15 << SECWDOG_CLKS_SHIFT) | + (0x8 << SECWDOG_COUNT_SHIFT); + writel(val, base + SECWDOG_OFFSET); + + /* Wait for reset */ + while (1); } static void __init board_init(void) { of_platform_populate(NULL, of_default_bus_match_table, NULL, &platform_bus); - - bcm_board_setup_restart(); kona_l2_cache_init(); } @@ -45,6 +67,6 @@ static const char * const bcm11351_dt_compat[] = { "brcm,bcm11351", NULL, }; DT_MACHINE_START(BCM11351_DT, "BCM281xx Broadcom Application Processor") .init_machine = board_init, - .restart = bcm_kona_restart, + .restart = bcm281xx_restart, .dt_compat = bcm11351_dt_compat, MACHINE_END diff --git a/arch/arm/mach-bcm/kona.c b/arch/arm/mach-bcm/kona.c index 2f1db29..768bc28 100644 --- a/arch/arm/mach-bcm/kona.c +++ b/arch/arm/mach-bcm/kona.c @@ -11,10 +11,8 @@ * GNU General Public License for more details. */ -#include #include #include -#include #include "bcm_kona_smc.h" #include "kona.h" @@ -43,51 +41,3 @@ void __init kona_l2_cache_init(void) if (ret) pr_err("Couldn't enable L2 cache: %d\n", ret); } - -static void __iomem *watchdog_base; - -void bcm_kona_setup_restart(void) -{ - struct device_node *np_wdog; - - /* - * The assumption is that whoever calls bcm_kona_setup_restart() - * also needs a Kona Watchdog Timer entry in Device Tree, i.e. we - * report an error if the DT entry is missing. - */ - np_wdog = of_find_compatible_node(NULL, NULL, "brcm,kona-wdt"); - if (!np_wdog) { - pr_err("brcm,kona-wdt not found in DT, reboot disabled\n"); - return; - } - watchdog_base = of_iomap(np_wdog, 0); - WARN(!watchdog_base, "failed to map watchdog base"); - of_node_put(np_wdog); -} - -#define SECWDOG_OFFSET 0x00000000 -#define SECWDOG_RESERVED_MASK 0xE2000000 -#define SECWDOG_WD_LOAD_FLAG_MASK 0x10000000 -#define SECWDOG_EN_MASK 0x08000000 -#define SECWDOG_SRSTEN_MASK 0x04000000 -#define SECWDOG_CLKS_SHIFT 20 -#define SECWDOG_LOCK_SHIFT 0 - -void bcm_kona_restart(enum reboot_mode mode, const char *cmd) -{ - uint32_t val; - - if (!watchdog_base) - panic("Watchdog not mapped. Reboot failed.\n"); - - /* Enable watchdog2 with very short timeout. */ - val = readl(watchdog_base + SECWDOG_OFFSET); - val &= SECWDOG_RESERVED_MASK | SECWDOG_WD_LOAD_FLAG_MASK; - val |= SECWDOG_EN_MASK | SECWDOG_SRSTEN_MASK | - (0x8 << SECWDOG_CLKS_SHIFT) | - (0x8 << SECWDOG_LOCK_SHIFT); - writel(val, watchdog_base + SECWDOG_OFFSET); - - while (1) - ; -} diff --git a/arch/arm/mach-bcm/kona.h b/arch/arm/mach-bcm/kona.h index f42aef8..3a7a017 100644 --- a/arch/arm/mach-bcm/kona.h +++ b/arch/arm/mach-bcm/kona.h @@ -11,8 +11,4 @@ * GNU General Public License for more details. */ -#include - void __init kona_l2_cache_init(void); -void bcm_kona_setup_restart(void); -void bcm_kona_restart(enum reboot_mode mode, const char *cmd);