From patchwork Mon May 16 16:33:39 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Hawkins, Nick" X-Patchwork-Id: 12851102 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 83433C433FE for ; Mon, 16 May 2022 16:33:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:MIME-Version:List-Subscribe:List-Help: List-Post:List-Archive:List-Unsubscribe:List-Id:Message-Id:Date:Subject:Cc:To :From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=vbCvmwmyQBKLkSrDuPDJgTrEulEOEOi71y+MzJntSiU=; b=iEdjDuy7W2mxlr Tri9Avp+8i1WBygzTAOYf4GzVt+wcKpvJ7ynSxqp1//E/Zwl0OwgYgpsBlfK2eOsZphT2UUQKPoyz vMxmPc22naxqhYdUbFue5AZJArDRpaGYkdvOR9+67ny/SCV9Jqc0FUeZ79X2i6MG2ER0HL3PuS6LA 99xqxBoEW5pRGE5peFb0qTrlI52ccnUTI7/jemrO5l4m4/6qhRGGcOSL5NreIoGnG/90Mk0Pgp64D SMFrKdgAuLP0PE36zGpn5JtAk6PQsolFTAQuAYH7wDz0dav2VgTKiu5aBnQjNt1cTW+N85k/jTQt5 aHPLdepMcYTGQWG6avgg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nqddy-0091JV-BU; Mon, 16 May 2022 16:32:26 +0000 Received: from mx0a-002e3701.pphosted.com ([148.163.147.86]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nqdda-0091AD-LI for linux-arm-kernel@lists.infradead.org; Mon, 16 May 2022 16:32:05 +0000 Received: from pps.filterd (m0134421.ppops.net [127.0.0.1]) by mx0b-002e3701.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 24GDjWtQ014154; Mon, 16 May 2022 16:31:57 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hpe.com; h=from : to : cc : subject : date : message-id; s=pps0720; bh=wpSXGNAyuHWjjFPq5i7K7209W2allUtcooZdy2mljhE=; b=RYo1MX2HP1cCjuiYReEJxaLXe6z432/j5cG0ok57ro8WN5lgTl5BgORLjJVS8cQJdBMF XAkk2ZdFEdPuZsYL2N3Fe7rVi+xlorG9yvRyhMUf8FqP2GSXwDoYezqlHzt67oe4Gs5n ChC5DBfmn8XBaaIdOwDue3G7I+vNPVHoW59zzOAGthnA2BOZDzo0eKwcgE/1rq33Zv5s T3Z7XcYb9lM9Mxe8JjdsGr8QJbf6QnjUqw0HCszU72soUVfhckSuTnxfa/ZQ0kV8ZQLE 5EH7i/+OxbKuZmsTBz44ATXupyTmo5D4r4SRxC9hD9rPFMy/VWjPXvkAI0qveg5e7Anp 2Q== Received: from g4t3425.houston.hpe.com (g4t3425.houston.hpe.com [15.241.140.78]) by mx0b-002e3701.pphosted.com (PPS) with ESMTPS id 3g3qs2t4jc-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 16 May 2022 16:31:57 +0000 Received: from g9t2301.houston.hpecorp.net (g9t2301.houston.hpecorp.net [16.220.97.129]) by g4t3425.houston.hpe.com (Postfix) with ESMTP id 303F98D; Mon, 16 May 2022 16:31:56 +0000 (UTC) Received: from hpe.com (cigateway-dev.us.rdlabs.hpecorp.net [10.14.73.30]) by g9t2301.houston.hpecorp.net (Postfix) with ESMTP id ACCD84C; Mon, 16 May 2022 16:31:55 +0000 (UTC) From: nick.hawkins@hpe.com To: verdun@hpe.com, nick.hawkins@hpe.com, joel@jms.id.au, arnd@arndb.de, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Cc: Russell King Subject: [PATCH v8 1/8] ARM: hpe: Introduce the HPE GXP architecture Date: Mon, 16 May 2022 11:33:39 -0500 Message-Id: <20220516163347.44890-1-nick.hawkins@hpe.com> X-Mailer: git-send-email 2.17.1 X-Proofpoint-ORIG-GUID: J0tNU-A42C1B7yvcsFEiVqFp3wC3QQr4 X-Proofpoint-GUID: J0tNU-A42C1B7yvcsFEiVqFp3wC3QQr4 X-HPE-SCL: -1 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.858,Hydra:6.0.486,FMLib:17.11.64.514 definitions=2022-05-16_15,2022-05-16_02,2022-02-23_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 bulkscore=0 priorityscore=1501 suspectscore=0 lowpriorityscore=0 impostorscore=0 spamscore=0 mlxscore=0 mlxlogscore=999 malwarescore=0 clxscore=1015 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205160092 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220516_093202_734508_B253EF27 X-CRM114-Status: GOOD ( 23.54 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org From: Nick Hawkins The GXP is the HPE BMC SoC that is used in the majority of current generation HPE servers. Traditionally the asic will last multiple generations of server before being replaced. Info about SoC: HPE GXP is the name of the HPE Soc. This SoC is used to implement many BMC features at HPE. It supports ARMv7 architecture based on the Cortex A9 core. It is capable of using an AXI bus to whicha memory controller is attached. It has multiple SPI interfaces to connect boot flash and BIOS flash. It uses a 10/100/1000 MAC for network connectivity. It has multiple i2c engines to drive connectivity with a host infrastructure. There currently are no public specifications but this process is being worked. Previously there was a requirement to reset the EHCI controller for the asic to boot. This functionality has been moved to the u-boot bootloader. Signed-off-by: Nick Hawkins --- v8: * No change v7: * No change v6: * Adjusted title to match log entries * Reconfigured commit message to be closer to 75 char. * Add space before comment delimiter. * Added a more elaborate Kconfig help section and fixed punctuation. * Fixed l2c_aux_map initialization. v5: * Fixed version log * Removed incorrect statement about reset. v4: * Removed unnecessary code: restart, iomap, init_machine * Reordered Kconfig depends * Removed SPARSE_IRQ, MULTI_IRQ_HANDLER, IRQ_DOMAIN, PINCTL from Kconfig v3: * Put into proper patchset format v2: * No change --- arch/arm/Kconfig | 2 ++ arch/arm/Makefile | 1 + arch/arm/mach-hpe/Kconfig | 23 +++++++++++++++++++++++ arch/arm/mach-hpe/Makefile | 1 + arch/arm/mach-hpe/gxp.c | 16 ++++++++++++++++ 5 files changed, 43 insertions(+) create mode 100644 arch/arm/mach-hpe/Kconfig create mode 100644 arch/arm/mach-hpe/Makefile create mode 100644 arch/arm/mach-hpe/gxp.c diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 2e8091e2d8a8..13f77eec7c40 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -620,6 +620,8 @@ source "arch/arm/mach-highbank/Kconfig" source "arch/arm/mach-hisi/Kconfig" +source "arch/arm/mach-hpe/Kconfig" + source "arch/arm/mach-imx/Kconfig" source "arch/arm/mach-integrator/Kconfig" diff --git a/arch/arm/Makefile b/arch/arm/Makefile index a2391b8de5a5..97a89023c10f 100644 --- a/arch/arm/Makefile +++ b/arch/arm/Makefile @@ -179,6 +179,7 @@ machine-$(CONFIG_ARCH_FOOTBRIDGE) += footbridge machine-$(CONFIG_ARCH_GEMINI) += gemini machine-$(CONFIG_ARCH_HIGHBANK) += highbank machine-$(CONFIG_ARCH_HISI) += hisi +machine-$(CONFIG_ARCH_HPE) += hpe machine-$(CONFIG_ARCH_INTEGRATOR) += integrator machine-$(CONFIG_ARCH_IOP32X) += iop32x machine-$(CONFIG_ARCH_IXP4XX) += ixp4xx diff --git a/arch/arm/mach-hpe/Kconfig b/arch/arm/mach-hpe/Kconfig new file mode 100644 index 000000000000..3372bbf38d38 --- /dev/null +++ b/arch/arm/mach-hpe/Kconfig @@ -0,0 +1,23 @@ +menuconfig ARCH_HPE + bool "HPE SoC support" + depends on ARCH_MULTI_V7 + help + This enables support for HPE ARM based BMC chips. +if ARCH_HPE + +config ARCH_HPE_GXP + bool "HPE GXP SoC" + depends on ARCH_MULTI_V7 + select ARM_VIC + select GENERIC_IRQ_CHIP + select CLKSRC_MMIO + help + HPE GXP is the name of the HPE Soc. This SoC is used to implement many + BMC features at HPE. It supports ARMv7 architecture based on the Cortex + A9 core. It is capable of using an AXI bus to which a memory controller + is attached. It has multiple SPI interfaces to connect boot flash and + BIOS flash. It uses a 10/100/1000 MAC for network connectivity. It + has multiple i2c engines to drive connectivity with a host + infrastructure. + +endif diff --git a/arch/arm/mach-hpe/Makefile b/arch/arm/mach-hpe/Makefile new file mode 100644 index 000000000000..8b0a91234df4 --- /dev/null +++ b/arch/arm/mach-hpe/Makefile @@ -0,0 +1 @@ +obj-$(CONFIG_ARCH_HPE_GXP) += gxp.o diff --git a/arch/arm/mach-hpe/gxp.c b/arch/arm/mach-hpe/gxp.c new file mode 100644 index 000000000000..ef3341373006 --- /dev/null +++ b/arch/arm/mach-hpe/gxp.c @@ -0,0 +1,16 @@ +// SPDX-License-Identifier: GPL-2.0 +/* Copyright (C) 2022 Hewlett-Packard Enterprise Development Company, L.P. */ + +#include +#include + +static const char * const gxp_board_dt_compat[] = { + "hpe,gxp", + NULL, +}; + +DT_MACHINE_START(GXP_DT, "HPE GXP") + .dt_compat = gxp_board_dt_compat, + .l2c_aux_val = 0, + .l2c_aux_mask = ~0, +MACHINE_END From patchwork Mon May 16 16:33:40 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Hawkins, Nick" X-Patchwork-Id: 12851103 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id E515EC433EF for ; Mon, 16 May 2022 16:34:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:MIME-Version:List-Subscribe:List-Help: List-Post:List-Archive:List-Unsubscribe:List-Id:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=zDLfJeXtGJ0gr0pwU9zz2YxCVvWQnZeFVZxhChwRaeU=; b=B7nLgsZc7B/3ry c53ZVT4Ep9saqIYrpkVX6+QQU4Z+DZ17eWEDI4YqGUe96E+iiPUUU7E4zEHICP4M3T9Vsl+e5KIkv PxbpttWu6Q5WH1a7fHt6JSWaVShjtMdY0v/QCfqtkyzpODClvU3PXsr70yRZqz88KYaOrYM+9xNNU eJGdFP7FrLCMaZfvIZlSkJwIvHnwBbFlvAJxSnxPGdE0Oi5SXgzU1GGmEw9amSWkSYWeg0NGqfWXR Z3I8cnBfnkdrJcuEgwDBeVKf+6SuACWQuC6/Np7h9R8wA4TQKLigwJ46gKvz+uke+6NJ68Z53gFcg 8pYzKuar5HU3JeBY1Evw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nqdek-0091fu-09; Mon, 16 May 2022 16:33:14 +0000 Received: from mx0b-002e3701.pphosted.com ([148.163.143.35]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nqddh-0091D8-LI for linux-arm-kernel@lists.infradead.org; Mon, 16 May 2022 16:32:13 +0000 Received: from pps.filterd (m0134425.ppops.net [127.0.0.1]) by mx0b-002e3701.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 24GDemVf001086; Mon, 16 May 2022 16:32:03 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hpe.com; h=from : to : cc : subject : date : message-id : in-reply-to : references; s=pps0720; bh=U6iT65ESgj9xzT9FPRXtWt9FQhbGzgoa/PB5GErlu/A=; b=e2I5X9vPZTDG7G/kLXQSR+TRHq5GmqSF6qNJM4nwlQfBC6Vm0Ur3pYKWZHFnsDX5u+Ts Yrbwt0EsZNqWG1V27xqeFIwhiQ2JOgNCukWsAEIIIpz1BLQDOfwGNmOEbhtgtJliz6TF da+IicWndzC7QxrLh1vL+2IzIIakj76aFhTEZ4ADfTasPOAjElPCGX1YR86nlhR5VP/1 na0NvZgEYNzabbvB9wgu87twSUZGd5tXmk6YEdx0fFWAsYDK/19Yac07JU8XMbNqmvvg +wQ2kx/nowZPwIwhWsg9JrdOK8JPYRyQq79WC1tcArxvyiDZw2+/yqyMqVmDHavAA8S2 aw== Received: from g4t3426.houston.hpe.com (g4t3426.houston.hpe.com [15.241.140.75]) by mx0b-002e3701.pphosted.com (PPS) with ESMTPS id 3g3qq6a9c8-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 16 May 2022 16:32:03 +0000 Received: from g9t2301.houston.hpecorp.net (g9t2301.houston.hpecorp.net [16.220.97.129]) by g4t3426.houston.hpe.com (Postfix) with ESMTP id 9084454; Mon, 16 May 2022 16:32:02 +0000 (UTC) Received: from hpe.com (cigateway-dev.us.rdlabs.hpecorp.net [10.14.73.30]) by g9t2301.houston.hpecorp.net (Postfix) with ESMTP id 2F1FD4D; Mon, 16 May 2022 16:32:02 +0000 (UTC) From: nick.hawkins@hpe.com To: verdun@hpe.com, nick.hawkins@hpe.com, joel@jms.id.au, arnd@arndb.de, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Cc: Russell King Subject: [PATCH v8 2/8] ARM: configs: multi_v7_defconfig: Add HPE GXP ARCH Date: Mon, 16 May 2022 11:33:40 -0500 Message-Id: <20220516163347.44890-2-nick.hawkins@hpe.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20220516163347.44890-1-nick.hawkins@hpe.com> References: <20220516163347.44890-1-nick.hawkins@hpe.com> X-Proofpoint-GUID: YXiORmkdndk2cOF8DLGPc6o0we7Zri1V X-Proofpoint-ORIG-GUID: YXiORmkdndk2cOF8DLGPc6o0we7Zri1V X-HPE-SCL: -1 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.858,Hydra:6.0.486,FMLib:17.11.64.514 definitions=2022-05-16_15,2022-05-16_02,2022-02-23_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 mlxscore=0 adultscore=0 impostorscore=0 malwarescore=0 phishscore=0 mlxlogscore=895 priorityscore=1501 spamscore=0 suspectscore=0 clxscore=1015 lowpriorityscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205160092 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220516_093209_895904_0302DBD4 X-CRM114-Status: GOOD ( 14.27 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org From: Nick Hawkins Enable HPE GXP Architecture and its watchdog for base support for HPE GXP SoCs. Signed-off-by: Nick Hawkins --- v8: * No change v7: * No change v6: * Changed the title to match others in log * Changed the patch description * Ran savedefconfig to place GXP configs in file correctly v5: * Fix version log v4: * No change v3: * Put into proper patch format * Modified the multi_v7_defconfig instead of creating a gxp_defconfig v2: * Created gxp_defconfig --- arch/arm/configs/multi_v7_defconfig | 3 +++ 1 file changed, 3 insertions(+) diff --git a/arch/arm/configs/multi_v7_defconfig b/arch/arm/configs/multi_v7_defconfig index 6e0c8c19b35c..bdbb1c90e65d 100644 --- a/arch/arm/configs/multi_v7_defconfig +++ b/arch/arm/configs/multi_v7_defconfig @@ -42,6 +42,8 @@ CONFIG_ARCH_HI3xxx=y CONFIG_ARCH_HIP01=y CONFIG_ARCH_HIP04=y CONFIG_ARCH_HIX5HD2=y +CONFIG_ARCH_HPE=y +CONFIG_ARCH_HPE_GXP=y CONFIG_ARCH_MXC=y CONFIG_SOC_IMX50=y CONFIG_SOC_IMX51=y @@ -562,6 +564,7 @@ CONFIG_BCM47XX_WDT=y CONFIG_BCM2835_WDT=y CONFIG_BCM_KONA_WDT=y CONFIG_BCM7038_WDT=m +CONFIG_GXP_WATCHDOG=y CONFIG_BCMA_HOST_SOC=y CONFIG_BCMA_DRIVER_GMAC_CMN=y CONFIG_BCMA_DRIVER_GPIO=y From patchwork Mon May 16 16:33:41 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Hawkins, Nick" X-Patchwork-Id: 12851104 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id D4921C433EF for ; Mon, 16 May 2022 16:35:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:MIME-Version:List-Subscribe:List-Help: List-Post:List-Archive:List-Unsubscribe:List-Id:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=5thqhU3R75A2eWyT8Ro6PbrEZ8DBrIGM5hjA2u+bPOI=; b=4JAp6ZSX5e5CcL BBhpCKX/+Oyh/IQohBXN8+VLo2/O7jpVasHpVv3on9s3/xsgcBlBIpmTAZ4MnCIfIaduovu/GAoDA TJROSV8iVCXeiEBhOiWA0P3jTqhJGAzYxbiMdLx7GzyQQ5Qj+GU24oRe/GUNGu/TjWUqvisiGks6X KH5e2zbPAYAnJz2UeABeYcHoXNENTjTE5zUUQUkLFENaL2wbVt7/Mm/HEFMHe+cTSmMwj4RUFWsI0 SCCpC43Ds+vCp+dmE/81eitxMV8IUKYVT0ON/dEB5qGNceseaV4qqF4rP7/5ldAbjH/9OrDJfvbnk vXSS0vWoTRRDgrJkOWZg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nqdfE-0091u7-PA; Mon, 16 May 2022 16:33:45 +0000 Received: from mx0a-002e3701.pphosted.com ([148.163.147.86]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nqddm-0091F5-QH for linux-arm-kernel@lists.infradead.org; Mon, 16 May 2022 16:32:16 +0000 Received: from pps.filterd (m0150241.ppops.net [127.0.0.1]) by mx0a-002e3701.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 24GF2qxe030074; Mon, 16 May 2022 16:32:10 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hpe.com; h=from : to : cc : subject : date : message-id : in-reply-to : references; s=pps0720; bh=mesVnaXvBBE2e6VPyFYi1tXI+1JFaDMfH1SE/dI74QI=; b=TpKpc31drL7lLWU08WyG3xPAAhsYf6y1GPTyXAUwksDGRCZ1LWc+nELubdYr5UUX/CqU jX5/yk88AntRNhLj/Ff0L4jm/b5kzt1qRD9SukvQWlC7XYertIhOO18MIbqmOsT5me73 xa06WJhE6KVs8D6JSda/+mhku5Are2WzbQwzy7vT0fxZlekMehpYL31+uCIH4F51+ruU e5IkagFSY1tmYjlPBRZrC295y1vXsZnYkmJONXEyzAWRB76xEBLFBO+lAMw44jwJpqTk rLXkBP9FuyOtn65fj2gLlI/DgRneTGfCIsOoHR399Noszw32WboMj0+U32Ptx3dZxAF9 eA== Received: from g9t5008.houston.hpe.com (g9t5008.houston.hpe.com [15.241.48.72]) by mx0a-002e3701.pphosted.com (PPS) with ESMTPS id 3g3kgrdj71-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 16 May 2022 16:32:10 +0000 Received: from g9t2301.houston.hpecorp.net (g9t2301.houston.hpecorp.net [16.220.97.129]) by g9t5008.houston.hpe.com (Postfix) with ESMTP id AB7CB4F; Mon, 16 May 2022 16:32:08 +0000 (UTC) Received: from hpe.com (cigateway-dev.us.rdlabs.hpecorp.net [10.14.73.30]) by g9t2301.houston.hpecorp.net (Postfix) with ESMTP id F258148; Mon, 16 May 2022 16:32:07 +0000 (UTC) From: nick.hawkins@hpe.com To: verdun@hpe.com, nick.hawkins@hpe.com, joel@jms.id.au, arnd@arndb.de, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Cc: Wim Van Sebroeck , Guenter Roeck , linux-watchdog@vger.kernel.org Subject: [PATCH v8 3/8] watchdog: hpe-wdt: Introduce HPE GXP Watchdog Date: Mon, 16 May 2022 11:33:41 -0500 Message-Id: <20220516163347.44890-3-nick.hawkins@hpe.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20220516163347.44890-1-nick.hawkins@hpe.com> References: <20220516163347.44890-1-nick.hawkins@hpe.com> X-Proofpoint-ORIG-GUID: E2Tdm_gP-9sTjIUjsnGjW2VT8BRYLdY8 X-Proofpoint-GUID: E2Tdm_gP-9sTjIUjsnGjW2VT8BRYLdY8 X-HPE-SCL: -1 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.858,Hydra:6.0.486,FMLib:17.11.64.514 definitions=2022-05-16_15,2022-05-16_02,2022-02-23_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 clxscore=1015 impostorscore=0 mlxscore=0 bulkscore=0 priorityscore=1501 malwarescore=0 lowpriorityscore=0 phishscore=0 mlxlogscore=999 adultscore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205160092 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220516_093214_922317_55E600B0 X-CRM114-Status: GOOD ( 30.65 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org From: Nick Hawkins Add support for the HPE GXP Watchdog. The GXP asic contains a full complement of timers one of which is the watchdog timer. The watchdog timer is 16 bit and has 10ms resolution. The watchdog is created as a child device of timer since the same register range is used. Signed-off-by: Nick Hawkins Acked-by: Guenter Roeck --- v8: * Fix comment format v7: * Change commit description to replace Adding with Add and compliment with complement * Removed unused include files of_address.h and of_platform.h * Fixed the max timeout on watchdog to be 655350 * Changed time variable computations in gxp_wdt_set_timeout to be clear * Decreased reboot delay to 10ms from 100ms * Added comment to explain why it is necessary to pass the base address over a private interface from the timer driver. v6: * No code change. * Fixed commit subject line to match the ones in log. * Adjusted commit message to be closer to 75 chars per line. v5: * Fixed version log * Added details to Kconfig for module support. * Adjusted commit messaged v4: * Made watchdog a child of timer as they share the same register region per change request on dtsi. * Removed extra parenthesis * Fixed u8 u32 u64 usage * Fixed alignment issue * Reconfigured conditional statement for interrupt setup * Removed unused gxp_wdt_remove function v3: * Put into proper patchset format v2: * No change --- drivers/watchdog/Kconfig | 11 +++ drivers/watchdog/Makefile | 1 + drivers/watchdog/gxp-wdt.c | 174 +++++++++++++++++++++++++++++++++++++ 3 files changed, 186 insertions(+) create mode 100644 drivers/watchdog/gxp-wdt.c diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig index c4e82a8d863f..a591cc6aa152 100644 --- a/drivers/watchdog/Kconfig +++ b/drivers/watchdog/Kconfig @@ -1820,6 +1820,17 @@ config RALINK_WDT help Hardware driver for the Ralink SoC Watchdog Timer. +config GXP_WATCHDOG + tristate "HPE GXP watchdog support" + depends on ARCH_HPE_GXP + select WATCHDOG_CORE + help + Say Y here to include support for the watchdog timer + in HPE GXP SoCs. + + To compile this driver as a module, choose M here. + The module will be called gxp-wdt. + config MT7621_WDT tristate "Mediatek SoC watchdog" select WATCHDOG_CORE diff --git a/drivers/watchdog/Makefile b/drivers/watchdog/Makefile index f7da867e8782..e2acf3a0d0fc 100644 --- a/drivers/watchdog/Makefile +++ b/drivers/watchdog/Makefile @@ -92,6 +92,7 @@ obj-$(CONFIG_RTD119X_WATCHDOG) += rtd119x_wdt.o obj-$(CONFIG_SPRD_WATCHDOG) += sprd_wdt.o obj-$(CONFIG_PM8916_WATCHDOG) += pm8916_wdt.o obj-$(CONFIG_ARM_SMC_WATCHDOG) += arm_smc_wdt.o +obj-$(CONFIG_GXP_WATCHDOG) += gxp-wdt.o obj-$(CONFIG_VISCONTI_WATCHDOG) += visconti_wdt.o obj-$(CONFIG_MSC313E_WATCHDOG) += msc313e_wdt.o obj-$(CONFIG_APPLE_WATCHDOG) += apple_wdt.o diff --git a/drivers/watchdog/gxp-wdt.c b/drivers/watchdog/gxp-wdt.c new file mode 100644 index 000000000000..b0b2d7a6fdde --- /dev/null +++ b/drivers/watchdog/gxp-wdt.c @@ -0,0 +1,174 @@ +// SPDX-License-Identifier: GPL-2.0 +/* Copyright (C) 2022 Hewlett-Packard Enterprise Development Company, L.P. */ + +#include +#include +#include +#include +#include +#include + +#define MASK_WDGCS_ENABLE 0x01 +#define MASK_WDGCS_RELOAD 0x04 +#define MASK_WDGCS_NMIEN 0x08 +#define MASK_WDGCS_WARN 0x80 + +#define WDT_MAX_TIMEOUT_MS 655350 +#define WDT_DEFAULT_TIMEOUT 30 +#define SECS_TO_WDOG_TICKS(x) ((x) * 100) +#define WDOG_TICKS_TO_SECS(x) ((x) / 100) + +#define GXP_WDT_CNT_OFS 0x10 +#define GXP_WDT_CTRL_OFS 0x16 + +struct gxp_wdt { + void __iomem *base; + struct watchdog_device wdd; +}; + +static void gxp_wdt_enable_reload(struct gxp_wdt *drvdata) +{ + u8 val; + + val = readb(drvdata->base + GXP_WDT_CTRL_OFS); + val |= (MASK_WDGCS_ENABLE | MASK_WDGCS_RELOAD); + writeb(val, drvdata->base + GXP_WDT_CTRL_OFS); +} + +static int gxp_wdt_start(struct watchdog_device *wdd) +{ + struct gxp_wdt *drvdata = watchdog_get_drvdata(wdd); + + writew(SECS_TO_WDOG_TICKS(wdd->timeout), drvdata->base + GXP_WDT_CNT_OFS); + gxp_wdt_enable_reload(drvdata); + return 0; +} + +static int gxp_wdt_stop(struct watchdog_device *wdd) +{ + struct gxp_wdt *drvdata = watchdog_get_drvdata(wdd); + u8 val; + + val = readb_relaxed(drvdata->base + GXP_WDT_CTRL_OFS); + val &= ~MASK_WDGCS_ENABLE; + writeb(val, drvdata->base + GXP_WDT_CTRL_OFS); + return 0; +} + +static int gxp_wdt_set_timeout(struct watchdog_device *wdd, + unsigned int timeout) +{ + struct gxp_wdt *drvdata = watchdog_get_drvdata(wdd); + u32 actual; + + wdd->timeout = timeout; + actual = min(timeout * 100, wdd->max_hw_heartbeat_ms / 10); + writew(actual, drvdata->base + GXP_WDT_CNT_OFS); + + return 0; +} + +static unsigned int gxp_wdt_get_timeleft(struct watchdog_device *wdd) +{ + struct gxp_wdt *drvdata = watchdog_get_drvdata(wdd); + u32 val = readw(drvdata->base + GXP_WDT_CNT_OFS); + + return WDOG_TICKS_TO_SECS(val); +} + +static int gxp_wdt_ping(struct watchdog_device *wdd) +{ + struct gxp_wdt *drvdata = watchdog_get_drvdata(wdd); + + gxp_wdt_enable_reload(drvdata); + return 0; +} + +static int gxp_restart(struct watchdog_device *wdd, unsigned long action, + void *data) +{ + struct gxp_wdt *drvdata = watchdog_get_drvdata(wdd); + + writew(1, drvdata->base + GXP_WDT_CNT_OFS); + gxp_wdt_enable_reload(drvdata); + mdelay(100); + return 0; +} + +static const struct watchdog_ops gxp_wdt_ops = { + .owner = THIS_MODULE, + .start = gxp_wdt_start, + .stop = gxp_wdt_stop, + .ping = gxp_wdt_ping, + .set_timeout = gxp_wdt_set_timeout, + .get_timeleft = gxp_wdt_get_timeleft, + .restart = gxp_restart, +}; + +static const struct watchdog_info gxp_wdt_info = { + .options = WDIOF_SETTIMEOUT | WDIOF_MAGICCLOSE | WDIOF_KEEPALIVEPING, + .identity = "HPE GXP Watchdog timer", +}; + +static int gxp_wdt_probe(struct platform_device *pdev) +{ + struct device *dev = &pdev->dev; + struct gxp_wdt *drvdata; + int err; + u8 val; + + drvdata = devm_kzalloc(dev, sizeof(struct gxp_wdt), GFP_KERNEL); + if (!drvdata) + return -ENOMEM; + + /* + * The register area where the timer and watchdog reside is disarranged. + * Hence mapping individual register blocks for the timer and watchdog + * is not recommended as they would have access to each others + * registers. Based on feedback the watchdog is no longer part of the + * device tree file and the timer driver now creates the watchdog as a + * child device. During the watchdogs creation, the timer driver passes + * the base address to the watchdog over the private interface. + */ + + drvdata->base = (void __iomem *)dev->platform_data; + + drvdata->wdd.info = &gxp_wdt_info; + drvdata->wdd.ops = &gxp_wdt_ops; + drvdata->wdd.max_hw_heartbeat_ms = WDT_MAX_TIMEOUT_MS; + drvdata->wdd.parent = dev; + drvdata->wdd.timeout = WDT_DEFAULT_TIMEOUT; + + watchdog_set_drvdata(&drvdata->wdd, drvdata); + watchdog_set_nowayout(&drvdata->wdd, WATCHDOG_NOWAYOUT); + + val = readb(drvdata->base + GXP_WDT_CTRL_OFS); + + if (val & MASK_WDGCS_ENABLE) + set_bit(WDOG_HW_RUNNING, &drvdata->wdd.status); + + watchdog_set_restart_priority(&drvdata->wdd, 128); + + watchdog_stop_on_reboot(&drvdata->wdd); + err = devm_watchdog_register_device(dev, &drvdata->wdd); + if (err) { + dev_err(dev, "Failed to register watchdog device"); + return err; + } + + dev_info(dev, "HPE GXP watchdog timer"); + + return 0; +} + +static struct platform_driver gxp_wdt_driver = { + .probe = gxp_wdt_probe, + .driver = { + .name = "gxp-wdt", + }, +}; +module_platform_driver(gxp_wdt_driver); + +MODULE_AUTHOR("Nick Hawkins "); +MODULE_AUTHOR("Jean-Marie Verdun "); +MODULE_DESCRIPTION("Driver for GXP watchdog timer"); From patchwork Mon May 16 16:33:42 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Hawkins, Nick" X-Patchwork-Id: 12851105 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 41F16C433F5 for ; Mon, 16 May 2022 16:35:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:MIME-Version:List-Subscribe:List-Help: List-Post:List-Archive:List-Unsubscribe:List-Id:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=BmMC3hUsxwHzk1rZuagCQtoI1ugaJE6stsPXwRykyVY=; b=Hu7QCBeurd129s 4JXNPUrSCe43nDrq7XkoGHHOZT8Npus/8saYaTKzxbwsgmxmWQcT0R5aSR4+1yFLKEnhi5Vf/nMw7 pOVOraYNerqme3DRPzkzINQkVi47uB6EIhFjKE94c2ms8Tcqelwfo/WAW4Fut+qkmNXzelFbvjuD8 dumzmn2vKoyUI/nDHrc2H53yy0621A0mcgehOFAXGpSmG8EqBLrxao98C6JKWe/UTogefjcS9eLHy ZZ3TSQ9Zwy8q5h3u4Qtpygm1aFSNpqjrZVGC8BA5uQzF5LphGeCQ9ku+jmxAuBOqKFiWI5eUDfXWC 8cjDTAyvP7I0mRZTN8lg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nqdft-0092EM-RS; Mon, 16 May 2022 16:34:26 +0000 Received: from mx0a-002e3701.pphosted.com ([148.163.147.86]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nqddv-0091Ik-NC for linux-arm-kernel@lists.infradead.org; Mon, 16 May 2022 16:32:25 +0000 Received: from pps.filterd (m0134421.ppops.net [127.0.0.1]) by mx0b-002e3701.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 24GDjOGv014036; Mon, 16 May 2022 16:32:16 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hpe.com; h=from : to : cc : subject : date : message-id : in-reply-to : references; s=pps0720; bh=dqqHqhDQru2TX56V393DRDtdi0DPOTqLKA9j/04U7EQ=; b=T0v3tcz78vrfxNdoCwocxvCNNko2IrJ/3BaED/BNi71BkUAn3NL0JYg1OQFkY23u2tzc F+V6+6p5TMwQimz+l/weLI/6sNH/mdxrWZ7Ym5erT21EqSEdU9NWYKzCjk7jaizM3vjA LggZmP5cAFuFNnOqUxtj+q6Pm7vz2Rrbxyop5G1nLJwwBHl2DLy4SpA6mBJASVGOoRVg 9BrUP3hk6oPS0KuGByVpYda1fHEz45cShu/jgKIeojOcvEhwTp6l7uFkl/gWXzsLftc1 BSF6Wb1U6SBHWCatsE1DVEMuk1cUs8hhTEESBfXdVyMXw7YodggEyulwBlY/KwKy7hf/ RA== Received: from g9t5008.houston.hpe.com (g9t5008.houston.hpe.com [15.241.48.72]) by mx0b-002e3701.pphosted.com (PPS) with ESMTPS id 3g3qs2t4nr-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 16 May 2022 16:32:15 +0000 Received: from g9t2301.houston.hpecorp.net (g9t2301.houston.hpecorp.net [16.220.97.129]) by g9t5008.houston.hpe.com (Postfix) with ESMTP id EAE3F4F; Mon, 16 May 2022 16:32:14 +0000 (UTC) Received: from hpe.com (cigateway-dev.us.rdlabs.hpecorp.net [10.14.73.30]) by g9t2301.houston.hpecorp.net (Postfix) with ESMTP id 9804A4A; Mon, 16 May 2022 16:32:14 +0000 (UTC) From: nick.hawkins@hpe.com To: verdun@hpe.com, nick.hawkins@hpe.com, joel@jms.id.au, arnd@arndb.de, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Cc: Daniel Lezcano , Thomas Gleixner Subject: [PATCH v8 4/8] clocksource/drivers/timer-gxp: Add HPE GXP Timer Date: Mon, 16 May 2022 11:33:42 -0500 Message-Id: <20220516163347.44890-4-nick.hawkins@hpe.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20220516163347.44890-1-nick.hawkins@hpe.com> References: <20220516163347.44890-1-nick.hawkins@hpe.com> X-Proofpoint-ORIG-GUID: JcPzonvC9o0ZGOjd0ayVfQBzBzmw2KCr X-Proofpoint-GUID: JcPzonvC9o0ZGOjd0ayVfQBzBzmw2KCr X-HPE-SCL: -1 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.858,Hydra:6.0.486,FMLib:17.11.64.514 definitions=2022-05-16_15,2022-05-16_02,2022-02-23_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 bulkscore=0 priorityscore=1501 suspectscore=0 lowpriorityscore=0 impostorscore=0 spamscore=0 mlxscore=0 mlxlogscore=999 malwarescore=0 clxscore=1015 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205160092 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220516_093223_840734_30664E2B X-CRM114-Status: GOOD ( 33.52 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org From: Nick Hawkins Add support for the HPE GXP SOC timer. The GXP supports several different kinds of timers but for the purpose of this driver there is only support for the General Timer. The timer has a 1us resolution and is 32 bits. The timer also creates a child watchdog device as the register region is the same. Signed-off-by: Nick Hawkins --- v8: * No change v7: * Changed Kconfig conditional statements around COMPILE_TEST * Added select TIMER_OF if OF v6: * Changed global variable name from local_gxp_timer to gxp_timer while removing the requirement for a local variable. * Changed static void __iomem *system_clock to __ro_after_init from __read_mostly * Changed subject to match the format from the logs * Removed stray tab in the argument for gxp_time_set_next_event * Made the commit description fit to 75 characters per line * Created watchdog child dynamically with platform_device_alloc * Fixed spacing in comments v5: * Corrected version log * Removed uncessary include file v4: * Made watchdog a child of timer as they share the same register region * Fixed watchdog init timeout call * Fixed variable usage u32/u64 * Removed Read Once * fixed error that should have been debug v3: * Put into proper patchset form v2: * No change --- drivers/clocksource/Kconfig | 8 ++ drivers/clocksource/Makefile | 1 + drivers/clocksource/timer-gxp.c | 209 ++++++++++++++++++++++++++++++++ 3 files changed, 218 insertions(+) create mode 100644 drivers/clocksource/timer-gxp.c diff --git a/drivers/clocksource/Kconfig b/drivers/clocksource/Kconfig index 1589ae7d5abb..be4dab9c1345 100644 --- a/drivers/clocksource/Kconfig +++ b/drivers/clocksource/Kconfig @@ -617,6 +617,14 @@ config CLKSRC_ST_LPC Enable this option to use the Low Power controller timer as clocksource. +config GXP_TIMER + bool "GXP timer driver" if COMPILE_TEST && !ARCH_HPE + default ARCH_HPE + select TIMER_OF if OF + help + Provides a driver for the timer control found on HPE + GXP SOCs. This is required for all GXP SOCs. + config RISCV_TIMER bool "Timer for the RISC-V platform" if COMPILE_TEST depends on GENERIC_SCHED_CLOCK && RISCV && RISCV_SBI diff --git a/drivers/clocksource/Makefile b/drivers/clocksource/Makefile index 9c85ee2bb373..98017abf6c03 100644 --- a/drivers/clocksource/Makefile +++ b/drivers/clocksource/Makefile @@ -88,3 +88,4 @@ obj-$(CONFIG_GX6605S_TIMER) += timer-gx6605s.o obj-$(CONFIG_HYPERV_TIMER) += hyperv_timer.o obj-$(CONFIG_MICROCHIP_PIT64B) += timer-microchip-pit64b.o obj-$(CONFIG_MSC313E_TIMER) += timer-msc313e.o +obj-$(CONFIG_GXP_TIMER) += timer-gxp.o diff --git a/drivers/clocksource/timer-gxp.c b/drivers/clocksource/timer-gxp.c new file mode 100644 index 000000000000..8b38b3212388 --- /dev/null +++ b/drivers/clocksource/timer-gxp.c @@ -0,0 +1,209 @@ +// SPDX-License-Identifier: GPL-2.0 +/* Copyright (C) 2022 Hewlett-Packard Enterprise Development Company, L.P. */ + +#include +#include +#include +#include +#include +#include +#include +#include + +#define TIMER0_FREQ 1000000 +#define GXP_TIMER_CNT_OFS 0x00 +#define GXP_TIMESTAMP_OFS 0x08 +#define GXP_TIMER_CTRL_OFS 0x14 + +/* TCS Stands for Timer Control/Status: these are masks to be used in */ +/* the Timer Count Registers */ +#define MASK_TCS_ENABLE 0x01 +#define MASK_TCS_PERIOD 0x02 +#define MASK_TCS_RELOAD 0x04 +#define MASK_TCS_TC 0x80 + +struct gxp_timer { + void __iomem *counter; + void __iomem *control; + struct clock_event_device evt; +}; + +static struct gxp_timer *gxp_timer; + +static void __iomem *system_clock __ro_after_init; + +static inline struct gxp_timer *to_gxp_timer(struct clock_event_device *evt_dev) +{ + return container_of(evt_dev, struct gxp_timer, evt); +} + +static u64 notrace gxp_sched_read(void) +{ + return readl_relaxed(system_clock); +} + +static int gxp_time_set_next_event(unsigned long event, struct clock_event_device *evt_dev) +{ + struct gxp_timer *timer = to_gxp_timer(evt_dev); + + /* Stop counting and disable interrupt before updating */ + writeb_relaxed(MASK_TCS_TC, timer->control); + writel_relaxed(event, timer->counter); + writeb_relaxed(MASK_TCS_TC | MASK_TCS_ENABLE, timer->control); + + return 0; +} + +static irqreturn_t gxp_timer_interrupt(int irq, void *dev_id) +{ + struct gxp_timer *timer = (struct gxp_timer *)dev_id; + + if (!(readb_relaxed(timer->control) & MASK_TCS_TC)) + return IRQ_NONE; + + writeb_relaxed(MASK_TCS_TC, timer->control); + + timer->evt.event_handler(&timer->evt); + + return IRQ_HANDLED; +} + +static int __init gxp_timer_init(struct device_node *node) +{ + void __iomem *base; + struct clk *clk; + u32 freq; + int ret, irq; + + gxp_timer = kzalloc(sizeof(*gxp_timer), GFP_KERNEL); + if (!gxp_timer) { + ret = -ENOMEM; + pr_err("Can't allocate gxp_timer"); + return ret; + } + + clk = of_clk_get(node, 0); + if (IS_ERR(clk)) { + ret = (int)PTR_ERR(clk); + pr_err("%pOFn clock not found: %d\n", node, ret); + goto err_free; + } + + ret = clk_prepare_enable(clk); + if (ret) { + pr_err("%pOFn clock enable failed: %d\n", node, ret); + goto err_clk_enable; + } + + base = of_iomap(node, 0); + if (!base) { + ret = -ENXIO; + pr_err("Can't map timer base registers"); + goto err_iomap; + } + + /* Set the offsets to the clock register and timer registers */ + gxp_timer->counter = base + GXP_TIMER_CNT_OFS; + gxp_timer->control = base + GXP_TIMER_CTRL_OFS; + system_clock = base + GXP_TIMESTAMP_OFS; + + gxp_timer->evt.name = node->name; + gxp_timer->evt.rating = 300; + gxp_timer->evt.features = CLOCK_EVT_FEAT_ONESHOT; + gxp_timer->evt.set_next_event = gxp_time_set_next_event; + gxp_timer->evt.cpumask = cpumask_of(0); + + irq = irq_of_parse_and_map(node, 0); + if (irq <= 0) { + ret = -EINVAL; + pr_err("GXP Timer Can't parse IRQ %d", irq); + goto err_exit; + } + + freq = clk_get_rate(clk); + + ret = clocksource_mmio_init(system_clock, node->name, freq, + 300, 32, clocksource_mmio_readl_up); + if (ret) { + pr_err("%pOFn init clocksource failed: %d", node, ret); + goto err_exit; + } + + sched_clock_register(gxp_sched_read, 32, freq); + + irq = irq_of_parse_and_map(node, 0); + if (irq <= 0) { + ret = -EINVAL; + pr_err("%pOFn Can't parse IRQ %d", node, irq); + goto err_exit; + } + + clockevents_config_and_register(&gxp_timer->evt, TIMER0_FREQ, + 0xf, 0xffffffff); + + ret = request_irq(irq, gxp_timer_interrupt, IRQF_TIMER | IRQF_SHARED, + node->name, gxp_timer); + if (ret) { + pr_err("%pOFn request_irq() failed: %d", node, ret); + goto err_exit; + } + + pr_debug("gxp: system timer (irq = %d)\n", irq); + return 0; + +err_exit: + iounmap(base); +err_iomap: + clk_disable_unprepare(clk); +err_clk_enable: + clk_put(clk); +err_free: + kfree(gxp_timer); + return ret; +} + +/* + * This probe gets called after the timer is already up and running. This will create + * the watchdog device as a child since the registers are shared. + */ + +static int gxp_timer_probe(struct platform_device *pdev) +{ + struct platform_device *gxp_watchdog_device; + struct device *dev = &pdev->dev; + + if (!gxp_timer) { + pr_err("Gxp Timer not initialized, cannot create watchdog"); + return -ENOMEM; + } + + gxp_watchdog_device = platform_device_alloc("gxp-wdt", -1); + if (!gxp_watchdog_device) { + pr_err("Timer failed to allocate gxp-wdt"); + return -ENOMEM; + } + + /* Pass the base address (counter) as platform data and nothing else */ + gxp_watchdog_device->dev.platform_data = gxp_timer->counter; + gxp_watchdog_device->dev.parent = dev; + + return platform_device_add(gxp_watchdog_device); +} + +static const struct of_device_id gxp_timer_of_match[] = { + { .compatible = "hpe,gxp-timer", }, + {}, +}; + +static struct platform_driver gxp_timer_driver = { + .probe = gxp_timer_probe, + .driver = { + .name = "gxp-timer", + .of_match_table = gxp_timer_of_match, + .suppress_bind_attrs = true, + }, +}; + +builtin_platform_driver(gxp_timer_driver); + +TIMER_OF_DECLARE(gxp, "hpe,gxp-timer", gxp_timer_init); From patchwork Mon May 16 16:33:43 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Hawkins, Nick" X-Patchwork-Id: 12851106 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 895F3C433EF for ; Mon, 16 May 2022 16:36:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=N+m789d0EdVR4Gc8NY+nhOLG9U68diI7fLzy79oL+cQ=; b=cLcaXVOnxuhWTE AM5D15Igsxnt770mgYoRIrvXp/pnEExN61RR5KIZx0cbxaofbs8FOBQfuxu42j81hTg1gIPbJ49g6 AXfgX3O4jbXROSgOvFMpzChdv/wQFjJBXWKbTnBhpk60PYrB32ba7Md+rhe5IeJPaPiwdveTQjx9w LIJkW6zh7V40XI4O/g8ynLBOK1RoVKMpdsOyvKnC1qZd9Jsxb+f+FLgF3/MkPs6ANNvEA7BYh9NNf a6xblDoHz75LcYM4Sqe4sl3V8/nX7OFZ4Tu0ZHZSu/Dd2d1zkXXrd+UBATMS9bM0rbSTrhofSSasE 3aWf3vKZGSXxcCCKSWvA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nqdgG-0092Pg-7U; Mon, 16 May 2022 16:34:48 +0000 Received: from mx0a-002e3701.pphosted.com ([148.163.147.86]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nqde3-0091Mv-5B for linux-arm-kernel@lists.infradead.org; Mon, 16 May 2022 16:32:32 +0000 Received: from pps.filterd (m0150242.ppops.net [127.0.0.1]) by mx0a-002e3701.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 24G9UZ26011356; Mon, 16 May 2022 16:32:22 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hpe.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version; s=pps0720; bh=tHQHa+zVoo/ogw3baS4ruzIWLZW79RxKI0mzDPUQGSQ=; b=aBmTG6w4LZu3xGaTltajTtpj8Njg/axrXC0o5XQN9lm94SnQkKbcNFS1oGfchaOwztnm g21Wmu0X/iQH2PtovRqf1lvvve5qACel5YxqzY+OSi/uWhjttEHnAdt6WWxuv6xvNwqz 5h4Fj6Xbf6Q7osIpjwGz3pDmiXMlIdfDVUfknjO2LyOqF0SSiRndOtNAH0pzhj7kmKPO ECuJ6HULJ2H5kopaFkJOV7H9tDMtwyhDRxxZMuU13CDZpwhrlymuErgOmlycJJ3G2o9I IX/xwDPHXR6oujH4VTfANhyoiAP3S0wJir88Ub86FQMQ3HacWKkiBI0HPcYQXiqvb95A xw== Received: from g9t5009.houston.hpe.com (g9t5009.houston.hpe.com [15.241.48.73]) by mx0a-002e3701.pphosted.com (PPS) with ESMTPS id 3g3gk4qttr-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 16 May 2022 16:32:22 +0000 Received: from g9t2301.houston.hpecorp.net (g9t2301.houston.hpecorp.net [16.220.97.129]) by g9t5009.houston.hpe.com (Postfix) with ESMTP id 8260955; Mon, 16 May 2022 16:32:21 +0000 (UTC) Received: from hpe.com (cigateway-dev.us.rdlabs.hpecorp.net [10.14.73.30]) by g9t2301.houston.hpecorp.net (Postfix) with ESMTP id 2ABF848; Mon, 16 May 2022 16:32:21 +0000 (UTC) From: nick.hawkins@hpe.com To: verdun@hpe.com, nick.hawkins@hpe.com, joel@jms.id.au, arnd@arndb.de, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Cc: Daniel Lezcano , Thomas Gleixner , Rob Herring , Krzysztof Kozlowski , devicetree@vger.kernel.org Subject: [PATCH v8 5/8] dt-bindings: timer: hpe, gxp-timer: Add HPE GXP Timer and Watchdog Date: Mon, 16 May 2022 11:33:43 -0500 Message-Id: <20220516163347.44890-5-nick.hawkins@hpe.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20220516163347.44890-1-nick.hawkins@hpe.com> References: <20220516163347.44890-1-nick.hawkins@hpe.com> X-Proofpoint-ORIG-GUID: Hl0lqory2VEUAkESXPUKbc01mO7GnefA X-Proofpoint-GUID: Hl0lqory2VEUAkESXPUKbc01mO7GnefA X-Proofpoint-UnRewURL: 0 URL was un-rewritten MIME-Version: 1.0 X-HPE-SCL: -1 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.858,Hydra:6.0.486,FMLib:17.11.64.514 definitions=2022-05-16_15,2022-05-16_02,2022-02-23_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 spamscore=0 bulkscore=0 phishscore=0 mlxscore=0 clxscore=1015 impostorscore=0 suspectscore=0 mlxlogscore=999 adultscore=0 malwarescore=0 lowpriorityscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205160092 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220516_093231_283451_B1C45893 X-CRM114-Status: GOOD ( 20.64 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org From: Nick Hawkins Add support for the HPE GXP Timer and Watchdog. There are multiple timers on the SoC but only one is enabled at this time. Signed-off-by: Nick Hawkins Reviewed-by: Krzysztof Kozlowski Reviewed-by: Rob Herring --- v8: * No change v7: * Resubmission to fix subject from dt-bindings: timer: hpe,gxp-timer: Creation to dt-bindings: timer: hpe,gxp-timer: Add HPE GXP Timer and Watchdog based on comment: 'The subject after prefixes does not match it better. What is "creation"? "Add HPE GXP Timer and Watchdog"' * Copied over Reviewed-by tags from previous patch. v6: * Removed simple-mfd compatible, timer will create watchdog without watchdog node. * Removed timer0 label * Changed title from HPE GXP TIMER to HPE GXP Timer * Changed clock name iopclk to iop * Set additionalProperties to false * Added space after ',' in the compatible list * Changed subject to match the log better * Altered description to take up 75 characters per line * Changed description to better describe the patch v5: * Fix versioning * Fixed typo time -> timer v4: * Made watchdog a child of timer * Added reference clock v3: * Removed maintainer change from patch * Verified there was no compilation errors * Added reference code in separate patch of patchset v2: * Converted from txt to yaml --- .../bindings/timer/hpe,gxp-timer.yaml | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 Documentation/devicetree/bindings/timer/hpe,gxp-timer.yaml diff --git a/Documentation/devicetree/bindings/timer/hpe,gxp-timer.yaml b/Documentation/devicetree/bindings/timer/hpe,gxp-timer.yaml new file mode 100644 index 000000000000..d33d90f44d28 --- /dev/null +++ b/Documentation/devicetree/bindings/timer/hpe,gxp-timer.yaml @@ -0,0 +1,47 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/timer/hpe,gxp-timer.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: HPE GXP Timer + +maintainers: + - Nick Hawkins + - Jean-Marie Verdun + +properties: + compatible: + const: hpe,gxp-timer + + reg: + maxItems: 1 + + interrupts: + maxItems: 1 + + clocks: + maxItems: 1 + + clock-names: + const: iop + +required: + - compatible + - reg + - interrupts + - clocks + - clock-names + +additionalProperties: false + +examples: + - | + timer@c0000000 { + compatible = "hpe,gxp-timer"; + reg = <0x80 0x16>; + interrupts = <0>; + interrupt-parent = <&vic0>; + clocks = <&iopclk>; + clock-names = "iop"; + }; From patchwork Mon May 16 16:33:44 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Hawkins, Nick" X-Patchwork-Id: 12851107 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 484C9C433F5 for ; Mon, 16 May 2022 16:36:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=mlPAZLEVa+zGfG0weJXQuluECZZtyQiGWh9j1w5ntlQ=; b=Kr28WdaXkh/JZt P2+TzIg4nXSTt4JKorKsmrhUPkVOJWccwDggvmMApAe0J5VJSkktKJiDORsOqGR/iG5SFDB53fq1b 0GdrWqbrvrmj94msXdWg8YHBnphuc/sW5gA6zxJv7pnOFoguvEp6GtlF9TG0coXAOSJ9FZP0eJdbK bpb8Pnxh674+/9NyruVwO5yKD65K8X8OrOtWRBJBcWghLjWl1MStKIeynQZ8trXexAl+sA5mRmjha F9PnF9scl2Pt1sc9U5gJodi7bOf7muHwQtpkuobtObgKVgtwCZMzz4bdn7SRqnTktSq/vPMbj/7t0 j9NsurJZ/lsAmqyPW4Ew==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nqdgX-0092b3-MS; Mon, 16 May 2022 16:35:06 +0000 Received: from mx0a-002e3701.pphosted.com ([148.163.147.86]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nqde7-0091Ot-2C for linux-arm-kernel@lists.infradead.org; Mon, 16 May 2022 16:32:38 +0000 Received: from pps.filterd (m0150242.ppops.net [127.0.0.1]) by mx0a-002e3701.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 24G9UaEM011421; Mon, 16 May 2022 16:32:29 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hpe.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version; s=pps0720; bh=5eQKPqTL8VvFLcV6LAqdC4Ocn8wipBmR9jjrFCjg04U=; b=gSikURcx2FcS7rhE7clIoLfCRfOfx8yGVNibgHVaxLvsxjfTE9vd+3u10p8H/5AKC3nK AaGWrcxN2HcqAQkGyDHbNjmRx2I6qgfnbepBKTHEj/ieVS3P4uobwkFl4IjT3dJGvSZG txqTowpviddb4vzP4dpiu/cHYP2NyhlMovmLgg4BR6uO1YWmkFEryTYCysWWsEF5XKaw LFN3+ty6jCY+mHNB4UQ5oFj4oXlZPPhOVqeErgE0+h/tRTmjEuXmWbtsIBejH4Z/XDvu 5OnPLm9FqsQ8tt4Q/ItttEZGQKfJ489pHrC6Ez++j8X7+0VjaavEGAHtpXRhNFAwuGHu iw== Received: from g9t5009.houston.hpe.com (g9t5009.houston.hpe.com [15.241.48.73]) by mx0a-002e3701.pphosted.com (PPS) with ESMTPS id 3g3gk4qtun-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 16 May 2022 16:32:29 +0000 Received: from g9t2301.houston.hpecorp.net (g9t2301.houston.hpecorp.net [16.220.97.129]) by g9t5009.houston.hpe.com (Postfix) with ESMTP id A4B4855; Mon, 16 May 2022 16:32:28 +0000 (UTC) Received: from hpe.com (cigateway-dev.us.rdlabs.hpecorp.net [10.14.73.30]) by g9t2301.houston.hpecorp.net (Postfix) with ESMTP id 64DE748; Mon, 16 May 2022 16:32:28 +0000 (UTC) From: nick.hawkins@hpe.com To: verdun@hpe.com, nick.hawkins@hpe.com, joel@jms.id.au, arnd@arndb.de, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Cc: Rob Herring , Krzysztof Kozlowski , devicetree@vger.kernel.org Subject: [PATCH v8 6/8] dt-bindings: arm: hpe: add GXP Support Date: Mon, 16 May 2022 11:33:44 -0500 Message-Id: <20220516163347.44890-6-nick.hawkins@hpe.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20220516163347.44890-1-nick.hawkins@hpe.com> References: <20220516163347.44890-1-nick.hawkins@hpe.com> X-Proofpoint-ORIG-GUID: s_2t-MOwXKgEHBL7IB76DOA3FAn5Nb8J X-Proofpoint-GUID: s_2t-MOwXKgEHBL7IB76DOA3FAn5Nb8J X-Proofpoint-UnRewURL: 0 URL was un-rewritten MIME-Version: 1.0 X-HPE-SCL: -1 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.858,Hydra:6.0.486,FMLib:17.11.64.514 definitions=2022-05-16_15,2022-05-16_02,2022-02-23_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 spamscore=0 bulkscore=0 phishscore=0 mlxscore=0 clxscore=1015 impostorscore=0 suspectscore=0 mlxlogscore=999 adultscore=0 malwarescore=0 lowpriorityscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205160092 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220516_093235_171081_E9085DCC X-CRM114-Status: GOOD ( 18.18 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org From: Nick Hawkins Add support for HPE GXP. The GXP is based on the cortex a9 processor and supports arm7. Signed-off-by: Nick Hawkins Reviewed-by: Rob Herring Reviewed-by: Krzysztof Kozlowski --- v8: * No change v7: * Resubmission to keep the patch series self contained. No change. * Copied Reviewed-by tags from previous patch. v6: * Changed subject to match others in log. * Changed the commit description. * Changed the title in the .yaml from HPE BMC GXP SoC Driver to HPE BMC GXP platforms. * Added the oneOf attribute * Fixed commit description to be close to 75 characters per line v5: * Fix version log v4: * Removed gxp.yaml * Created hpe,gxp.yaml based on reviewer input v3: * Created gxp.yaml v2: * No change --- .../devicetree/bindings/arm/hpe,gxp.yaml | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 Documentation/devicetree/bindings/arm/hpe,gxp.yaml diff --git a/Documentation/devicetree/bindings/arm/hpe,gxp.yaml b/Documentation/devicetree/bindings/arm/hpe,gxp.yaml new file mode 100644 index 000000000000..224bbcb93f95 --- /dev/null +++ b/Documentation/devicetree/bindings/arm/hpe,gxp.yaml @@ -0,0 +1,27 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/arm/hpe,gxp.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: HPE BMC GXP platforms + +maintainers: + - Nick Hawkins + - Jean-Marie Verdun + +properties: + compatible: + oneOf: + - description: GXP Based Boards + items: + - enum: + - hpe,gxp-dl360gen10 + - const: hpe,gxp + +required: + - compatible + +additionalProperties: true + +... From patchwork Mon May 16 16:33:45 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Hawkins, Nick" X-Patchwork-Id: 12851113 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id D5CD4C433EF for ; Mon, 16 May 2022 16:37:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:MIME-Version:List-Subscribe:List-Help: List-Post:List-Archive:List-Unsubscribe:List-Id:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=K2pMDnLI2UKGsqhS1trnAmqg8iAbHcLw9WiA8KlMBzM=; b=YuIcGkfAI8Bnn1 F8l3Imz2X8sW88EsFWv+DdDQm6lFVoeTq8b790/NZlZetcdHCDBVw2JTc1OKQLSCsQ4yL2+YF+46A 7HCldt45F0irFNy2G9VNAjhWIPfB3y8iSBMED8dSN64W+lsc23F3seQUv5ce4hExO0zSqYfUG8ueT AB+t2LYqgz5XLJE2YjPvjykywxh5B5F7mojnoI9oBRNkpRbLurFZCv8vwFhAyiZna6X09MtarcCUJ tSRlCvjM8Iuao/Qlr2mP7a6DFwSG/7FM28MGMKduYWdcD7HtYBIiL3O8qTdz7WkN9HV3W2sWxAltH dtrpel2eIxDYBxlIy4jw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nqdhv-0093J6-95; Mon, 16 May 2022 16:36:31 +0000 Received: from mx0b-002e3701.pphosted.com ([148.163.143.35]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nqdeJ-0091TW-3q for linux-arm-kernel@lists.infradead.org; Mon, 16 May 2022 16:32:49 +0000 Received: from pps.filterd (m0150245.ppops.net [127.0.0.1]) by mx0b-002e3701.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 24GEAGBQ029646; Mon, 16 May 2022 16:32:36 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hpe.com; h=from : to : cc : subject : date : message-id : in-reply-to : references; s=pps0720; bh=/DStH2cz6HTojO5/89miC9YP4cLF8UgBZRQ1kIWSQMk=; b=GjCLO6kp9naJUtZYHVN9MW2Zr6JvUMg0laZZNyV2sljyWyDx3yTTMAmw2QVPF0R38XVs BO7CoITwgox5boqqwHtFYDZhN1a5MX6axR/ogdhCRA8SBcOavihNxgC/zFfmB9fgq51r S2V3AeC3FO9GK2PAtCueCpHhlbpU6cLmybGDc/cOUQ6xdKrlsx/546UlYZengWQhiGIr QoQSNcx3t1ihDuuMDkVR6uXCp+krpeG3nLnkFl7Vc7lzWCiwE38NA32rvvVpsimA1BpA N9JC9x9RQAL9nhQeNi2rNjT2HIIz0zF266Y6IwbceFfcU0W0sCAtCf7q/Hs1JbW4mqM4 mA== Received: from g9t5009.houston.hpe.com (g9t5009.houston.hpe.com [15.241.48.73]) by mx0b-002e3701.pphosted.com (PPS) with ESMTPS id 3g3r4uhwnj-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 16 May 2022 16:32:35 +0000 Received: from g9t2301.houston.hpecorp.net (g9t2301.houston.hpecorp.net [16.220.97.129]) by g9t5009.houston.hpe.com (Postfix) with ESMTP id 3702F55; Mon, 16 May 2022 16:32:35 +0000 (UTC) Received: from hpe.com (cigateway-dev.us.rdlabs.hpecorp.net [10.14.73.30]) by g9t2301.houston.hpecorp.net (Postfix) with ESMTP id D57294D; Mon, 16 May 2022 16:32:34 +0000 (UTC) From: nick.hawkins@hpe.com To: verdun@hpe.com, nick.hawkins@hpe.com, joel@jms.id.au, arnd@arndb.de, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Cc: Olof Johansson , soc@kernel.org, Rob Herring , Krzysztof Kozlowski , devicetree@vger.kernel.org Subject: [PATCH v8 7/8] ARM: dts: Introduce HPE GXP Device tree Date: Mon, 16 May 2022 11:33:45 -0500 Message-Id: <20220516163347.44890-7-nick.hawkins@hpe.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20220516163347.44890-1-nick.hawkins@hpe.com> References: <20220516163347.44890-1-nick.hawkins@hpe.com> X-Proofpoint-ORIG-GUID: TwAdXS0TVTzBwDb89h84MqIc0CM73g8_ X-Proofpoint-GUID: TwAdXS0TVTzBwDb89h84MqIc0CM73g8_ X-HPE-SCL: -1 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.858,Hydra:6.0.486,FMLib:17.11.64.514 definitions=2022-05-16_15,2022-05-16_02,2022-02-23_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 mlxlogscore=999 mlxscore=0 malwarescore=0 priorityscore=1501 bulkscore=0 adultscore=0 clxscore=1015 spamscore=0 impostorscore=0 phishscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205160092 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220516_093247_353363_26709A4D X-CRM114-Status: GOOD ( 20.92 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org From: Nick Hawkins The HPE SoC is new to linux. A basic device tree layout with minimum required for linux to boot including a timer and watchdog support has been created. The dts file is empty at this point but will be updated in subsequent updates as board specific features are enabled. Signed-off-by: Nick Hawkins Acked-by: Krzysztof Kozlowski --- v8: * No change v7: * Changed cache register area length from 0xFFC to 0x1000 * Added space between "," in compatible list for the hpe-bmc-dl360gen10.dts * Added aliases, chosen, and memory to hpe-bmc-dl360gen10.dts * Removed memory from hpe-gxp.dtsi v6: * Added cache-controller to CPU * Removed hpe,gxp-wdt and removed simple-mfd from hpe,gxp-timer * Added space after ',' in compatible lists in the dtsi containing more than one item * Switched clock name iopclk to iop based on feedback from hpe,gxp-timer.yaml * Added clock labels clock-0 and clock-1 * Added dma-ranges to ahb * Changed subject to better match ones in the log * Changed description to fit 75 characters per line v5: * Fixed commit message to show previous changes * Fixed typo ehci -> echi v4: * Removed hpe,gxp-cpu-init as it was no longer necessary * Removed bootargs as requested * Removed empty ahb node * Moved reg after compatible, everywhere * Removed osc and memclk * Removed syscon@c00000f8 as it was not necessary for boot * Fixed Alphabetical issue in dts/Makefile * Added specific board binding for dl360gen10 * Removed empty node * Added Accurate Clock Architecture * Fixed generic-echi and generic-ochi issues * Removed i2cg v3: * Fixed issues with warnings * Used proper patchset format v2: * Reduced size of dtsi to essential components * Followed the proper format for having a dtsi and dts --- arch/arm/boot/dts/Makefile | 2 + arch/arm/boot/dts/hpe-bmc-dl360gen10.dts | 26 +++++ arch/arm/boot/dts/hpe-gxp.dtsi | 127 +++++++++++++++++++++++ 3 files changed, 155 insertions(+) create mode 100644 arch/arm/boot/dts/hpe-bmc-dl360gen10.dts create mode 100644 arch/arm/boot/dts/hpe-gxp.dtsi diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile index 7c16f8a2b738..293717719c70 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile @@ -255,6 +255,8 @@ dtb-$(CONFIG_ARCH_HISI) += \ hi3519-demb.dtb dtb-$(CONFIG_ARCH_HIX5HD2) += \ hisi-x5hd2-dkb.dtb +dtb-$(CONFIG_ARCH_HPE_GXP) += \ + hpe-bmc-dl360gen10.dtb dtb-$(CONFIG_ARCH_INTEGRATOR) += \ integratorap.dtb \ integratorap-im-pd1.dtb \ diff --git a/arch/arm/boot/dts/hpe-bmc-dl360gen10.dts b/arch/arm/boot/dts/hpe-bmc-dl360gen10.dts new file mode 100644 index 000000000000..3a7382ce40ef --- /dev/null +++ b/arch/arm/boot/dts/hpe-bmc-dl360gen10.dts @@ -0,0 +1,26 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Device Tree file for HPE DL360Gen10 + */ + +/include/ "hpe-gxp.dtsi" + +/ { + #address-cells = <1>; + #size-cells = <1>; + compatible = "hpe,gxp-dl360gen10", "hpe,gxp"; + model = "Hewlett Packard Enterprise ProLiant dl360 Gen10"; + + aliases { + serial0 = &uartc; + }; + + chosen { + stdout-path = "serial0:115200n8"; + }; + + memory@40000000 { + device_type = "memory"; + reg = <0x40000000 0x20000000>; + }; +}; diff --git a/arch/arm/boot/dts/hpe-gxp.dtsi b/arch/arm/boot/dts/hpe-gxp.dtsi new file mode 100644 index 000000000000..cf735b3c4f35 --- /dev/null +++ b/arch/arm/boot/dts/hpe-gxp.dtsi @@ -0,0 +1,127 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Device Tree file for HPE GXP + */ + +/dts-v1/; +/ { + model = "Hewlett Packard Enterprise GXP BMC"; + compatible = "hpe,gxp"; + #address-cells = <1>; + #size-cells = <1>; + + cpus { + #address-cells = <1>; + #size-cells = <0>; + + cpu@0 { + compatible = "arm,cortex-a9"; + reg = <0>; + device_type = "cpu"; + next-level-cache = <&L2>; + }; + }; + + clocks { + pll: clock-0 { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <1600000000>; + }; + + iopclk: clock-1 { + compatible = "fixed-factor-clock"; + #clock-cells = <0>; + clock-div = <4>; + clock-mult = <1>; + clocks = <&pll>; + }; + }; + + axi { + compatible = "simple-bus"; + #address-cells = <1>; + #size-cells = <1>; + ranges; + dma-ranges; + + L2: cache-controller@b0040000 { + compatible = "arm,pl310-cache"; + reg = <0xb0040000 0x1000>; + cache-unified; + cache-level = <2>; + }; + + ahb@c0000000 { + compatible = "simple-bus"; + #address-cells = <1>; + #size-cells = <1>; + ranges = <0x0 0xc0000000 0x30000000>; + dma-ranges; + + vic0: interrupt-controller@eff0000 { + compatible = "arm,pl192-vic"; + reg = <0xeff0000 0x1000>; + interrupt-controller; + #interrupt-cells = <1>; + }; + + vic1: interrupt-controller@80f00000 { + compatible = "arm,pl192-vic"; + reg = <0x80f00000 0x1000>; + interrupt-controller; + #interrupt-cells = <1>; + }; + + uarta: serial@e0 { + compatible = "ns16550a"; + reg = <0xe0 0x8>; + interrupts = <17>; + interrupt-parent = <&vic0>; + clock-frequency = <1846153>; + reg-shift = <0>; + }; + + uartb: serial@e8 { + compatible = "ns16550a"; + reg = <0xe8 0x8>; + interrupts = <18>; + interrupt-parent = <&vic0>; + clock-frequency = <1846153>; + reg-shift = <0>; + }; + + uartc: serial@f0 { + compatible = "ns16550a"; + reg = <0xf0 0x8>; + interrupts = <19>; + interrupt-parent = <&vic0>; + clock-frequency = <1846153>; + reg-shift = <0>; + }; + + usb0: usb@efe0000 { + compatible = "hpe,gxp-ehci", "generic-ehci"; + reg = <0xefe0000 0x100>; + interrupts = <7>; + interrupt-parent = <&vic0>; + }; + + st: timer@80 { + compatible = "hpe,gxp-timer"; + reg = <0x80 0x16>; + interrupts = <0>; + interrupt-parent = <&vic0>; + clocks = <&iopclk>; + clock-names = "iop"; + }; + + usb1: usb@efe0100 { + compatible = "hpe,gxp-ohci", "generic-ohci"; + reg = <0xefe0100 0x110>; + interrupts = <6>; + interrupt-parent = <&vic0>; + }; + }; + }; +}; From patchwork Mon May 16 16:33:46 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Hawkins, Nick" X-Patchwork-Id: 12851108 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 2A625C433F5 for ; Mon, 16 May 2022 16:37:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:To:From:Reply-To:Cc:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=+6o65ndEdvAhYZFQzVTLSt+BYME0wWxURB08Ap4YYWc=; b=eirwNdvpoksLea XPoVy8rgxV3k2CSD/tVPLTb4lIo6Tv1q8/U6dj04URWg8dMiB2ifFhysKlulMQUwh6VC76HyhKk0J VnmjIwQ5PgydrYnZSLJHBZubTomLTMqOTya3Odhri4eAlW6JWP8NTUNMrcAFbfVaz9BwjzQ7HXTiY n+Vpq8FkttBEYVxETiNZpUCuvygUzKYf8QO5SwwLM9SIm+V47KvA6RJHVUZyB1BscJNo1ugnb7PW6 gQ+zLikugej1HJ40diti9Q2a/FjK+kTAOyMJH3bzXUjWlqwuAQ2HvZVo7m9FmvzTrubjSEBBlUk0d VaijCqhXaPlm/YvmGtzw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nqdhW-00935f-AM; Mon, 16 May 2022 16:36:07 +0000 Received: from mx0a-002e3701.pphosted.com ([148.163.147.86]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nqdeE-0091Ry-QP for linux-arm-kernel@lists.infradead.org; Mon, 16 May 2022 16:32:44 +0000 Received: from pps.filterd (m0134422.ppops.net [127.0.0.1]) by mx0b-002e3701.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 24GAVxAL031916; Mon, 16 May 2022 16:32:39 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hpe.com; h=from : to : subject : date : message-id : in-reply-to : references : mime-version; s=pps0720; bh=ZtJJg0yXTQwmrw5bLqDBaOvIBYz078x224mjTlaSgZM=; b=V3eY3Tuu8ERT098AbGWYpyeGSJLbl4dOhge5KmQpKvce5bH3haYR7JOUMJMcMNBRwuas Zy/nxVMuv+y4TH5qEbxWXcmZFBPEe6nhzcss0ql0snhOZ+oUpsxaiAU8AhUKWXg9P5qF 0cAsYC8Ph2BSzQBog1LgPQujcefYMptIAWRJm+UlPyhrJtvlUjyI7GJJY+SBwZCK8yqi p2nl8QqSTlDMk3y44JD5bXrOxAxqKOPv4ZuMdljHbeI2uWuTR7qHjtMofkhBOd4Uz/fD Hk9ok7BwXKIVIX8zlVWGkzUyZohEGPVijS5KVdawdaWsry3Dvf51eMVHzo57wB96Ep76 Pw== Received: from g9t5008.houston.hpe.com (g9t5008.houston.hpe.com [15.241.48.72]) by mx0b-002e3701.pphosted.com (PPS) with ESMTPS id 3g3knfng43-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 16 May 2022 16:32:39 +0000 Received: from g9t2301.houston.hpecorp.net (g9t2301.houston.hpecorp.net [16.220.97.129]) by g9t5008.houston.hpe.com (Postfix) with ESMTP id 668F657; Mon, 16 May 2022 16:32:38 +0000 (UTC) Received: from hpe.com (cigateway-dev.us.rdlabs.hpecorp.net [10.14.73.30]) by g9t2301.houston.hpecorp.net (Postfix) with ESMTP id 391C94F; Mon, 16 May 2022 16:32:38 +0000 (UTC) From: nick.hawkins@hpe.com To: verdun@hpe.com, nick.hawkins@hpe.com, joel@jms.id.au, arnd@arndb.de, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH v8 8/8] MAINTAINERS: Introduce HPE GXP Architecture Date: Mon, 16 May 2022 11:33:46 -0500 Message-Id: <20220516163347.44890-8-nick.hawkins@hpe.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20220516163347.44890-1-nick.hawkins@hpe.com> References: <20220516163347.44890-1-nick.hawkins@hpe.com> X-Proofpoint-ORIG-GUID: NcMD-MjuhtVg0KxRD8hZxKp03CnFT8cz X-Proofpoint-GUID: NcMD-MjuhtVg0KxRD8hZxKp03CnFT8cz X-Proofpoint-UnRewURL: 0 URL was un-rewritten MIME-Version: 1.0 X-HPE-SCL: -1 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.858,Hydra:6.0.486,FMLib:17.11.64.514 definitions=2022-05-16_15,2022-05-16_02,2022-02-23_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 phishscore=0 spamscore=0 priorityscore=1501 impostorscore=0 mlxscore=0 suspectscore=0 clxscore=1015 mlxlogscore=999 adultscore=0 malwarescore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205160092 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220516_093242_922575_3C1FA6D3 X-CRM114-Status: GOOD ( 13.10 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org From: Nick Hawkins Create a section in MAINTAINERS for the GXP HPE architecture. Signed-off-by: Nick Hawkins --- v8: * No change v7: * Changed arch/arm/boot/dts/hpe-bmc-dl360gen10.dts to arch/arm/boot/hpe-bmc* * Changed arch/arm/boot/dts/hpe-gxp.dtsi to arch/arm/boot/dts/hpe-gxp* * Changed arch/arm/mach-hpe/gxp.c to arch/arm/mach-hpe/ v6: * Fixed subject to match other commits * Removed hpe,gxp-wdt.yaml from file list v5: * Fixed commit message to list all previous changes v4: * Added ARM/ before HPE Title * Changed MAINTAINED to Maintained * Renamed gxp-timer.c to timer-gxp.c * Renamed gxp.yaml to hpe,gxp.yaml v3: * Removed uncessary files * Used proper patch-set format v2: * Fixed email address * Removed multiple entries in favor of one --- MAINTAINERS | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/MAINTAINERS b/MAINTAINERS index 40fa1955ca3f..ce28eb2843c6 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -2130,6 +2130,18 @@ T: git git://git.kernel.org/pub/scm/linux/kernel/git/kristoffer/linux-hpc.git F: arch/arm/mach-sa1100/include/mach/jornada720.h F: arch/arm/mach-sa1100/jornada720.c +ARM/HPE GXP ARCHITECTURE +M: Jean-Marie Verdun +M: Nick Hawkins +S: Maintained +F: Documentation/devicetree/bindings/arm/hpe,gxp.yaml +F: Documentation/devicetree/bindings/timer/hpe,gxp-timer.yaml +F: arch/arm/boot/dts/hpe-bmc* +F: arch/arm/boot/dts/hpe-gxp* +F: arch/arm/mach-hpe/ +F: drivers/clocksource/timer-gxp.c +F: drivers/watchdog/gxp-wdt.c + ARM/IGEP MACHINE SUPPORT M: Enric Balletbo i Serra M: Javier Martinez Canillas