From patchwork Sun Apr 19 17:07:54 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rob Herring X-Patchwork-Id: 11497615 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id E870313B2 for ; Sun, 19 Apr 2020 17:08:15 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id D18D422240 for ; Sun, 19 Apr 2020 17:08:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1587316095; bh=OFl0DgxoIf3Yo+GEOQZISzTrDAkAGWJkRNFX3IleGW0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=1nlpD1lYGc5nz7eL3s3KncfFpF7q21+vdaxqvxZXPDzmYUXtQOTHc7yhLxk/D+9+Z SZPGnOUZbuIR7UdJAPld004UOWKPkKnTgYHIl0uWNxeIxADUGjFcWK0B2nX8JD+jMI m2mflCwxRyuDqJzONJ8xSvbEJV8qmllBRJg8+dVc= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726539AbgDSRIP (ORCPT ); Sun, 19 Apr 2020 13:08:15 -0400 Received: from mail-oi1-f195.google.com ([209.85.167.195]:36528 "EHLO mail-oi1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725932AbgDSRIO (ORCPT ); Sun, 19 Apr 2020 13:08:14 -0400 Received: by mail-oi1-f195.google.com with SMTP id s202so6772001oih.3; Sun, 19 Apr 2020 10:08:14 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=7u0a7x6gVwqXn6aqvyWZupXMzL8Fz9JGwbGpr6xl9qw=; b=eO0fliPgoog6YqL+nxl+R+wOQmXHdagxZmg9qeU8mBTaF8+58foeGa/JLdQ9ZW/UEE tmDSk89BQ/KNfum1fJRp9/cgbu73i8k/GnjakamE9JZKB7LkrCbZaU+fXBYbp40in3Qu OaXjl3A7+qSJQIImR1/HVtZSrw7iKNzouApLyg55BEYQjEOEyP++hs/1YS8mLhxqwhEX MyuQk6tkINEZmcCgKRiA6iR+gM6rgMy/Z8LdMF9l3cF1xxgaej4h3dApwG4wOMTWcQY6 P0r3rIMf/a3kLDe8xhwEGTKOeEHB9HhNNLiKVEiuerkeYtodksfu7kue2W8PHNUHUXY0 MasQ== X-Gm-Message-State: AGi0PuakPfKBFl9oUrMgDYfy5c4NenGSvnE0QvfX0HR/oTgegJFoTv02 bPjfXD5J3kV/IlsJqqH32A== X-Google-Smtp-Source: APiQypIylm12TEGbRXZrDBPw2xjm/2k4Np+huyFbHSGpX+YqkB9/f2+MfTS6wgL2Gcpce4PpGiVy8w== X-Received: by 2002:a05:6808:a91:: with SMTP id q17mr7982316oij.102.1587316093748; Sun, 19 Apr 2020 10:08:13 -0700 (PDT) Received: from xps15.herring.priv (24-155-109-49.dyn.grandenetworks.net. [24.155.109.49]) by smtp.googlemail.com with ESMTPSA id u205sm9661938oia.37.2020.04.19.10.08.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Apr 2020 10:08:13 -0700 (PDT) From: Rob Herring To: Linus Walleij , Liviu Dudau , Lorenzo Pieralisi , Sudeep Holla Cc: Arnd Bergmann , Catalin Marinas , Greg Kroah-Hartman , Lee Jones , Sebastian Reichel , Stephen Boyd , Will Deacon , Kevin Brodsky , linux-arm-kernel@lists.infradead.org, linux-clk@vger.kernel.org, linux-pm@vger.kernel.org Subject: [PATCH 01/17] ARM: vexpress: Move vexpress_flags_set() into arch code Date: Sun, 19 Apr 2020 12:07:54 -0500 Message-Id: <20200419170810.5738-2-robh@kernel.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200419170810.5738-1-robh@kernel.org> References: <20200419170810.5738-1-robh@kernel.org> MIME-Version: 1.0 Sender: linux-pm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pm@vger.kernel.org vexpress_flags_set() is only used by the platform SMP related code and has nothing to do with the vexpress-sysreg MFD driver other than both access the same h/w block. It's also only needed for 32-bit systems and must be built-in for them. Let's move vexpress_flags_set() closer to where it is being used. This will allow for vexpress-sysreg to be built as a module. Cc: Liviu Dudau Cc: Sudeep Holla Cc: Lorenzo Pieralisi Cc: Linus Walleij Cc: Lee Jones Signed-off-by: Rob Herring Acked-by: Arnd Bergmann Acked-by: Liviu Dudau Reviewed-by: Sudeep Holla --- arch/arm/mach-vexpress/Kconfig | 1 - arch/arm/mach-vexpress/core.h | 1 + arch/arm/mach-vexpress/dcscb.c | 1 + arch/arm/mach-vexpress/v2m.c | 23 +++++++++++++++++++++++ drivers/mfd/vexpress-sysreg.c | 19 ------------------- include/linux/vexpress.h | 4 ---- 6 files changed, 25 insertions(+), 24 deletions(-) diff --git a/arch/arm/mach-vexpress/Kconfig b/arch/arm/mach-vexpress/Kconfig index 726a68085c3b..18951cd20d9d 100644 --- a/arch/arm/mach-vexpress/Kconfig +++ b/arch/arm/mach-vexpress/Kconfig @@ -22,7 +22,6 @@ menuconfig ARCH_VEXPRESS select REGULATOR_FIXED_VOLTAGE if REGULATOR select VEXPRESS_CONFIG select VEXPRESS_SYSCFG - select MFD_VEXPRESS_SYSREG help This option enables support for systems using Cortex processor based ARM core and logic (FPGA) tiles on the Versatile Express motherboard, diff --git a/arch/arm/mach-vexpress/core.h b/arch/arm/mach-vexpress/core.h index f4a7519084f1..bda78675c55d 100644 --- a/arch/arm/mach-vexpress/core.h +++ b/arch/arm/mach-vexpress/core.h @@ -1,3 +1,4 @@ bool vexpress_smp_init_ops(void); +void vexpress_flags_set(u32 data); extern const struct smp_operations vexpress_smp_dt_ops; diff --git a/arch/arm/mach-vexpress/dcscb.c b/arch/arm/mach-vexpress/dcscb.c index 46a903c88c6a..a0554d7d04f7 100644 --- a/arch/arm/mach-vexpress/dcscb.c +++ b/arch/arm/mach-vexpress/dcscb.c @@ -20,6 +20,7 @@ #include #include +#include "core.h" #define RST_HOLD0 0x0 #define RST_HOLD1 0x4 diff --git a/arch/arm/mach-vexpress/v2m.c b/arch/arm/mach-vexpress/v2m.c index 95886b3bb9dd..ffe7c7a85ae9 100644 --- a/arch/arm/mach-vexpress/v2m.c +++ b/arch/arm/mach-vexpress/v2m.c @@ -1,8 +1,31 @@ // SPDX-License-Identifier: GPL-2.0 +#include +#include #include #include "core.h" +#define SYS_FLAGSSET 0x030 +#define SYS_FLAGSCLR 0x034 + +void vexpress_flags_set(u32 data) +{ + static void __iomem *base; + + if (!base) { + struct device_node *node = of_find_compatible_node(NULL, NULL, + "arm,vexpress-sysreg"); + + base = of_iomap(node, 0); + } + + if (WARN_ON(!base)) + return; + + writel(~0, base + SYS_FLAGSCLR); + writel(data, base + SYS_FLAGSSET); +} + static const char * const v2m_dt_match[] __initconst = { "arm,vexpress", NULL, diff --git a/drivers/mfd/vexpress-sysreg.c b/drivers/mfd/vexpress-sysreg.c index c68ff56dbdb1..0b9cc67706c7 100644 --- a/drivers/mfd/vexpress-sysreg.c +++ b/drivers/mfd/vexpress-sysreg.c @@ -8,7 +8,6 @@ #include #include #include -#include #include #include #include @@ -42,24 +41,6 @@ #define SYS_MISC_MASTERSITE (1 << 14) -void vexpress_flags_set(u32 data) -{ - static void __iomem *base; - - if (!base) { - struct device_node *node = of_find_compatible_node(NULL, NULL, - "arm,vexpress-sysreg"); - - base = of_iomap(node, 0); - } - - if (WARN_ON(!base)) - return; - - writel(~0, base + SYS_FLAGSCLR); - writel(data, base + SYS_FLAGSSET); -} - /* The sysreg block is just a random collection of various functions... */ static struct syscon_platform_data vexpress_sysreg_sys_id_pdata = { diff --git a/include/linux/vexpress.h b/include/linux/vexpress.h index 0e130b5077a5..2ec7992b054c 100644 --- a/include/linux/vexpress.h +++ b/include/linux/vexpress.h @@ -40,8 +40,4 @@ struct device *vexpress_config_bridge_register(struct device *parent, struct regmap *devm_regmap_init_vexpress_config(struct device *dev); -/* Platform control */ - -void vexpress_flags_set(u32 data); - #endif From patchwork Sun Apr 19 17:07:55 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rob Herring X-Patchwork-Id: 11497619 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id BC17813B2 for ; Sun, 19 Apr 2020 17:08:18 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 9B09D22244 for ; Sun, 19 Apr 2020 17:08:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1587316098; bh=2r8oaiOWie5zg0ypBc8diRwDRt1m2KDp3G1SWupluUU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=rC4+t6K83fak6nAg6I+knhLAcR61W7BzNVDnkh6O8D4dmw+iyqL3FVYXoNja2SKxf KRYUn1Eax7p6DIZiQWluEXIQelHUcfvujs6c9avPyaBcZnuqA8AC8qM8dN1CF5c6BC QE45jcanhMsS4IBq7egWga+dihFAtd9XahyxvPqQ= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726587AbgDSRIR (ORCPT ); Sun, 19 Apr 2020 13:08:17 -0400 Received: from mail-oi1-f196.google.com ([209.85.167.196]:35098 "EHLO mail-oi1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725932AbgDSRIR (ORCPT ); Sun, 19 Apr 2020 13:08:17 -0400 Received: by mail-oi1-f196.google.com with SMTP id o7so5006820oif.2; Sun, 19 Apr 2020 10:08:16 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=HR2vyc2PYWWn8G5dom55PqoQEPYuAFLiyICb8T+CViI=; b=Imrfibp7SUXrD+MwBRpuqYNDZs2ff305enyyAc8YS5KKQNQdIvBPYV0az7L4i8cPBW Rcif8vDff2cY0zCXGo3drz8ydbgCgmxo7PuCPsP7QnQAQiVLqHR5KMzfiEX8PDZDVn7V M3EVohSvTfvbG2480kjC+G6LWcvMtTTTNmvoZ4D3AT+jJ7lxHaREUAJCgVx6fKqRCBkC ClnxzFddy4RD3FRsaH2fBQwxx1/CfQFTCrlES7DPM4GTBMmHrhwhv5yejjHcOiCgEM1Z vArAcRemeaFs/qOGJk/Es392Vi77Gas1UlnVsnS+hx40AkQdOJEgYCcH06HcKdm1ZF4b g1Ag== X-Gm-Message-State: AGi0PuYz0zUzJGoIEIzHWFlAs1kfOxMq17mB1a1Bogk35YQ3XEu5xju9 O4kngxgGZu1LGvdUgg2JabRRT+w= X-Google-Smtp-Source: APiQypIN7x474BTSx5XNa9RZW9WcGvmIkvA4In5cY3QG7AbDCZt9ElM/lzxg5ccexbNWUlxXVVHWkg== X-Received: by 2002:aca:450a:: with SMTP id s10mr7885862oia.25.1587316095961; Sun, 19 Apr 2020 10:08:15 -0700 (PDT) Received: from xps15.herring.priv (24-155-109-49.dyn.grandenetworks.net. [24.155.109.49]) by smtp.googlemail.com with ESMTPSA id u205sm9661938oia.37.2020.04.19.10.08.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Apr 2020 10:08:15 -0700 (PDT) From: Rob Herring To: Linus Walleij , Liviu Dudau , Lorenzo Pieralisi , Sudeep Holla Cc: Arnd Bergmann , Catalin Marinas , Greg Kroah-Hartman , Lee Jones , Sebastian Reichel , Stephen Boyd , Will Deacon , Kevin Brodsky , linux-arm-kernel@lists.infradead.org, linux-clk@vger.kernel.org, linux-pm@vger.kernel.org Subject: [PATCH 02/17] arm64: vexpress: Don't select CONFIG_POWER_RESET_VEXPRESS Date: Sun, 19 Apr 2020 12:07:55 -0500 Message-Id: <20200419170810.5738-3-robh@kernel.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200419170810.5738-1-robh@kernel.org> References: <20200419170810.5738-1-robh@kernel.org> MIME-Version: 1.0 Sender: linux-pm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pm@vger.kernel.org The VExpress power-off/reset driver is not needed on 64-bit platforms as PSCI power-off and reset can be used instead. Stop selecting it so it can be disabled and not always built-in. Cc: Catalin Marinas Cc: Will Deacon Cc: Liviu Dudau Cc: Sudeep Holla Cc: Lorenzo Pieralisi Cc: Linus Walleij Signed-off-by: Rob Herring Acked-by: Arnd Bergmann Acked-by: Liviu Dudau --- arch/arm64/Kconfig.platforms | 1 - 1 file changed, 1 deletion(-) diff --git a/arch/arm64/Kconfig.platforms b/arch/arm64/Kconfig.platforms index 55d70cfe0f9e..9c084f995e0f 100644 --- a/arch/arm64/Kconfig.platforms +++ b/arch/arm64/Kconfig.platforms @@ -278,7 +278,6 @@ config ARCH_VEXPRESS select GPIOLIB select PM select PM_GENERIC_DOMAINS - select POWER_RESET_VEXPRESS select VEXPRESS_CONFIG help This enables support for the ARMv8 software model (Versatile From patchwork Sun Apr 19 17:07:56 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rob Herring X-Patchwork-Id: 11497623 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 6D46813B2 for ; Sun, 19 Apr 2020 17:08:19 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 4DCA122242 for ; Sun, 19 Apr 2020 17:08:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1587316099; bh=PQahhGI9a1IpkbYLA4Opp9ZmWVfvsDFRho7lLuaUQXI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=RWgiGJOvoUG89K43ji7eBh2bnV1d3gxaxplsNw1zp2p1bzU3T0+7nRWVDDXr0Mgoy 3jViHaKOIwEr78D1C4RaYMrrAKE1cuoC1zANeXsKuoAlNzhSL2esq3t74FhacDFi4a ZVIoGxTgvj7qfNkwtI1S6Xuk4h86wsAJ9XuYwzk8= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1725932AbgDSRIS (ORCPT ); Sun, 19 Apr 2020 13:08:18 -0400 Received: from mail-ot1-f66.google.com ([209.85.210.66]:43637 "EHLO mail-ot1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726582AbgDSRIS (ORCPT ); Sun, 19 Apr 2020 13:08:18 -0400 Received: by mail-ot1-f66.google.com with SMTP id g14so5954670otg.10; Sun, 19 Apr 2020 10:08:17 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=J4W1MOddjCCw9dJQYLiEdJO8bx77R5HtOxEd/Z5DPRs=; b=dG+WO6E7anSCss5mEEnTN7NJVeuVofNwCgYn7tNI+xTsFZKzZR/CT5OIh/LbAR3nx2 /mEA+U5/x4CSfTLi++D6jojfO3nGVZXZ+Q/lKTAve38RF2mQPb/q9Nk4JjbMXPP/aEJz aQ9BkVD+8Rq9Bjuw2MKBIWEpvdXS4GgV8sBx9MpyYBoOrX70Sb3ZfPZUmhkXqRBZRg+p 8KO2l+O8cbGppYhbYXhy7DktE3xhVbEfwZAEQcqe3stYNpr7UjPoRUQBHjfHBWydh129 oASC//RA/0vUFW/n1g3lM6cX5ASMQg0SP3GEA975cFWrDq6PSKIK5s2uocBVPz7cLPxP KirQ== X-Gm-Message-State: AGi0Puaspczsl0XQ0IygxACza2ng7uCUyFzzkGpMn5M3cUEfd8i8Iy8d OcpLejX5wcUfbAwUqmY5vw== X-Google-Smtp-Source: APiQypK0fJJhWegtefihZ3xqlHSSIU1Y4BN4GM5zgOcJ5aHxuge40tlIXHFeRHdB9gUqefM8BlqeQw== X-Received: by 2002:a9d:423:: with SMTP id 32mr6922257otc.334.1587316097257; Sun, 19 Apr 2020 10:08:17 -0700 (PDT) Received: from xps15.herring.priv (24-155-109-49.dyn.grandenetworks.net. [24.155.109.49]) by smtp.googlemail.com with ESMTPSA id u205sm9661938oia.37.2020.04.19.10.08.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Apr 2020 10:08:16 -0700 (PDT) From: Rob Herring To: Linus Walleij , Liviu Dudau , Lorenzo Pieralisi , Sudeep Holla Cc: Arnd Bergmann , Catalin Marinas , Greg Kroah-Hartman , Lee Jones , Sebastian Reichel , Stephen Boyd , Will Deacon , Kevin Brodsky , linux-arm-kernel@lists.infradead.org, linux-clk@vger.kernel.org, linux-pm@vger.kernel.org Subject: [PATCH 03/17] arm64: vexpress: Don't select CONFIG_VEXPRESS_CONFIG Date: Sun, 19 Apr 2020 12:07:56 -0500 Message-Id: <20200419170810.5738-4-robh@kernel.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200419170810.5738-1-robh@kernel.org> References: <20200419170810.5738-1-robh@kernel.org> MIME-Version: 1.0 Sender: linux-pm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pm@vger.kernel.org CONFIG_VEXPRESS_CONFIG has 'default y if ARCH_VEXPRESS', so selecting is unnecessary. It also prevents setting CONFIG_VEXPRESS_CONFIG to a module. Cc: Catalin Marinas Cc: Will Deacon Cc: Liviu Dudau Cc: Sudeep Holla Cc: Lorenzo Pieralisi Cc: Linus Walleij Signed-off-by: Rob Herring Reviewed-by: Sudeep Holla --- arch/arm64/Kconfig.platforms | 1 - 1 file changed, 1 deletion(-) diff --git a/arch/arm64/Kconfig.platforms b/arch/arm64/Kconfig.platforms index 9c084f995e0f..5c38dc56b808 100644 --- a/arch/arm64/Kconfig.platforms +++ b/arch/arm64/Kconfig.platforms @@ -278,7 +278,6 @@ config ARCH_VEXPRESS select GPIOLIB select PM select PM_GENERIC_DOMAINS - select VEXPRESS_CONFIG help This enables support for the ARMv8 software model (Versatile Express). From patchwork Sun Apr 19 17:07:57 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rob Herring X-Patchwork-Id: 11497627 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 1A8276CA for ; Sun, 19 Apr 2020 17:08:22 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 04E7A22240 for ; Sun, 19 Apr 2020 17:08:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1587316102; bh=szac4l2QAhbEUWicT3jzxxM5fGRs62FUmFI8tfeKehA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=uShx0KBApM7s7cvtZAMqxQVlv8ySxTHxGhzjed93SF4K+506hKKrgLfV4i3/TLaW0 OICIhdugdZkb/hD3xpykouxSfpoihyGN6gxcYErw3kxiKRCyNr2vcA3H9PLZoRALXP db4//cgMyPW+3hzMsDEnVtM2Klemb+N8+rhB6ylI= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726636AbgDSRIV (ORCPT ); Sun, 19 Apr 2020 13:08:21 -0400 Received: from mail-oi1-f194.google.com ([209.85.167.194]:36534 "EHLO mail-oi1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726613AbgDSRIV (ORCPT ); Sun, 19 Apr 2020 13:08:21 -0400 Received: by mail-oi1-f194.google.com with SMTP id s202so6772111oih.3; Sun, 19 Apr 2020 10:08:19 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=rkm1yVQrueouMlMynX/IUSbPHuMCnuzEP4ZMzc2uSk4=; b=uLKWkiKig45Yrm6j5rcm4kw8g8GkGBO9vaVp/IB2s9DaGJxzWBlo75Rn7Tb0syveQA /47m//9XRJeqow79FXWI9mPpvK1TnDcwRlhWX71c3i9bAAuz+Cm8n0Mb7sfVXNntv9Gv 7vKWvKQIksstshLQmo1J7yVQ8/Y4tjtuYBSLMgVwsDFsOMuyA3EckOeIJGEO+EMNmWtk bf1deNuGIfRvG9xRy/liMHW2yoHmdKYGFhJLrzwfIJMHAJsu/TLNQbCBV600xC3EgaM9 PGazcj86bmjT9uI6zGMfdgkn37glAFQiAxgWYQJyDx7U2xX8oF9AxJ4zUiaY6lDs/nxj WrcA== X-Gm-Message-State: AGi0PuaKiBgzMKOu/dAbmzn76+bv/97I4S9bOiT2JIAjYQM1pT+NJfhz q58aNTql9sIWcTh8P50ezA== X-Google-Smtp-Source: APiQypLVQEjKhtfaW8eTl7YjGxsB7Qz3p8JXmiFRCoXKab90R013s1nz5LZs7Fjm2ta59f95TNmGeQ== X-Received: by 2002:aca:f254:: with SMTP id q81mr8228410oih.12.1587316098741; Sun, 19 Apr 2020 10:08:18 -0700 (PDT) Received: from xps15.herring.priv (24-155-109-49.dyn.grandenetworks.net. [24.155.109.49]) by smtp.googlemail.com with ESMTPSA id u205sm9661938oia.37.2020.04.19.10.08.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Apr 2020 10:08:18 -0700 (PDT) From: Rob Herring To: Linus Walleij , Liviu Dudau , Lorenzo Pieralisi , Sudeep Holla Cc: Arnd Bergmann , Catalin Marinas , Greg Kroah-Hartman , Lee Jones , Sebastian Reichel , Stephen Boyd , Will Deacon , Kevin Brodsky , linux-arm-kernel@lists.infradead.org, linux-clk@vger.kernel.org, linux-pm@vger.kernel.org Subject: [PATCH 04/17] power/reset: vexpress: Support building as a module Date: Sun, 19 Apr 2020 12:07:57 -0500 Message-Id: <20200419170810.5738-5-robh@kernel.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200419170810.5738-1-robh@kernel.org> References: <20200419170810.5738-1-robh@kernel.org> MIME-Version: 1.0 Sender: linux-pm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pm@vger.kernel.org Enable building the VExpress power-off/reset driver as a module. Cc: Catalin Marinas Cc: Will Deacon Cc: Liviu Dudau Cc: Sudeep Holla Cc: Lorenzo Pieralisi Cc: Linus Walleij Cc: Sebastian Reichel Cc: linux-pm@vger.kernel.org Signed-off-by: Rob Herring Reviewed-by: Sudeep Holla --- drivers/power/reset/Kconfig | 2 +- drivers/power/reset/vexpress-poweroff.c | 10 ++++------ 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/drivers/power/reset/Kconfig b/drivers/power/reset/Kconfig index 890380302080..0ba18221ba40 100644 --- a/drivers/power/reset/Kconfig +++ b/drivers/power/reset/Kconfig @@ -182,7 +182,7 @@ config POWER_RESET_VERSATILE reference boards. config POWER_RESET_VEXPRESS - bool "ARM Versatile Express power-off and reset driver" + tristate "ARM Versatile Express power-off and reset driver" depends on ARM || ARM64 depends on VEXPRESS_CONFIG help diff --git a/drivers/power/reset/vexpress-poweroff.c b/drivers/power/reset/vexpress-poweroff.c index 90cbaa8341e3..8a6d3add894c 100644 --- a/drivers/power/reset/vexpress-poweroff.c +++ b/drivers/power/reset/vexpress-poweroff.c @@ -5,6 +5,7 @@ */ #include +#include #include #include #include @@ -87,6 +88,7 @@ static const struct of_device_id vexpress_reset_of_match[] = { }, {} }; +MODULE_DEVICE_TABLE(of, vexpress_reset_of_match); static int _vexpress_register_restart_handler(struct device *dev) { @@ -145,9 +147,5 @@ static struct platform_driver vexpress_reset_driver = { .of_match_table = vexpress_reset_of_match, }, }; - -static int __init vexpress_reset_init(void) -{ - return platform_driver_register(&vexpress_reset_driver); -} -device_initcall(vexpress_reset_init); +module_platform_driver(vexpress_reset_driver); +MODULE_LICENSE("GPL v2"); From patchwork Sun Apr 19 17:07:58 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rob Herring X-Patchwork-Id: 11497633 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id E122F6CA for ; Sun, 19 Apr 2020 17:08:22 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id C951121D79 for ; Sun, 19 Apr 2020 17:08:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1587316102; bh=mSVZ9744iRMyFHCrYw20NJhqoVeef8ONoiuPrNobXjI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=pQR0L67CdqB9116+UxcJgLjhnbUjB99jBpj1N5v/kxhT2UfZKnMTxPpzheoVGkdee q1q/IgO1ZJY5ccBTf0fH6XTAafDeNA1DvE9QMuGPYpKk5mJ2D16B4ft5jmZoBGTVfJ tLFwCvxjt7TLRbiskY6FajeYA9CWHj6FNFtM8h0g= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726639AbgDSRIW (ORCPT ); Sun, 19 Apr 2020 13:08:22 -0400 Received: from mail-ot1-f66.google.com ([209.85.210.66]:32817 "EHLO mail-ot1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726582AbgDSRIV (ORCPT ); Sun, 19 Apr 2020 13:08:21 -0400 Received: by mail-ot1-f66.google.com with SMTP id j26so5980694ots.0; Sun, 19 Apr 2020 10:08:20 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Dfjp1gZuZ5vkk5hbQ7tBLiYF+WukIQyW6RLLpGIIUfY=; b=MYyYf8f5dqDnsQwkuWfkfzjYlQqeTD9AY1ZT8yzIDX2LxD1ENgHfNahyIZm13zobJ0 kyElrfE591p0OKFphmE7D1lhoXrLWzabQuswyr17HhAz06ZqeXkqkDaqCYZydaF4qCm2 fG4SlqX6jGH9Avfx4qhy/h0x+aYQaSNsiCrKOZ+pdo9sa/Vir0sjRmWnNNxumDCXHqxp D64/mQiCri2mPnicgJ2oteYAcSnHls+NRiy8qlM08AgeVtC941LpbSsSknb/EG7/m/hh ClnO+UZeAF5V2Ye240ovs3vbnuix5rnSjikaeAPDQkUyLIQkHLgHYz3nP0opPWoZr4aH +1sQ== X-Gm-Message-State: AGi0PuZ2iTMjGX/twhwvAfMSr+lD3dLF86g44cL3R2UYMhVr51lzujtn oUwwW+vZ2EOoFXQpFslV4w== X-Google-Smtp-Source: APiQypIPS0+XDNzclSv4AnGvJhw/FAlVfJCrCq8sLXv1l6bDtJmCpkeDjmWLFW1j0V9Ur0kffusBUQ== X-Received: by 2002:a9d:19ca:: with SMTP id k68mr6856344otk.232.1587316099983; Sun, 19 Apr 2020 10:08:19 -0700 (PDT) Received: from xps15.herring.priv (24-155-109-49.dyn.grandenetworks.net. [24.155.109.49]) by smtp.googlemail.com with ESMTPSA id u205sm9661938oia.37.2020.04.19.10.08.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Apr 2020 10:08:19 -0700 (PDT) From: Rob Herring To: Linus Walleij , Liviu Dudau , Lorenzo Pieralisi , Sudeep Holla Cc: Arnd Bergmann , Catalin Marinas , Greg Kroah-Hartman , Lee Jones , Sebastian Reichel , Stephen Boyd , Will Deacon , Kevin Brodsky , linux-arm-kernel@lists.infradead.org, linux-clk@vger.kernel.org, linux-pm@vger.kernel.org Subject: [PATCH 05/17] clk: versatile: Kill CONFIG_COMMON_CLK_VERSATILE Date: Sun, 19 Apr 2020 12:07:58 -0500 Message-Id: <20200419170810.5738-6-robh@kernel.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200419170810.5738-1-robh@kernel.org> References: <20200419170810.5738-1-robh@kernel.org> MIME-Version: 1.0 Sender: linux-pm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pm@vger.kernel.org CONFIG_COMMON_CLK_VERSATILE doesn't really do anything other than hiding Arm Ltd reference platform clock drivers. It is both selected by the platforms that need it and has a 'depends on' for those platforms. It selects REGMAP_MMIO, but really CONFIG_ICST should do that. Also, CONFIG_ICST can't be enabled for COMPILE_TEST unless something else selected it. Cc: Catalin Marinas Cc: Will Deacon Cc: Liviu Dudau Cc: Sudeep Holla Cc: Lorenzo Pieralisi Cc: Linus Walleij Cc: Stephen Boyd Cc: linux-arm-kernel@lists.infradead.org Signed-off-by: Rob Herring Reviewed-by: Sudeep Holla --- arch/arm/mach-integrator/Kconfig | 1 - arch/arm/mach-realview/Kconfig | 1 - arch/arm/mach-versatile/Kconfig | 1 - arch/arm/mach-vexpress/Kconfig | 1 - arch/arm64/Kconfig.platforms | 1 - drivers/clk/Makefile | 2 +- drivers/clk/versatile/Kconfig | 13 ++----------- 7 files changed, 3 insertions(+), 17 deletions(-) diff --git a/arch/arm/mach-integrator/Kconfig b/arch/arm/mach-integrator/Kconfig index 982eabc36163..d59ba15a6b69 100644 --- a/arch/arm/mach-integrator/Kconfig +++ b/arch/arm/mach-integrator/Kconfig @@ -3,7 +3,6 @@ menuconfig ARCH_INTEGRATOR bool "ARM Ltd. Integrator family" depends on ARCH_MULTI_V4T || ARCH_MULTI_V5 || ARCH_MULTI_V6 select ARM_AMBA - select COMMON_CLK_VERSATILE select HAVE_TCM select ICST select MFD_SYSCON diff --git a/arch/arm/mach-realview/Kconfig b/arch/arm/mach-realview/Kconfig index e7633c0aaae7..83ec9eeb3e5f 100644 --- a/arch/arm/mach-realview/Kconfig +++ b/arch/arm/mach-realview/Kconfig @@ -6,7 +6,6 @@ menuconfig ARCH_REALVIEW select ARM_GIC select ARM_TIMER_SP804 select CLK_SP810 - select COMMON_CLK_VERSATILE select GPIO_PL061 if GPIOLIB select HAVE_ARM_SCU if SMP select HAVE_ARM_TWD if SMP diff --git a/arch/arm/mach-versatile/Kconfig b/arch/arm/mach-versatile/Kconfig index f5c275434d6c..d88e7725bf99 100644 --- a/arch/arm/mach-versatile/Kconfig +++ b/arch/arm/mach-versatile/Kconfig @@ -6,7 +6,6 @@ config ARCH_VERSATILE select ARM_TIMER_SP804 select ARM_VIC select CLKSRC_VERSATILE - select COMMON_CLK_VERSATILE select CPU_ARM926T select ICST select MFD_SYSCON diff --git a/arch/arm/mach-vexpress/Kconfig b/arch/arm/mach-vexpress/Kconfig index 18951cd20d9d..2d1fdec4c230 100644 --- a/arch/arm/mach-vexpress/Kconfig +++ b/arch/arm/mach-vexpress/Kconfig @@ -7,7 +7,6 @@ menuconfig ARCH_VEXPRESS select ARM_GIC select ARM_GLOBAL_TIMER select ARM_TIMER_SP804 - select COMMON_CLK_VERSATILE select GPIOLIB select HAVE_ARM_SCU if SMP select HAVE_ARM_TWD if SMP diff --git a/arch/arm64/Kconfig.platforms b/arch/arm64/Kconfig.platforms index 5c38dc56b808..25cbb556d863 100644 --- a/arch/arm64/Kconfig.platforms +++ b/arch/arm64/Kconfig.platforms @@ -274,7 +274,6 @@ config ARCH_UNIPHIER config ARCH_VEXPRESS bool "ARMv8 software model (Versatile Express)" - select COMMON_CLK_VERSATILE select GPIOLIB select PM select PM_GENERIC_DOMAINS diff --git a/drivers/clk/Makefile b/drivers/clk/Makefile index f4169cc2fd31..fb30c16e1596 100644 --- a/drivers/clk/Makefile +++ b/drivers/clk/Makefile @@ -114,7 +114,7 @@ obj-$(CONFIG_ARCH_TEGRA) += tegra/ obj-y += ti/ obj-$(CONFIG_CLK_UNIPHIER) += uniphier/ obj-$(CONFIG_ARCH_U8500) += ux500/ -obj-$(CONFIG_COMMON_CLK_VERSATILE) += versatile/ +obj-y += versatile/ ifeq ($(CONFIG_COMMON_CLK), y) obj-$(CONFIG_X86) += x86/ endif diff --git a/drivers/clk/versatile/Kconfig b/drivers/clk/versatile/Kconfig index c2618f1477a2..3465fb291998 100644 --- a/drivers/clk/versatile/Kconfig +++ b/drivers/clk/versatile/Kconfig @@ -1,22 +1,14 @@ # SPDX-License-Identifier: GPL-2.0-only config ICST - bool - -config COMMON_CLK_VERSATILE - bool "Clock driver for ARM Reference designs" - depends on ARCH_INTEGRATOR || ARCH_REALVIEW || \ - ARCH_VERSATILE || ARCH_VEXPRESS || ARM64 || \ - COMPILE_TEST + bool "Clock driver for ARM Reference designs ICST" if COMPILE_TEST select REGMAP_MMIO ---help--- Supports clocking on ARM Reference designs: - Integrator/AP and Integrator/CP - RealView PB1176, EB, PB11MP and PBX - - Versatile Express config CLK_SP810 bool "Clock driver for ARM SP810 System Controller" - depends on COMMON_CLK_VERSATILE default y if ARCH_VEXPRESS ---help--- Supports clock muxing (REFCLK/TIMCLK to TIMERCLKEN0-3) capabilities @@ -24,8 +16,7 @@ config CLK_SP810 config CLK_VEXPRESS_OSC bool "Clock driver for Versatile Express OSC clock generators" - depends on COMMON_CLK_VERSATILE - depends on VEXPRESS_CONFIG + depends on VEXPRESS_CONFIG || COMPILE_TEST default y if ARCH_VEXPRESS ---help--- Simple regmap-based driver driving clock generators on Versatile From patchwork Sun Apr 19 17:07:59 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rob Herring X-Patchwork-Id: 11497637 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 6C2F713B2 for ; Sun, 19 Apr 2020 17:08:24 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 549D821D79 for ; Sun, 19 Apr 2020 17:08:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1587316104; bh=4dnweJR8iw+6MbqqYBMnNeW21tUFXwNVPyYkqIo4SVk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=i5/VPVZNL/zl++1u5JIYW2Dp/64gxtMUX8uHzcjPVGOfNJ5TzFuL4YiDdFjJdHe1Y VzDxDIU4LUEfuXc+fCiUYW8qCxWg4tVcLANl5TuXqlLvTts7DTsPhsgP6LUDJhoplH iJjz0WqHnDxCGXU9ku+LoFAgt7NJJyaEyIL+W2kU= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726644AbgDSRIX (ORCPT ); Sun, 19 Apr 2020 13:08:23 -0400 Received: from mail-ot1-f65.google.com ([209.85.210.65]:46748 "EHLO mail-ot1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726582AbgDSRIX (ORCPT ); Sun, 19 Apr 2020 13:08:23 -0400 Received: by mail-ot1-f65.google.com with SMTP id z25so2505952otq.13; Sun, 19 Apr 2020 10:08:21 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Qrg4Kn0uV5CkM2HSImaTMyKeQJqbbeo+iRjf1bdrad0=; b=aMYNuyAtOhT98a2aadT7jwrwzNWnHTBT00eL2Jb6oFCB8Csp68mzynuq+Upxi00Z09 bDezMVfmbaxll2g9UmgjIlvKVjXQ9S5sx9lZIp9EyGKcd7k5ffaUFx6oqiXw9hE3D/Il tmmKv+gmAg8W2tUAtgPR3Hdof/i5J/ng4lqSadMkXMbASLjyFwMH9F0iWgtrhQi7aTu+ /5IM5knLBBI/UzKcrDU/0oSEtcOZTJjgR7iKCMl2F6t67FQEPlvPnI96Ddt+HQTK/Hsd Rajdt3huZGSLCz/Wd+CdIR/XZ3pqsoINqoZ7E2uDwAgKxszSb7McslXsWKnjsEkkZOQn H5ug== X-Gm-Message-State: AGi0PubCB2QTF5tZpACiuGEEvE5NlweCrtV4xkjZ3m7VJv6nIsd+loP0 +gp4fwTUicHjzEcFzcgHzg== X-Google-Smtp-Source: APiQypLaYTQQiTq4lbmbzauI24B6HAlyxCl7rv3Xs7I3W7EGTvoW/11+mJIDtPy2Q91CLPeIch7vLA== X-Received: by 2002:a9d:6303:: with SMTP id q3mr6861606otk.296.1587316101203; Sun, 19 Apr 2020 10:08:21 -0700 (PDT) Received: from xps15.herring.priv (24-155-109-49.dyn.grandenetworks.net. [24.155.109.49]) by smtp.googlemail.com with ESMTPSA id u205sm9661938oia.37.2020.04.19.10.08.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Apr 2020 10:08:20 -0700 (PDT) From: Rob Herring To: Linus Walleij , Liviu Dudau , Lorenzo Pieralisi , Sudeep Holla Cc: Arnd Bergmann , Catalin Marinas , Greg Kroah-Hartman , Lee Jones , Sebastian Reichel , Stephen Boyd , Will Deacon , Kevin Brodsky , linux-arm-kernel@lists.infradead.org, linux-clk@vger.kernel.org, linux-pm@vger.kernel.org Subject: [PATCH 06/17] clk: versatile: Only enable SP810 on 32-bit by default Date: Sun, 19 Apr 2020 12:07:59 -0500 Message-Id: <20200419170810.5738-7-robh@kernel.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200419170810.5738-1-robh@kernel.org> References: <20200419170810.5738-1-robh@kernel.org> MIME-Version: 1.0 Sender: linux-pm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pm@vger.kernel.org While 64-bit Arm reference platforms have SP810 for clocks for SP804 timers, they are not needed since the arch timers are used instead. Cc: Catalin Marinas Cc: Will Deacon Cc: Liviu Dudau Cc: Sudeep Holla Cc: Lorenzo Pieralisi Cc: Linus Walleij Cc: Stephen Boyd Cc: linux-clk@vger.kernel.org Signed-off-by: Rob Herring Acked-by: Arnd Bergmann Acked-by: Stephen Boyd Acked-by: Liviu Dudau --- drivers/clk/versatile/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/clk/versatile/Kconfig b/drivers/clk/versatile/Kconfig index 3465fb291998..5bdd5c98990b 100644 --- a/drivers/clk/versatile/Kconfig +++ b/drivers/clk/versatile/Kconfig @@ -9,7 +9,7 @@ config ICST config CLK_SP810 bool "Clock driver for ARM SP810 System Controller" - default y if ARCH_VEXPRESS + default y if (ARCH_VEXPRESS && ARM) ---help--- Supports clock muxing (REFCLK/TIMCLK to TIMERCLKEN0-3) capabilities of the ARM SP810 System Controller cell. From patchwork Sun Apr 19 17:08:00 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rob Herring X-Patchwork-Id: 11497639 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 98AC017EA for ; Sun, 19 Apr 2020 17:08:24 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 8142E22240 for ; Sun, 19 Apr 2020 17:08:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1587316104; bh=mhzbVJqxAxt8YmJGmMp5WgR1glzCSk1rI5KLPvv+nEo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=p744s263Y7kw+Itm2Ccpf1kxzDVVzH+tYpG7BwylDpIHhiaMSNCURGNQ3IhycEAml drduTAHyAHxZwkrrt67X7RANOCH3yqbYqWlfJsfnqoY+dAOf8aH7MPtkPMXgrI0ZZi 2dnh7ax37DSESIMkOlCIxhWPq2yWWXOx67q7qpYA= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726582AbgDSRIY (ORCPT ); Sun, 19 Apr 2020 13:08:24 -0400 Received: from mail-ot1-f67.google.com ([209.85.210.67]:41521 "EHLO mail-ot1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726643AbgDSRIX (ORCPT ); Sun, 19 Apr 2020 13:08:23 -0400 Received: by mail-ot1-f67.google.com with SMTP id c3so5953476otp.8; Sun, 19 Apr 2020 10:08:22 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=qR3APrxTNCGqJRTKnyGqCjhSnTFRpHkLD/ZqBvxeFJA=; b=HufbYbquHdoFv8LncRJ9dohMGRDUePppp2/s0w9TQhq/7U18i0w0cz6k5WsSmr8acb Kj41vMzsGcHH0ci3T4PcPwAfZV4g4C4na9qzDyBqQkdoZATD9LUHLN+rRRPCFSWzZ6i8 N78/6BJ2cgTHyYrGcmDXV1T7mumxIZhD2rLn5Qu8XshNLGGM2nAMtYVGBMibVESVbWOJ ow5OcqYn/7jhUf//i0F4B30aGv+tzzpLWmIpjXt6dbQ9IP1UYhFM0O33VmnuuHUCYL7a 2zL1IBGCjQyYQ44J+3d6pmIbJgWwp+o2SRq1vypAPLCvbXDGV+NBz4MWpwUzA/P1oXQS Vnfg== X-Gm-Message-State: AGi0PuYwQYO1B3+KCpbefSTUOyoA99VjIQ/nIirpWQPJY5q8qy5E5C3s Znl6chlKPhWedXx2ElfZcA== X-Google-Smtp-Source: APiQypJRBqdugWx8PeDgR8OJglN2KN7qjTUoljyMmF8u89tlJuk3/msimvMwYF6xrm67UkXj9aqsmw== X-Received: by 2002:a9d:805:: with SMTP id 5mr6859221oty.111.1587316102393; Sun, 19 Apr 2020 10:08:22 -0700 (PDT) Received: from xps15.herring.priv (24-155-109-49.dyn.grandenetworks.net. [24.155.109.49]) by smtp.googlemail.com with ESMTPSA id u205sm9661938oia.37.2020.04.19.10.08.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Apr 2020 10:08:21 -0700 (PDT) From: Rob Herring To: Linus Walleij , Liviu Dudau , Lorenzo Pieralisi , Sudeep Holla Cc: Arnd Bergmann , Catalin Marinas , Greg Kroah-Hartman , Lee Jones , Sebastian Reichel , Stephen Boyd , Will Deacon , Kevin Brodsky , linux-arm-kernel@lists.infradead.org, linux-clk@vger.kernel.org, linux-pm@vger.kernel.org Subject: [PATCH 07/17] clk: vexpress-osc: Use the devres clock API variants Date: Sun, 19 Apr 2020 12:08:00 -0500 Message-Id: <20200419170810.5738-8-robh@kernel.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200419170810.5738-1-robh@kernel.org> References: <20200419170810.5738-1-robh@kernel.org> MIME-Version: 1.0 Sender: linux-pm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pm@vger.kernel.org In preparation to enable the vexpress-osc clock driver as a module, convert the driver to use the managed devres clock API variants. With this, a driver .remove() hook is not needed. Cc: Liviu Dudau Cc: Sudeep Holla Cc: Lorenzo Pieralisi Cc: Linus Walleij Cc: Stephen Boyd Cc: linux-clk@vger.kernel.org Signed-off-by: Rob Herring Acked-by: Arnd Bergmann Reviewed-by: Stephen Boyd Acked-by: Liviu Dudau Reviewed-by: Sudeep Holla --- drivers/clk/versatile/clk-vexpress-osc.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/clk/versatile/clk-vexpress-osc.c b/drivers/clk/versatile/clk-vexpress-osc.c index 7ade146a3ea9..5bb1d5a714d0 100644 --- a/drivers/clk/versatile/clk-vexpress-osc.c +++ b/drivers/clk/versatile/clk-vexpress-osc.c @@ -65,8 +65,8 @@ static int vexpress_osc_probe(struct platform_device *pdev) { struct clk_init_data init; struct vexpress_osc *osc; - struct clk *clk; u32 range[2]; + int ret; osc = devm_kzalloc(&pdev->dev, sizeof(*osc), GFP_KERNEL); if (!osc) @@ -92,11 +92,11 @@ static int vexpress_osc_probe(struct platform_device *pdev) osc->hw.init = &init; - clk = clk_register(NULL, &osc->hw); - if (IS_ERR(clk)) - return PTR_ERR(clk); + ret = devm_clk_hw_register(&pdev->dev, &osc->hw); + if (ret < 0) + return ret; - of_clk_add_provider(pdev->dev.of_node, of_clk_src_simple_get, clk); + devm_of_clk_add_hw_provider(&pdev->dev, of_clk_hw_simple_get, &osc->hw); clk_hw_set_rate_range(&osc->hw, osc->rate_min, osc->rate_max); dev_dbg(&pdev->dev, "Registered clock '%s'\n", init.name); From patchwork Sun Apr 19 17:08:01 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rob Herring X-Patchwork-Id: 11497645 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id F247113B2 for ; Sun, 19 Apr 2020 17:08:25 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id DB87622240 for ; Sun, 19 Apr 2020 17:08:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1587316105; bh=27u6UNhOfBujQI9ansm5XkxZzZTEfYokP2OUZC6EZb4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=Yt0pLMORxmuoWP13aYGpKgHmT9xd821v8gEHqswEmPKfANH6sNpbKQ1cFD+aM8Hdj OQrUWURNcH2HefaH5s9sBQ6BIA+isQ81amSMemxOAK8B+G2k4jzAdxRdJMPV0Hkhmz 8fIK+JjHQahdbGxaXJIo4x2AbHxCfBOGsxELUuQs= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726660AbgDSRIZ (ORCPT ); Sun, 19 Apr 2020 13:08:25 -0400 Received: from mail-ot1-f68.google.com ([209.85.210.68]:36701 "EHLO mail-ot1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726643AbgDSRIY (ORCPT ); Sun, 19 Apr 2020 13:08:24 -0400 Received: by mail-ot1-f68.google.com with SMTP id b13so5968472oti.3; Sun, 19 Apr 2020 10:08:24 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=HqpSGKoXLi3sKkfdberr101LzIYIKH6zzFoEGRY23rQ=; b=IVJ6TVu1bor1TsCV4EipYSKgqBOmcvwhXU6MxGcesmNSixT8o8VndHrEoEL0QYChqv 4z/xVvGBKPJiD9iDJhiQ2VmAgTjrzZq/G3GX4vFrbRob/4XWulNMQnghmGXYmTNlBlnc uKwY5MPtJ1euG4Y61IoB2QhAjR7OlVFTvGx3KS5HCu8WKJghyR3IMQMeqgrfjVdPsl3/ L8M6k0i5dd6FnMrAMSkwH1hC2ibpD58dISJwfXC4DQUKhhA0j2d20N8B08MzqbwRBP1Y Skb+E2U4HF3XVjn7d5CXRDrDjZnz+3ZC5T0+rYMUZCyLwPZ2AzqDy6k7TQsvAPw8WFvI vXbQ== X-Gm-Message-State: AGi0PuaK66D7MfhQo3SVyIccdyHYNNpmpXmQWlMa9OnYa4131tMhoxX0 cIARMSSpQUEnrk35rDGjAg== X-Google-Smtp-Source: APiQypIFr2mQFKNOYpHIWrxwJ0w/H0567uuPX+ub6eDgSKHRgh3fJS5CSFDmpVpY8TCgeusy5wORrQ== X-Received: by 2002:a9d:4e11:: with SMTP id p17mr797808otf.35.1587316103723; Sun, 19 Apr 2020 10:08:23 -0700 (PDT) Received: from xps15.herring.priv (24-155-109-49.dyn.grandenetworks.net. [24.155.109.49]) by smtp.googlemail.com with ESMTPSA id u205sm9661938oia.37.2020.04.19.10.08.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Apr 2020 10:08:23 -0700 (PDT) From: Rob Herring To: Linus Walleij , Liviu Dudau , Lorenzo Pieralisi , Sudeep Holla Cc: Arnd Bergmann , Catalin Marinas , Greg Kroah-Hartman , Lee Jones , Sebastian Reichel , Stephen Boyd , Will Deacon , Kevin Brodsky , linux-arm-kernel@lists.infradead.org, linux-clk@vger.kernel.org, linux-pm@vger.kernel.org, Michael Turquette Subject: [PATCH 08/17] clk: vexpress-osc: Support building as a module Date: Sun, 19 Apr 2020 12:08:01 -0500 Message-Id: <20200419170810.5738-9-robh@kernel.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200419170810.5738-1-robh@kernel.org> References: <20200419170810.5738-1-robh@kernel.org> MIME-Version: 1.0 Sender: linux-pm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pm@vger.kernel.org Enable building the vexpress-osc clock driver as a module. Cc: Linus Walleij Cc: Liviu Dudau Cc: Sudeep Holla Cc: Lorenzo Pieralisi Cc: Michael Turquette Cc: Stephen Boyd Cc: linux-clk@vger.kernel.org Signed-off-by: Rob Herring --- drivers/clk/versatile/Kconfig | 4 ++-- drivers/clk/versatile/clk-vexpress-osc.c | 10 ++++------ 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/drivers/clk/versatile/Kconfig b/drivers/clk/versatile/Kconfig index 5bdd5c98990b..9de2396dcf9b 100644 --- a/drivers/clk/versatile/Kconfig +++ b/drivers/clk/versatile/Kconfig @@ -15,8 +15,8 @@ config CLK_SP810 of the ARM SP810 System Controller cell. config CLK_VEXPRESS_OSC - bool "Clock driver for Versatile Express OSC clock generators" - depends on VEXPRESS_CONFIG || COMPILE_TEST + tristate "Clock driver for Versatile Express OSC clock generators" + depends on VEXPRESS_CONFIG default y if ARCH_VEXPRESS ---help--- Simple regmap-based driver driving clock generators on Versatile diff --git a/drivers/clk/versatile/clk-vexpress-osc.c b/drivers/clk/versatile/clk-vexpress-osc.c index 5bb1d5a714d0..b2b32fa2d7c3 100644 --- a/drivers/clk/versatile/clk-vexpress-osc.c +++ b/drivers/clk/versatile/clk-vexpress-osc.c @@ -7,6 +7,7 @@ #include #include #include +#include #include #include #include @@ -108,6 +109,7 @@ static const struct of_device_id vexpress_osc_of_match[] = { { .compatible = "arm,vexpress-osc", }, {} }; +MODULE_DEVICE_TABLE(of, vexpress_osc_of_match); static struct platform_driver vexpress_osc_driver = { .driver = { @@ -116,9 +118,5 @@ static struct platform_driver vexpress_osc_driver = { }, .probe = vexpress_osc_probe, }; - -static int __init vexpress_osc_init(void) -{ - return platform_driver_register(&vexpress_osc_driver); -} -core_initcall(vexpress_osc_init); +module_platform_driver(vexpress_osc_driver); +MODULE_LICENSE("GPL v2"); From patchwork Sun Apr 19 17:08:02 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rob Herring X-Patchwork-Id: 11497649 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 5489A13B2 for ; Sun, 19 Apr 2020 17:08:27 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 3C84A21927 for ; Sun, 19 Apr 2020 17:08:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1587316107; bh=2eKZYMGpV/7p77KCmWiP04HNK2UQ8WOtShOvV49pc1s=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=CXEDm5RXCTo8f/5Dk/Q1J6zw1jfcypiBe+YPx0HZkZoPsXF3GshHOGIFlqI1bBjhx I5ynCMeyUm64cfrkk87aAa8OBz5tzzzsvfRvuGjdJlGna2+uaOTp1oOuvtybDdsR5S 9KzQeHoVdXeUzU4UvHlLfBZqXFkkGGSmiuriQrZQ= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726666AbgDSRI0 (ORCPT ); Sun, 19 Apr 2020 13:08:26 -0400 Received: from mail-ot1-f65.google.com ([209.85.210.65]:39113 "EHLO mail-ot1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726643AbgDSRI0 (ORCPT ); Sun, 19 Apr 2020 13:08:26 -0400 Received: by mail-ot1-f65.google.com with SMTP id m13so5960703otf.6; Sun, 19 Apr 2020 10:08:25 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=lL7kUnqrt4NzPOQyXcvp2n9d+Q96MUmdmOUa848dWDw=; b=TbRSyoNAc/KpttP9vH5M3igKmsGsicMlwqjahmPrey+zkfBqC1BWOKMJjBgO4H/95j q5jPJZki5iee7ZDZI5EPMsgKqYdLf+l3Vn+xS2NwYsF+7GqVRTcQBLNmKOZlzCFQJBKG jSQHeoy/MKowjAVLed35kaeM2IdbcFzZsFULFfCXjgj0XwhLSFQcr7tPivfZbTGK5W/N dZEXw1UfG27xuNgssy/93QQBL5QATnexrWRNN/M+K/NupWlnPPvk/95h/cI51T15UAXV pibNom3bmK+Irt7bugE8iy4ivoaAKlhtfWgJvpV+E24MxQZ8/HQbi6EAyJ3Nu1so07qr R+CA== X-Gm-Message-State: AGi0PuZ/fPVzTtpDn/ZHfibqRTYL6yF0AQGQha3AIl++QjFLOK1C2ATM k/2yHhLcMCeoqGcMkSpiXg== X-Google-Smtp-Source: APiQypKx5UHUpB9QQwwicGLNrpuxItDEsWq2VRAkb1J7481iH3Fbl73Y40DGbCP6jlP+0VPeKXgkNg== X-Received: by 2002:a9d:2dc1:: with SMTP id g59mr6383687otb.90.1587316105171; Sun, 19 Apr 2020 10:08:25 -0700 (PDT) Received: from xps15.herring.priv (24-155-109-49.dyn.grandenetworks.net. [24.155.109.49]) by smtp.googlemail.com with ESMTPSA id u205sm9661938oia.37.2020.04.19.10.08.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Apr 2020 10:08:24 -0700 (PDT) From: Rob Herring To: Linus Walleij , Liviu Dudau , Lorenzo Pieralisi , Sudeep Holla Cc: Arnd Bergmann , Catalin Marinas , Greg Kroah-Hartman , Lee Jones , Sebastian Reichel , Stephen Boyd , Will Deacon , Kevin Brodsky , linux-arm-kernel@lists.infradead.org, linux-clk@vger.kernel.org, linux-pm@vger.kernel.org Subject: [PATCH 09/17] mfd: vexpress-sysreg: Drop selecting CONFIG_CLKSRC_MMIO Date: Sun, 19 Apr 2020 12:08:02 -0500 Message-Id: <20200419170810.5738-10-robh@kernel.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200419170810.5738-1-robh@kernel.org> References: <20200419170810.5738-1-robh@kernel.org> MIME-Version: 1.0 Sender: linux-pm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pm@vger.kernel.org Nothing in the VExpress sysregs nor the MFD child drivers use CONFIG_CLKSRC_MMIO. There's the 24MHz counter, but that's handled by drivers/clocksource/timer-versatile.c which doesn't use CONFIG_CLKSRC_MMIO either. So let's just drop CONFIG_CLKSRC_MMIO. As the !ARCH_USES_GETTIMEOFFSET dependency was added for CONFIG_CLKSRC_MMIO, that can be dropped, too. Cc: Liviu Dudau Cc: Sudeep Holla Cc: Lorenzo Pieralisi Cc: Linus Walleij Cc: Lee Jones Signed-off-by: Rob Herring Acked-by: Arnd Bergmann Acked-by: Liviu Dudau --- drivers/mfd/Kconfig | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig index 0a59249198d3..b1311dea2da1 100644 --- a/drivers/mfd/Kconfig +++ b/drivers/mfd/Kconfig @@ -2029,9 +2029,8 @@ endmenu config MFD_VEXPRESS_SYSREG bool "Versatile Express System Registers" - depends on VEXPRESS_CONFIG && GPIOLIB && !ARCH_USES_GETTIMEOFFSET + depends on VEXPRESS_CONFIG && GPIOLIB default y - select CLKSRC_MMIO select GPIO_GENERIC_PLATFORM select MFD_CORE select MFD_SYSCON From patchwork Sun Apr 19 17:08:03 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rob Herring X-Patchwork-Id: 11497653 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id A320D13B2 for ; Sun, 19 Apr 2020 17:08:28 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 8201C21927 for ; Sun, 19 Apr 2020 17:08:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1587316108; bh=5s+Mu/bq5atEmXPTZv9t5FevT+Rp/t144Zg7LvSpZ3g=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=sUwzGS6on7RYvYSCpiXFt3lghg7pEDKmEvEmUcIhjuVWovEZn8A+Uui0swmdpjra3 m/mVWiO1MK5Pjkb5/rY3gbduGMurHyD1MSIqo/I7EM9p5G0WmX9nsIk3Ik+9Ju6g9G gAJD3Uq5swMZOVKkooALgUz0GkO+KiSxZsyWa1tk= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726669AbgDSRI2 (ORCPT ); Sun, 19 Apr 2020 13:08:28 -0400 Received: from mail-ot1-f65.google.com ([209.85.210.65]:44282 "EHLO mail-ot1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726643AbgDSRI1 (ORCPT ); Sun, 19 Apr 2020 13:08:27 -0400 Received: by mail-ot1-f65.google.com with SMTP id j4so5946312otr.11; Sun, 19 Apr 2020 10:08:27 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=GUrQRwWEdT3OPVCv5XBDcWtCr3A5NYwLye3iL8Rp6X4=; b=OTBp3TUSEeVJzjW5vDNb+FeINyDENfmZ3uuNXAeHk1il/cAq0C1zzEU3D7ulj8cmX7 TaDM2Zn1ZSoRFC02dJGtJcVUi9QuAM22Vvhfrox4abuWAi6sjwWoCKR/y81EDeS8ER2L ho93CdjEaQo/F6WA210apsm37Hfl76q/SwZgA03EcGEfW4wkc5F7qC18JqVprcEIUjnS JIk1eWHcriI46/RsFQZuWsdMefb7lRUpYJhDIVGeQC07JsWqunoSp7NLiLNUnCuwHspF /0fuul9NpsRFr+7D/EHhq3fuDsPKquc0iv77DTqEIGktQJzsIuIArC2K4ydMsdBfA8fg dc1A== X-Gm-Message-State: AGi0PuY+2uRReNZPoODOca3+YrZrOTdVRRMRN/dDUeJ+q1GjWbAEKd9X IrtDdndTEMvXa9bwaF+jzQ== X-Google-Smtp-Source: APiQypJGWLbEPjS2dTyxElGSO1SQkhT/chgz+TKrJJLrrB7yeocLCbZGPucP0I6nicooOJm2R+O0CQ== X-Received: by 2002:a9d:6ad0:: with SMTP id m16mr6268800otq.122.1587316106702; Sun, 19 Apr 2020 10:08:26 -0700 (PDT) Received: from xps15.herring.priv (24-155-109-49.dyn.grandenetworks.net. [24.155.109.49]) by smtp.googlemail.com with ESMTPSA id u205sm9661938oia.37.2020.04.19.10.08.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Apr 2020 10:08:26 -0700 (PDT) From: Rob Herring To: Linus Walleij , Liviu Dudau , Lorenzo Pieralisi , Sudeep Holla Cc: Arnd Bergmann , Catalin Marinas , Greg Kroah-Hartman , Lee Jones , Sebastian Reichel , Stephen Boyd , Will Deacon , Kevin Brodsky , linux-arm-kernel@lists.infradead.org, linux-clk@vger.kernel.org, linux-pm@vger.kernel.org Subject: [PATCH 10/17] mfd: vexpress-sysreg: Drop unused syscon child devices Date: Sun, 19 Apr 2020 12:08:03 -0500 Message-Id: <20200419170810.5738-11-robh@kernel.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200419170810.5738-1-robh@kernel.org> References: <20200419170810.5738-1-robh@kernel.org> MIME-Version: 1.0 Sender: linux-pm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pm@vger.kernel.org Cc: Liviu Dudau Cc: Sudeep Holla Cc: Lorenzo Pieralisi Cc: Linus Walleij Cc: Lee Jones Signed-off-by: Rob Herring Acked-by: Liviu Dudau --- drivers/mfd/vexpress-sysreg.c | 36 ----------------------------------- 1 file changed, 36 deletions(-) diff --git a/drivers/mfd/vexpress-sysreg.c b/drivers/mfd/vexpress-sysreg.c index 0b9cc67706c7..90a4eda2ba2b 100644 --- a/drivers/mfd/vexpress-sysreg.c +++ b/drivers/mfd/vexpress-sysreg.c @@ -43,10 +43,6 @@ /* The sysreg block is just a random collection of various functions... */ -static struct syscon_platform_data vexpress_sysreg_sys_id_pdata = { - .label = "sys_id", -}; - static struct bgpio_pdata vexpress_sysreg_sys_led_pdata = { .label = "sys_led", .base = -1, @@ -65,24 +61,8 @@ static struct bgpio_pdata vexpress_sysreg_sys_flash_pdata = { .ngpio = 1, }; -static struct syscon_platform_data vexpress_sysreg_sys_misc_pdata = { - .label = "sys_misc", -}; - -static struct syscon_platform_data vexpress_sysreg_sys_procid_pdata = { - .label = "sys_procid", -}; - static struct mfd_cell vexpress_sysreg_cells[] = { { - .name = "syscon", - .num_resources = 1, - .resources = (struct resource []) { - DEFINE_RES_MEM(SYS_ID, 0x4), - }, - .platform_data = &vexpress_sysreg_sys_id_pdata, - .pdata_size = sizeof(vexpress_sysreg_sys_id_pdata), - }, { .name = "basic-mmio-gpio", .of_compatible = "arm,vexpress-sysreg,sys_led", .num_resources = 1, @@ -109,22 +89,6 @@ static struct mfd_cell vexpress_sysreg_cells[] = { }, .platform_data = &vexpress_sysreg_sys_flash_pdata, .pdata_size = sizeof(vexpress_sysreg_sys_flash_pdata), - }, { - .name = "syscon", - .num_resources = 1, - .resources = (struct resource []) { - DEFINE_RES_MEM(SYS_MISC, 0x4), - }, - .platform_data = &vexpress_sysreg_sys_misc_pdata, - .pdata_size = sizeof(vexpress_sysreg_sys_misc_pdata), - }, { - .name = "syscon", - .num_resources = 1, - .resources = (struct resource []) { - DEFINE_RES_MEM(SYS_PROCID0, 0x8), - }, - .platform_data = &vexpress_sysreg_sys_procid_pdata, - .pdata_size = sizeof(vexpress_sysreg_sys_procid_pdata), }, { .name = "vexpress-syscfg", .num_resources = 1, From patchwork Sun Apr 19 17:08:04 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rob Herring X-Patchwork-Id: 11497657 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 32D0713B2 for ; Sun, 19 Apr 2020 17:08:30 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 1B4DD221F4 for ; Sun, 19 Apr 2020 17:08:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1587316110; bh=C5VGZ3DiWWPmJZySKJGbExqFh+rjsoFWpTaoqyg6fdw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=OrBCQLieNBSoDcfeTX3MaFiPIq3Fm7jBMgiVwV1xUSvFnstmxY2H3SvP9gi0cNTxF cfof904iOsDjBqpzt230tpl2qjVw1x8QAknFsNEysVzFI1SFUw1Czv67U7aVF7T5dJ dpe94gtNiI/UM3dgkHB89IRnaM+bbxznG8Gh1BXg= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726673AbgDSRI3 (ORCPT ); Sun, 19 Apr 2020 13:08:29 -0400 Received: from mail-ot1-f66.google.com ([209.85.210.66]:36705 "EHLO mail-ot1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726643AbgDSRI2 (ORCPT ); Sun, 19 Apr 2020 13:08:28 -0400 Received: by mail-ot1-f66.google.com with SMTP id b13so5968636oti.3; Sun, 19 Apr 2020 10:08:28 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=HpigmDdLGgTxwi4cNTPUYj5dEoa36081Zy4k4zJz1VY=; b=tzgMgP0PqnQmZXmPe+hp7yD0Y18xWNPesvnQMHSb83PgEpPyAmPaz30em887uAsUVt AtICtiYkFe6AZPhyYlNYB2G2tGvrRDtd6nNx9Lr/dlFQ9ir8POT6vZgN4u1zU0QOen9K TWITdWPNAD6CoE5uCE6N6zEOpcVLz2hcRNd6AO2nDsXEJ+9HliZltSqkMyctaV1k+i2l b1Dup0HAI/98nGsrFApW+y3MEjzT6WKSoKCXGvhBkHo1cpvBEFPsVHk63GrIfqedMMh0 DgPPdyCToeBGDIAYI3lGfB+zG+wD7PsQx7ZArR7ufcl3paUfOzEA7hFC/wIMgqomAnoE NWxQ== X-Gm-Message-State: AGi0PuZjnemgMwtJiOZFWcc8R3LmN3gqVPGOaBo8pgEUYrlg9ITlypIc kCviW+sC6LYBHqgQmhxWxw== X-Google-Smtp-Source: APiQypJgZQt1Jy5vrd9fOU0cBVwNlY4pfSaPWLayv3NzXhAUoYJ3R81Cc7lBObtyZw4FxEChoAE4fA== X-Received: by 2002:a05:6830:1495:: with SMTP id s21mr6391348otq.38.1587316108297; Sun, 19 Apr 2020 10:08:28 -0700 (PDT) Received: from xps15.herring.priv (24-155-109-49.dyn.grandenetworks.net. [24.155.109.49]) by smtp.googlemail.com with ESMTPSA id u205sm9661938oia.37.2020.04.19.10.08.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Apr 2020 10:08:27 -0700 (PDT) From: Rob Herring To: Linus Walleij , Liviu Dudau , Lorenzo Pieralisi , Sudeep Holla Cc: Arnd Bergmann , Catalin Marinas , Greg Kroah-Hartman , Lee Jones , Sebastian Reichel , Stephen Boyd , Will Deacon , Kevin Brodsky , linux-arm-kernel@lists.infradead.org, linux-clk@vger.kernel.org, linux-pm@vger.kernel.org Subject: [PATCH 11/17] mfd: vexpress-sysreg: Use devres API variants Date: Sun, 19 Apr 2020 12:08:04 -0500 Message-Id: <20200419170810.5738-12-robh@kernel.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200419170810.5738-1-robh@kernel.org> References: <20200419170810.5738-1-robh@kernel.org> MIME-Version: 1.0 Sender: linux-pm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pm@vger.kernel.org Use the managed devm_gpiochip_add_data() and devm_mfd_add_devices() instead of their unmanaged counterparts. With this, no .remove() hook is needed for driver unbind. Cc: Liviu Dudau Cc: Sudeep Holla Cc: Lorenzo Pieralisi Cc: Linus Walleij Cc: Lee Jones Signed-off-by: Rob Herring Acked-by: Arnd Bergmann Acked-by: Liviu Dudau --- drivers/mfd/vexpress-sysreg.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/mfd/vexpress-sysreg.c b/drivers/mfd/vexpress-sysreg.c index 90a4eda2ba2b..9fb37fa689e0 100644 --- a/drivers/mfd/vexpress-sysreg.c +++ b/drivers/mfd/vexpress-sysreg.c @@ -140,9 +140,9 @@ static int vexpress_sysreg_probe(struct platform_device *pdev) bgpio_init(mmc_gpio_chip, &pdev->dev, 0x4, base + SYS_MCI, NULL, NULL, NULL, NULL, 0); mmc_gpio_chip->ngpio = 2; - gpiochip_add_data(mmc_gpio_chip, NULL); + devm_gpiochip_add_data(&pdev->dev, mmc_gpio_chip, NULL); - return mfd_add_devices(&pdev->dev, PLATFORM_DEVID_AUTO, + return devm_mfd_add_devices(&pdev->dev, PLATFORM_DEVID_AUTO, vexpress_sysreg_cells, ARRAY_SIZE(vexpress_sysreg_cells), mem, 0, NULL); } From patchwork Sun Apr 19 17:08:05 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rob Herring X-Patchwork-Id: 11497661 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 2D7696CA for ; Sun, 19 Apr 2020 17:08:34 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 16459206E9 for ; Sun, 19 Apr 2020 17:08:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1587316114; bh=giNih2MAtdZyhNJ/sJZM3RS2wiwdHluUXQDN4vNE4f4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=CW1XROCT7M/cttuGTD4jmO3nslHo0YJ5fI6xp4VIhdVHsFWxOEf2h0joBbxllXYmO lJRfL7WdG9CwAFk2oYsbdxbPaKz/SeQAQEwJi4mT7giA9CW9n5rPacC8fXCqZM/gyS MZcD0H+OJn+xNLNnlcRyW0fdhgYgk1ARpHBHGFXQ= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726684AbgDSRIc (ORCPT ); Sun, 19 Apr 2020 13:08:32 -0400 Received: from mail-ot1-f65.google.com ([209.85.210.65]:34125 "EHLO mail-ot1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726643AbgDSRIb (ORCPT ); Sun, 19 Apr 2020 13:08:31 -0400 Received: by mail-ot1-f65.google.com with SMTP id h11so519073ots.1; Sun, 19 Apr 2020 10:08:29 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=3HyKpPbcRN4znVuAjhoeE+CSQVXiKwEz8DNz5m29rBI=; b=qGZTGEj3UeNP9RW/FkyurKNQVZVIYIuy22YhPxl3qB/Q9db1nWOrFRHZumH0NPLayv ecyJ9eXCBD0obdic1HX4Bdw7ruQRM30KHhvdmDBIjR+3Yk8AuWYfEzM9SREA9CDEFmny LkNzmcmYeEqcDcBvgq9KsKZoVTcR/JE0C9Eng9koHTojiNPx3EVEv4+CTu2Ve6H7pHtb PyKtmVd4QsD/TQ2MBnju4ewktDf0o4dMLl1aniUUwgWB/ap/4WgOvCAYwnR/ophN1dgR uLEYik+pJSFrwBmabfB7xB+YfUU26YtpyXda0sKKCF9OmdcDoj3Lg45qTlCUK3Sx6bk0 dBMw== X-Gm-Message-State: AGi0PuYSuSReSAjZ8YwqBu0EKtps2AqOs1bV4wP5kccKzJUlSwuj6CGH 3dGK09hPp8vJEy/o9nrbew== X-Google-Smtp-Source: APiQypJ3TUDwE5W0Lbu6MaWW9hEAAI/eMa1e4x7PzilWJJUeR5E6pht0rkfYrYUnpXdKfjZXW9G54Q== X-Received: by 2002:a9d:6c55:: with SMTP id g21mr6432746otq.211.1587316109509; Sun, 19 Apr 2020 10:08:29 -0700 (PDT) Received: from xps15.herring.priv (24-155-109-49.dyn.grandenetworks.net. [24.155.109.49]) by smtp.googlemail.com with ESMTPSA id u205sm9661938oia.37.2020.04.19.10.08.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Apr 2020 10:08:28 -0700 (PDT) From: Rob Herring To: Linus Walleij , Liviu Dudau , Lorenzo Pieralisi , Sudeep Holla Cc: Arnd Bergmann , Catalin Marinas , Greg Kroah-Hartman , Lee Jones , Sebastian Reichel , Stephen Boyd , Will Deacon , Kevin Brodsky , linux-arm-kernel@lists.infradead.org, linux-clk@vger.kernel.org, linux-pm@vger.kernel.org Subject: [PATCH 12/17] mfd: vexpress-sysreg: Support building as a module Date: Sun, 19 Apr 2020 12:08:05 -0500 Message-Id: <20200419170810.5738-13-robh@kernel.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200419170810.5738-1-robh@kernel.org> References: <20200419170810.5738-1-robh@kernel.org> MIME-Version: 1.0 Sender: linux-pm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pm@vger.kernel.org Enable building the vexpress-sysreg driver as a module. Cc: Liviu Dudau Cc: Sudeep Holla Cc: Lorenzo Pieralisi Cc: Linus Walleij Cc: Lee Jones Cc: linux-arm-kernel@lists.infradead.org Signed-off-by: Rob Herring --- drivers/mfd/Kconfig | 2 +- drivers/mfd/vexpress-sysreg.c | 15 ++++----------- 2 files changed, 5 insertions(+), 12 deletions(-) diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig index b1311dea2da1..792766558328 100644 --- a/drivers/mfd/Kconfig +++ b/drivers/mfd/Kconfig @@ -2028,7 +2028,7 @@ config MCP_UCB1200_TS endmenu config MFD_VEXPRESS_SYSREG - bool "Versatile Express System Registers" + tristate "Versatile Express System Registers" depends on VEXPRESS_CONFIG && GPIOLIB default y select GPIO_GENERIC_PLATFORM diff --git a/drivers/mfd/vexpress-sysreg.c b/drivers/mfd/vexpress-sysreg.c index 9fb37fa689e0..eeeeb1d26d5d 100644 --- a/drivers/mfd/vexpress-sysreg.c +++ b/drivers/mfd/vexpress-sysreg.c @@ -8,6 +8,7 @@ #include #include #include +#include #include #include #include @@ -151,6 +152,7 @@ static const struct of_device_id vexpress_sysreg_match[] = { { .compatible = "arm,vexpress-sysreg", }, {}, }; +MODULE_DEVICE_TABLE(of, vexpress_sysreg_match); static struct platform_driver vexpress_sysreg_driver = { .driver = { @@ -160,14 +162,5 @@ static struct platform_driver vexpress_sysreg_driver = { .probe = vexpress_sysreg_probe, }; -static int __init vexpress_sysreg_init(void) -{ - struct device_node *node; - - /* Need the sysreg early, before any other device... */ - for_each_matching_node(node, vexpress_sysreg_match) - of_platform_device_create(node, NULL, NULL); - - return platform_driver_register(&vexpress_sysreg_driver); -} -core_initcall(vexpress_sysreg_init); +module_platform_driver(vexpress_sysreg_driver); +MODULE_LICENSE("GPL v2"); From patchwork Sun Apr 19 17:08:06 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rob Herring X-Patchwork-Id: 11497665 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 7F95113B2 for ; Sun, 19 Apr 2020 17:08:34 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 678C821D79 for ; Sun, 19 Apr 2020 17:08:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1587316114; bh=sj2SHdpBPz0UBE9jsDThMJ6TQMDB3+FP3fZuaqFgMPg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=ULSqucyruCUlvF6BvKF18Xq4isc+Hn2vrkLuHQgsDv+XgUqdg37zWSFsELHQ+wTH7 cw7Lax9rx0TgVEfc8xjLCKIkiATYj+5NT5f6Olqs6ojsw3ytCCpOZwM87qse+6PUL+ p7TVZWgrJneBXRdzew1m2rhz+/6sgaLhS7QLRCcI= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726492AbgDSRId (ORCPT ); Sun, 19 Apr 2020 13:08:33 -0400 Received: from mail-ot1-f68.google.com ([209.85.210.68]:37685 "EHLO mail-ot1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726677AbgDSRIc (ORCPT ); Sun, 19 Apr 2020 13:08:32 -0400 Received: by mail-ot1-f68.google.com with SMTP id z17so5975814oto.4; Sun, 19 Apr 2020 10:08:31 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=GDsOf8xrlQkbUqgAcINGDxLpBH8V3FiknyRNzRYDKwo=; b=HBlY/b+Bi/uYplJx7cQo6KfMD+OH7dH0OY6bDjkY5rzUOp6dCvWAU/4fRvnLC25ffw 7tbSQAJi4nyYNBZi4EvYKh/K1/qOuRd8jjJIp5lXsaXgzj3FEJOXrjirvrhYvnNa495j LkzjpXc1Yg5N24eBWcnuyv2su5ega54xqwgVFxi22k2JZHS1snwY8r0D7Ue1zLf90MDI +rLO2TOTLs8YR4t3R1fxUgagMvN0nJz85wF0rfpj2TUeDkV0Fe+LRd7a4VqwCFVk/z9q 7N19XaNYY34In6phMSCpGrsWG2bUs0VOl3EovaeEVzaeqigHj5tv9O+NuUw2QR3vfxS9 65oA== X-Gm-Message-State: AGi0PuZlr8wjUgs2IKdAzX1r0Tif4rsclgK9HAniPbkrrf4vQ66p/Pzr qRI5txxszwp9OGfVIG3fKw== X-Google-Smtp-Source: APiQypLFbtfp79/5QJZvCudLXXjTScxXROV1png55ZPeGSDdb0tkJrrhen3wX4MDPaz1N8eU87z+3A== X-Received: by 2002:a9d:6447:: with SMTP id m7mr6587316otl.256.1587316110736; Sun, 19 Apr 2020 10:08:30 -0700 (PDT) Received: from xps15.herring.priv (24-155-109-49.dyn.grandenetworks.net. [24.155.109.49]) by smtp.googlemail.com with ESMTPSA id u205sm9661938oia.37.2020.04.19.10.08.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Apr 2020 10:08:30 -0700 (PDT) From: Rob Herring To: Linus Walleij , Liviu Dudau , Lorenzo Pieralisi , Sudeep Holla Cc: Arnd Bergmann , Catalin Marinas , Greg Kroah-Hartman , Lee Jones , Sebastian Reichel , Stephen Boyd , Will Deacon , Kevin Brodsky , linux-arm-kernel@lists.infradead.org, linux-clk@vger.kernel.org, linux-pm@vger.kernel.org Subject: [PATCH 13/17] bus: vexpress-config: Merge vexpress-syscfg into vexpress-config Date: Sun, 19 Apr 2020 12:08:06 -0500 Message-Id: <20200419170810.5738-14-robh@kernel.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200419170810.5738-1-robh@kernel.org> References: <20200419170810.5738-1-robh@kernel.org> MIME-Version: 1.0 Sender: linux-pm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pm@vger.kernel.org The only thing that vexpress-syscfg does is provide a regmap to vexpress-config bus child devices. There's little reason to have 2 components for this. The current structure with initcall ordering requirements makes turning these components into modules more difficult. So let's start to simplify things and merge vexpress-syscfg into vexpress-config. There's no functional change in this commit and it's still separate components until subsequent commits. Cc: Liviu Dudau Cc: Sudeep Holla Cc: Lorenzo Pieralisi Cc: Linus Walleij Cc: Arnd Bergmann Cc: Greg Kroah-Hartman Signed-off-by: Rob Herring Acked-by: Greg Kroah-Hartman Acked-by: Liviu Dudau --- arch/arm/mach-vexpress/Kconfig | 1 - drivers/bus/vexpress-config.c | 283 +++++++++++++++++++++++++++++++-- drivers/misc/Kconfig | 9 -- drivers/misc/Makefile | 1 - drivers/misc/vexpress-syscfg.c | 280 -------------------------------- include/linux/vexpress.h | 17 -- 6 files changed, 274 insertions(+), 317 deletions(-) delete mode 100644 drivers/misc/vexpress-syscfg.c diff --git a/arch/arm/mach-vexpress/Kconfig b/arch/arm/mach-vexpress/Kconfig index 2d1fdec4c230..065e12991663 100644 --- a/arch/arm/mach-vexpress/Kconfig +++ b/arch/arm/mach-vexpress/Kconfig @@ -20,7 +20,6 @@ menuconfig ARCH_VEXPRESS select REGULATOR if MMC_ARMMMCI select REGULATOR_FIXED_VOLTAGE if REGULATOR select VEXPRESS_CONFIG - select VEXPRESS_SYSCFG help This option enables support for systems using Cortex processor based ARM core and logic (FPGA) tiles on the Versatile Express motherboard, diff --git a/drivers/bus/vexpress-config.c b/drivers/bus/vexpress-config.c index ff70575b2db6..43f5beac9811 100644 --- a/drivers/bus/vexpress-config.c +++ b/drivers/bus/vexpress-config.c @@ -6,10 +6,48 @@ #include #include +#include #include +#include #include +#include +#include #include +#define SYS_CFGDATA 0x0 + +#define SYS_CFGCTRL 0x4 +#define SYS_CFGCTRL_START (1 << 31) +#define SYS_CFGCTRL_WRITE (1 << 30) +#define SYS_CFGCTRL_DCC(n) (((n) & 0xf) << 26) +#define SYS_CFGCTRL_FUNC(n) (((n) & 0x3f) << 20) +#define SYS_CFGCTRL_SITE(n) (((n) & 0x3) << 16) +#define SYS_CFGCTRL_POSITION(n) (((n) & 0xf) << 12) +#define SYS_CFGCTRL_DEVICE(n) (((n) & 0xfff) << 0) + +#define SYS_CFGSTAT 0x8 +#define SYS_CFGSTAT_ERR (1 << 1) +#define SYS_CFGSTAT_COMPLETE (1 << 0) + + +struct vexpress_syscfg { + struct device *dev; + void __iomem *base; + struct list_head funcs; +}; + +struct vexpress_syscfg_func { + struct list_head list; + struct vexpress_syscfg *syscfg; + struct regmap *regmap; + int num_templates; + u32 template[]; /* Keep it last! */ +}; + +struct vexpress_config_bridge_ops { + struct regmap * (*regmap_init)(struct device *dev, void *context); + void (*regmap_exit)(struct regmap *regmap, void *context); +}; struct vexpress_config_bridge { struct vexpress_config_bridge_ops *ops; @@ -27,17 +65,12 @@ void vexpress_config_set_master(u32 site) vexpress_config_site_master = site; } -u32 vexpress_config_get_master(void) -{ - return vexpress_config_site_master; -} - -void vexpress_config_lock(void *arg) +static void vexpress_config_lock(void *arg) { mutex_lock(&vexpress_config_mutex); } -void vexpress_config_unlock(void *arg) +static void vexpress_config_unlock(void *arg) { mutex_unlock(&vexpress_config_mutex); } @@ -59,7 +92,7 @@ static void vexpress_config_find_prop(struct device_node *node, } } -int vexpress_config_get_topo(struct device_node *node, u32 *site, +static int vexpress_config_get_topo(struct device_node *node, u32 *site, u32 *position, u32 *dcc) { vexpress_config_find_prop(node, "arm,vexpress,site", site); @@ -113,7 +146,7 @@ struct regmap *devm_regmap_init_vexpress_config(struct device *dev) } EXPORT_SYMBOL_GPL(devm_regmap_init_vexpress_config); -struct device *vexpress_config_bridge_register(struct device *parent, +static struct device *vexpress_config_bridge_register(struct device *parent, struct vexpress_config_bridge_ops *ops, void *context) { struct device *dev; @@ -201,3 +234,235 @@ static int __init vexpress_config_init(void) } postcore_initcall(vexpress_config_init); +static int vexpress_syscfg_exec(struct vexpress_syscfg_func *func, + int index, bool write, u32 *data) +{ + struct vexpress_syscfg *syscfg = func->syscfg; + u32 command, status; + int tries; + long timeout; + + if (WARN_ON(index >= func->num_templates)) + return -EINVAL; + + command = readl(syscfg->base + SYS_CFGCTRL); + if (WARN_ON(command & SYS_CFGCTRL_START)) + return -EBUSY; + + command = func->template[index]; + command |= SYS_CFGCTRL_START; + command |= write ? SYS_CFGCTRL_WRITE : 0; + + /* Use a canary for reads */ + if (!write) + *data = 0xdeadbeef; + + dev_dbg(syscfg->dev, "func %p, command %x, data %x\n", + func, command, *data); + writel(*data, syscfg->base + SYS_CFGDATA); + writel(0, syscfg->base + SYS_CFGSTAT); + writel(command, syscfg->base + SYS_CFGCTRL); + mb(); + + /* The operation can take ages... Go to sleep, 100us initially */ + tries = 100; + timeout = 100; + do { + if (!irqs_disabled()) { + set_current_state(TASK_INTERRUPTIBLE); + schedule_timeout(usecs_to_jiffies(timeout)); + if (signal_pending(current)) + return -EINTR; + } else { + udelay(timeout); + } + + status = readl(syscfg->base + SYS_CFGSTAT); + if (status & SYS_CFGSTAT_ERR) + return -EFAULT; + + if (timeout > 20) + timeout -= 20; + } while (--tries && !(status & SYS_CFGSTAT_COMPLETE)); + if (WARN_ON_ONCE(!tries)) + return -ETIMEDOUT; + + if (!write) { + *data = readl(syscfg->base + SYS_CFGDATA); + dev_dbg(syscfg->dev, "func %p, read data %x\n", func, *data); + } + + return 0; +} + +static int vexpress_syscfg_read(void *context, unsigned int index, + unsigned int *val) +{ + struct vexpress_syscfg_func *func = context; + + return vexpress_syscfg_exec(func, index, false, val); +} + +static int vexpress_syscfg_write(void *context, unsigned int index, + unsigned int val) +{ + struct vexpress_syscfg_func *func = context; + + return vexpress_syscfg_exec(func, index, true, &val); +} + +static struct regmap_config vexpress_syscfg_regmap_config = { + .lock = vexpress_config_lock, + .unlock = vexpress_config_unlock, + .reg_bits = 32, + .val_bits = 32, + .reg_read = vexpress_syscfg_read, + .reg_write = vexpress_syscfg_write, + .reg_format_endian = REGMAP_ENDIAN_LITTLE, + .val_format_endian = REGMAP_ENDIAN_LITTLE, +}; + + +static struct regmap *vexpress_syscfg_regmap_init(struct device *dev, + void *context) +{ + int err; + struct vexpress_syscfg *syscfg = context; + struct vexpress_syscfg_func *func; + struct property *prop; + const __be32 *val = NULL; + __be32 energy_quirk[4]; + int num; + u32 site, position, dcc; + int i; + + err = vexpress_config_get_topo(dev->of_node, &site, + &position, &dcc); + if (err) + return ERR_PTR(err); + + prop = of_find_property(dev->of_node, + "arm,vexpress-sysreg,func", NULL); + if (!prop) + return ERR_PTR(-EINVAL); + + num = prop->length / sizeof(u32) / 2; + val = prop->value; + + /* + * "arm,vexpress-energy" function used to be described + * by its first device only, now it requires both + */ + if (num == 1 && of_device_is_compatible(dev->of_node, + "arm,vexpress-energy")) { + num = 2; + energy_quirk[0] = *val; + energy_quirk[2] = *val++; + energy_quirk[1] = *val; + energy_quirk[3] = cpu_to_be32(be32_to_cpup(val) + 1); + val = energy_quirk; + } + + func = kzalloc(struct_size(func, template, num), GFP_KERNEL); + if (!func) + return ERR_PTR(-ENOMEM); + + func->syscfg = syscfg; + func->num_templates = num; + + for (i = 0; i < num; i++) { + u32 function, device; + + function = be32_to_cpup(val++); + device = be32_to_cpup(val++); + + dev_dbg(dev, "func %p: %u/%u/%u/%u/%u\n", + func, site, position, dcc, + function, device); + + func->template[i] = SYS_CFGCTRL_DCC(dcc); + func->template[i] |= SYS_CFGCTRL_SITE(site); + func->template[i] |= SYS_CFGCTRL_POSITION(position); + func->template[i] |= SYS_CFGCTRL_FUNC(function); + func->template[i] |= SYS_CFGCTRL_DEVICE(device); + } + + vexpress_syscfg_regmap_config.max_register = num - 1; + + func->regmap = regmap_init(dev, NULL, func, + &vexpress_syscfg_regmap_config); + + if (IS_ERR(func->regmap)) { + void *err = func->regmap; + + kfree(func); + return err; + } + + list_add(&func->list, &syscfg->funcs); + + return func->regmap; +} + +static void vexpress_syscfg_regmap_exit(struct regmap *regmap, void *context) +{ + struct vexpress_syscfg *syscfg = context; + struct vexpress_syscfg_func *func, *tmp; + + regmap_exit(regmap); + + list_for_each_entry_safe(func, tmp, &syscfg->funcs, list) { + if (func->regmap == regmap) { + list_del(&syscfg->funcs); + kfree(func); + break; + } + } +} + +static struct vexpress_config_bridge_ops vexpress_syscfg_bridge_ops = { + .regmap_init = vexpress_syscfg_regmap_init, + .regmap_exit = vexpress_syscfg_regmap_exit, +}; + + +static int vexpress_syscfg_probe(struct platform_device *pdev) +{ + struct vexpress_syscfg *syscfg; + struct resource *res; + struct device *bridge; + + syscfg = devm_kzalloc(&pdev->dev, sizeof(*syscfg), GFP_KERNEL); + if (!syscfg) + return -ENOMEM; + syscfg->dev = &pdev->dev; + INIT_LIST_HEAD(&syscfg->funcs); + + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); + syscfg->base = devm_ioremap_resource(&pdev->dev, res); + if (IS_ERR(syscfg->base)) + return PTR_ERR(syscfg->base); + + /* Must use dev.parent (MFD), as that's where DT phandle points at... */ + bridge = vexpress_config_bridge_register(pdev->dev.parent, + &vexpress_syscfg_bridge_ops, syscfg); + + return PTR_ERR_OR_ZERO(bridge); +} + +static const struct platform_device_id vexpress_syscfg_id_table[] = { + { "vexpress-syscfg", }, + {}, +}; + +static struct platform_driver vexpress_syscfg_driver = { + .driver.name = "vexpress-syscfg", + .id_table = vexpress_syscfg_id_table, + .probe = vexpress_syscfg_probe, +}; + +static int __init vexpress_syscfg_init(void) +{ + return platform_driver_register(&vexpress_syscfg_driver); +} +core_initcall(vexpress_syscfg_init); diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig index 99e151475d8f..edd5dd5ebfdc 100644 --- a/drivers/misc/Kconfig +++ b/drivers/misc/Kconfig @@ -423,15 +423,6 @@ config SRAM config SRAM_EXEC bool -config VEXPRESS_SYSCFG - bool "Versatile Express System Configuration driver" - depends on VEXPRESS_CONFIG - default y - help - ARM Ltd. Versatile Express uses specialised platform configuration - bus. System Configuration interface is one of the possible means - of generating transactions on this bus. - config PCI_ENDPOINT_TEST depends on PCI select CRC32 diff --git a/drivers/misc/Makefile b/drivers/misc/Makefile index 9abf2923d831..c7bd01ac6291 100644 --- a/drivers/misc/Makefile +++ b/drivers/misc/Makefile @@ -49,7 +49,6 @@ obj-$(CONFIG_SRAM_EXEC) += sram-exec.o obj-y += mic/ obj-$(CONFIG_GENWQE) += genwqe/ obj-$(CONFIG_ECHO) += echo/ -obj-$(CONFIG_VEXPRESS_SYSCFG) += vexpress-syscfg.o obj-$(CONFIG_CXL_BASE) += cxl/ obj-$(CONFIG_PCI_ENDPOINT_TEST) += pci_endpoint_test.o obj-$(CONFIG_OCXL) += ocxl/ diff --git a/drivers/misc/vexpress-syscfg.c b/drivers/misc/vexpress-syscfg.c deleted file mode 100644 index a431787c0898..000000000000 --- a/drivers/misc/vexpress-syscfg.c +++ /dev/null @@ -1,280 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0-only -/* - * - * Copyright (C) 2014 ARM Limited - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include - - -#define SYS_CFGDATA 0x0 - -#define SYS_CFGCTRL 0x4 -#define SYS_CFGCTRL_START (1 << 31) -#define SYS_CFGCTRL_WRITE (1 << 30) -#define SYS_CFGCTRL_DCC(n) (((n) & 0xf) << 26) -#define SYS_CFGCTRL_FUNC(n) (((n) & 0x3f) << 20) -#define SYS_CFGCTRL_SITE(n) (((n) & 0x3) << 16) -#define SYS_CFGCTRL_POSITION(n) (((n) & 0xf) << 12) -#define SYS_CFGCTRL_DEVICE(n) (((n) & 0xfff) << 0) - -#define SYS_CFGSTAT 0x8 -#define SYS_CFGSTAT_ERR (1 << 1) -#define SYS_CFGSTAT_COMPLETE (1 << 0) - - -struct vexpress_syscfg { - struct device *dev; - void __iomem *base; - struct list_head funcs; -}; - -struct vexpress_syscfg_func { - struct list_head list; - struct vexpress_syscfg *syscfg; - struct regmap *regmap; - int num_templates; - u32 template[]; /* Keep it last! */ -}; - - -static int vexpress_syscfg_exec(struct vexpress_syscfg_func *func, - int index, bool write, u32 *data) -{ - struct vexpress_syscfg *syscfg = func->syscfg; - u32 command, status; - int tries; - long timeout; - - if (WARN_ON(index >= func->num_templates)) - return -EINVAL; - - command = readl(syscfg->base + SYS_CFGCTRL); - if (WARN_ON(command & SYS_CFGCTRL_START)) - return -EBUSY; - - command = func->template[index]; - command |= SYS_CFGCTRL_START; - command |= write ? SYS_CFGCTRL_WRITE : 0; - - /* Use a canary for reads */ - if (!write) - *data = 0xdeadbeef; - - dev_dbg(syscfg->dev, "func %p, command %x, data %x\n", - func, command, *data); - writel(*data, syscfg->base + SYS_CFGDATA); - writel(0, syscfg->base + SYS_CFGSTAT); - writel(command, syscfg->base + SYS_CFGCTRL); - mb(); - - /* The operation can take ages... Go to sleep, 100us initially */ - tries = 100; - timeout = 100; - do { - if (!irqs_disabled()) { - set_current_state(TASK_INTERRUPTIBLE); - schedule_timeout(usecs_to_jiffies(timeout)); - if (signal_pending(current)) - return -EINTR; - } else { - udelay(timeout); - } - - status = readl(syscfg->base + SYS_CFGSTAT); - if (status & SYS_CFGSTAT_ERR) - return -EFAULT; - - if (timeout > 20) - timeout -= 20; - } while (--tries && !(status & SYS_CFGSTAT_COMPLETE)); - if (WARN_ON_ONCE(!tries)) - return -ETIMEDOUT; - - if (!write) { - *data = readl(syscfg->base + SYS_CFGDATA); - dev_dbg(syscfg->dev, "func %p, read data %x\n", func, *data); - } - - return 0; -} - -static int vexpress_syscfg_read(void *context, unsigned int index, - unsigned int *val) -{ - struct vexpress_syscfg_func *func = context; - - return vexpress_syscfg_exec(func, index, false, val); -} - -static int vexpress_syscfg_write(void *context, unsigned int index, - unsigned int val) -{ - struct vexpress_syscfg_func *func = context; - - return vexpress_syscfg_exec(func, index, true, &val); -} - -static struct regmap_config vexpress_syscfg_regmap_config = { - .lock = vexpress_config_lock, - .unlock = vexpress_config_unlock, - .reg_bits = 32, - .val_bits = 32, - .reg_read = vexpress_syscfg_read, - .reg_write = vexpress_syscfg_write, - .reg_format_endian = REGMAP_ENDIAN_LITTLE, - .val_format_endian = REGMAP_ENDIAN_LITTLE, -}; - - -static struct regmap *vexpress_syscfg_regmap_init(struct device *dev, - void *context) -{ - int err; - struct vexpress_syscfg *syscfg = context; - struct vexpress_syscfg_func *func; - struct property *prop; - const __be32 *val = NULL; - __be32 energy_quirk[4]; - int num; - u32 site, position, dcc; - int i; - - err = vexpress_config_get_topo(dev->of_node, &site, - &position, &dcc); - if (err) - return ERR_PTR(err); - - prop = of_find_property(dev->of_node, - "arm,vexpress-sysreg,func", NULL); - if (!prop) - return ERR_PTR(-EINVAL); - - num = prop->length / sizeof(u32) / 2; - val = prop->value; - - /* - * "arm,vexpress-energy" function used to be described - * by its first device only, now it requires both - */ - if (num == 1 && of_device_is_compatible(dev->of_node, - "arm,vexpress-energy")) { - num = 2; - energy_quirk[0] = *val; - energy_quirk[2] = *val++; - energy_quirk[1] = *val; - energy_quirk[3] = cpu_to_be32(be32_to_cpup(val) + 1); - val = energy_quirk; - } - - func = kzalloc(struct_size(func, template, num), GFP_KERNEL); - if (!func) - return ERR_PTR(-ENOMEM); - - func->syscfg = syscfg; - func->num_templates = num; - - for (i = 0; i < num; i++) { - u32 function, device; - - function = be32_to_cpup(val++); - device = be32_to_cpup(val++); - - dev_dbg(dev, "func %p: %u/%u/%u/%u/%u\n", - func, site, position, dcc, - function, device); - - func->template[i] = SYS_CFGCTRL_DCC(dcc); - func->template[i] |= SYS_CFGCTRL_SITE(site); - func->template[i] |= SYS_CFGCTRL_POSITION(position); - func->template[i] |= SYS_CFGCTRL_FUNC(function); - func->template[i] |= SYS_CFGCTRL_DEVICE(device); - } - - vexpress_syscfg_regmap_config.max_register = num - 1; - - func->regmap = regmap_init(dev, NULL, func, - &vexpress_syscfg_regmap_config); - - if (IS_ERR(func->regmap)) { - void *err = func->regmap; - - kfree(func); - return err; - } - - list_add(&func->list, &syscfg->funcs); - - return func->regmap; -} - -static void vexpress_syscfg_regmap_exit(struct regmap *regmap, void *context) -{ - struct vexpress_syscfg *syscfg = context; - struct vexpress_syscfg_func *func, *tmp; - - regmap_exit(regmap); - - list_for_each_entry_safe(func, tmp, &syscfg->funcs, list) { - if (func->regmap == regmap) { - list_del(&syscfg->funcs); - kfree(func); - break; - } - } -} - -static struct vexpress_config_bridge_ops vexpress_syscfg_bridge_ops = { - .regmap_init = vexpress_syscfg_regmap_init, - .regmap_exit = vexpress_syscfg_regmap_exit, -}; - - -static int vexpress_syscfg_probe(struct platform_device *pdev) -{ - struct vexpress_syscfg *syscfg; - struct resource *res; - struct device *bridge; - - syscfg = devm_kzalloc(&pdev->dev, sizeof(*syscfg), GFP_KERNEL); - if (!syscfg) - return -ENOMEM; - syscfg->dev = &pdev->dev; - INIT_LIST_HEAD(&syscfg->funcs); - - res = platform_get_resource(pdev, IORESOURCE_MEM, 0); - syscfg->base = devm_ioremap_resource(&pdev->dev, res); - if (IS_ERR(syscfg->base)) - return PTR_ERR(syscfg->base); - - /* Must use dev.parent (MFD), as that's where DT phandle points at... */ - bridge = vexpress_config_bridge_register(pdev->dev.parent, - &vexpress_syscfg_bridge_ops, syscfg); - - return PTR_ERR_OR_ZERO(bridge); -} - -static const struct platform_device_id vexpress_syscfg_id_table[] = { - { "vexpress-syscfg", }, - {}, -}; - -static struct platform_driver vexpress_syscfg_driver = { - .driver.name = "vexpress-syscfg", - .id_table = vexpress_syscfg_id_table, - .probe = vexpress_syscfg_probe, -}; - -static int __init vexpress_syscfg_init(void) -{ - return platform_driver_register(&vexpress_syscfg_driver); -} -core_initcall(vexpress_syscfg_init); diff --git a/include/linux/vexpress.h b/include/linux/vexpress.h index 2ec7992b054c..65096c792d57 100644 --- a/include/linux/vexpress.h +++ b/include/linux/vexpress.h @@ -18,23 +18,6 @@ /* Config infrastructure */ void vexpress_config_set_master(u32 site); -u32 vexpress_config_get_master(void); - -void vexpress_config_lock(void *arg); -void vexpress_config_unlock(void *arg); - -int vexpress_config_get_topo(struct device_node *node, u32 *site, - u32 *position, u32 *dcc); - -/* Config bridge API */ - -struct vexpress_config_bridge_ops { - struct regmap * (*regmap_init)(struct device *dev, void *context); - void (*regmap_exit)(struct regmap *regmap, void *context); -}; - -struct device *vexpress_config_bridge_register(struct device *parent, - struct vexpress_config_bridge_ops *ops, void *context); /* Config regmap API */ From patchwork Sun Apr 19 17:08:07 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rob Herring X-Patchwork-Id: 11497669 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id D7FC26CA for ; Sun, 19 Apr 2020 17:08:34 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id BC31622247 for ; Sun, 19 Apr 2020 17:08:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1587316114; bh=wmna9sOc8KcOyfckxnz1vArOa4qSCLT9jyMrPClQiqQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=wKxKdl3ajlMDjNyaqyg/R+QSboBMeH32n9oAp9zH/Z/UM+mCpGXBlNyfEfLlfPVyg aNhHzDNNrfc5BZToTLqffOs516XXjbt4y+GdJfz5c0ea/InOQgmM0bhF4f5PYSx4EW 6+xGlIVPG7a5AioWaYpW/hhqugbnV1ceAmzFt8os= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726692AbgDSRIe (ORCPT ); Sun, 19 Apr 2020 13:08:34 -0400 Received: from mail-oo1-f65.google.com ([209.85.161.65]:33896 "EHLO mail-oo1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726674AbgDSRId (ORCPT ); Sun, 19 Apr 2020 13:08:33 -0400 Received: by mail-oo1-f65.google.com with SMTP id q204so1591980ooq.1; Sun, 19 Apr 2020 10:08:32 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=/wB2U6U0ewgKGp4KSPn+vSVDTtuFAzErpi8wcYMw6Fo=; b=J330on2EgzdkMLi2/N5HetUHoxJl7mS4qTXMNe1ccQP23uw+Wb0Kvs5B+2yJEWBD/I +WzrP3wOxAgQGAHJoc+7c7PfLJrsIKzTpA39fIHxSjbS/PEyas/w3MEVcLIs4bYupMEq rJ5UQ2M/05hQYFnqmxKwKN+ukoOz0Mwk3oaDYwdNbH2mpUKBFQL88em7XZN5UH+NWU0D 6xS3W7tET1RYGjUVsZfkAa8ILZYqZPK1vRA6e2q9OEZCts6rU5SLep0E8BXson/vFsR/ fQImbJPH+nC0ygqaEd2jCgbKrGnvro6qK5RI/39JtHMXQlvINs83Ulw6P0uS56u4Rp0s rryg== X-Gm-Message-State: AGi0PubosoL4wv9E78d+6DBNnx7YE5Ag86kjZDNplz5kMAr5eFDJlK7U CN0giwNRJbVMpZAzWWb6Y3Zp+Lc= X-Google-Smtp-Source: APiQypImHT/KiAE2mwj4qy0evl0L7k4NWcklyJuzb3ysWeesGWHDLxv/Jj7+ufFs8HRp8SjUd7oBZw== X-Received: by 2002:a4a:7011:: with SMTP id r17mr9863390ooc.17.1587316112203; Sun, 19 Apr 2020 10:08:32 -0700 (PDT) Received: from xps15.herring.priv (24-155-109-49.dyn.grandenetworks.net. [24.155.109.49]) by smtp.googlemail.com with ESMTPSA id u205sm9661938oia.37.2020.04.19.10.08.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Apr 2020 10:08:31 -0700 (PDT) From: Rob Herring To: Linus Walleij , Liviu Dudau , Lorenzo Pieralisi , Sudeep Holla Cc: Arnd Bergmann , Catalin Marinas , Greg Kroah-Hartman , Lee Jones , Sebastian Reichel , Stephen Boyd , Will Deacon , Kevin Brodsky , linux-arm-kernel@lists.infradead.org, linux-clk@vger.kernel.org, linux-pm@vger.kernel.org Subject: [PATCH 14/17] bus: vexpress-config: simplify config bus probing Date: Sun, 19 Apr 2020 12:08:07 -0500 Message-Id: <20200419170810.5738-15-robh@kernel.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200419170810.5738-1-robh@kernel.org> References: <20200419170810.5738-1-robh@kernel.org> MIME-Version: 1.0 Sender: linux-pm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pm@vger.kernel.org The vexpress-config initialization is dependent on the vexpress-syscfg driver probing. As vexpress-config was not a driver, deferred probe could not be used and instead initcall ordering was relied upon. This is fragile and doesn't work for modules. Let's move the config bus init into the vexpress-syscfg probe. This eliminates the initcall ordering requirement and the need to create a struct device and the "vexpress-config" class. Cc: Liviu Dudau Cc: Sudeep Holla Cc: Lorenzo Pieralisi Cc: Linus Walleij Cc: Arnd Bergmann Cc: Greg Kroah-Hartman Signed-off-by: Rob Herring Acked-by: Liviu Dudau --- drivers/bus/vexpress-config.c | 118 ++++++---------------------------- 1 file changed, 21 insertions(+), 97 deletions(-) diff --git a/drivers/bus/vexpress-config.c b/drivers/bus/vexpress-config.c index 43f5beac9811..43deb4df140b 100644 --- a/drivers/bus/vexpress-config.c +++ b/drivers/bus/vexpress-config.c @@ -56,7 +56,6 @@ struct vexpress_config_bridge { static DEFINE_MUTEX(vexpress_config_mutex); -static struct class *vexpress_config_class; static u32 vexpress_config_site_master = VEXPRESS_SITE_MASTER; @@ -121,9 +120,6 @@ struct regmap *devm_regmap_init_vexpress_config(struct device *dev) struct regmap *regmap; struct regmap **res; - if (WARN_ON(dev->parent->class != vexpress_config_class)) - return ERR_PTR(-ENODEV); - bridge = dev_get_drvdata(dev->parent); if (WARN_ON(!bridge)) return ERR_PTR(-EINVAL); @@ -146,94 +142,6 @@ struct regmap *devm_regmap_init_vexpress_config(struct device *dev) } EXPORT_SYMBOL_GPL(devm_regmap_init_vexpress_config); -static struct device *vexpress_config_bridge_register(struct device *parent, - struct vexpress_config_bridge_ops *ops, void *context) -{ - struct device *dev; - struct vexpress_config_bridge *bridge; - - if (!vexpress_config_class) { - vexpress_config_class = class_create(THIS_MODULE, - "vexpress-config"); - if (IS_ERR(vexpress_config_class)) - return (void *)vexpress_config_class; - } - - dev = device_create(vexpress_config_class, parent, 0, - NULL, "%s.bridge", dev_name(parent)); - - if (IS_ERR(dev)) - return dev; - - bridge = devm_kmalloc(dev, sizeof(*bridge), GFP_KERNEL); - if (!bridge) { - put_device(dev); - device_unregister(dev); - return ERR_PTR(-ENOMEM); - } - bridge->ops = ops; - bridge->context = context; - - dev_set_drvdata(dev, bridge); - - dev_dbg(parent, "Registered bridge '%s', parent node %p\n", - dev_name(dev), parent->of_node); - - return dev; -} - - -static int vexpress_config_node_match(struct device *dev, const void *data) -{ - const struct device_node *node = data; - - dev_dbg(dev, "Parent node %p, looking for %p\n", - dev->parent->of_node, node); - - return dev->parent->of_node == node; -} - -static int vexpress_config_populate(struct device_node *node) -{ - struct device_node *bridge; - struct device *parent; - int ret; - - bridge = of_parse_phandle(node, "arm,vexpress,config-bridge", 0); - if (!bridge) - return -EINVAL; - - parent = class_find_device(vexpress_config_class, NULL, bridge, - vexpress_config_node_match); - of_node_put(bridge); - if (WARN_ON(!parent)) - return -ENODEV; - - ret = of_platform_populate(node, NULL, NULL, parent); - - put_device(parent); - - return ret; -} - -static int __init vexpress_config_init(void) -{ - int err = 0; - struct device_node *node; - - /* Need the config devices early, before the "normal" devices... */ - for_each_compatible_node(node, NULL, "arm,vexpress,config-bus") { - err = vexpress_config_populate(node); - if (err) { - of_node_put(node); - break; - } - } - - return err; -} -postcore_initcall(vexpress_config_init); - static int vexpress_syscfg_exec(struct vexpress_syscfg_func *func, int index, bool write, u32 *data) { @@ -430,7 +338,8 @@ static int vexpress_syscfg_probe(struct platform_device *pdev) { struct vexpress_syscfg *syscfg; struct resource *res; - struct device *bridge; + struct vexpress_config_bridge *bridge; + struct device_node *node; syscfg = devm_kzalloc(&pdev->dev, sizeof(*syscfg), GFP_KERNEL); if (!syscfg) @@ -443,11 +352,26 @@ static int vexpress_syscfg_probe(struct platform_device *pdev) if (IS_ERR(syscfg->base)) return PTR_ERR(syscfg->base); - /* Must use dev.parent (MFD), as that's where DT phandle points at... */ - bridge = vexpress_config_bridge_register(pdev->dev.parent, - &vexpress_syscfg_bridge_ops, syscfg); + bridge = devm_kmalloc(&pdev->dev, sizeof(*bridge), GFP_KERNEL); + if (!bridge) + return -ENOMEM; + + bridge->ops = &vexpress_syscfg_bridge_ops; + bridge->context = syscfg; + + dev_set_drvdata(&pdev->dev, bridge); - return PTR_ERR_OR_ZERO(bridge); + for_each_compatible_node(node, NULL, "arm,vexpress,config-bus") { + struct device_node *bridge_np; + + bridge_np = of_parse_phandle(node, "arm,vexpress,config-bridge", 0); + if (bridge_np != pdev->dev.parent->of_node) + continue; + + of_platform_populate(node, NULL, NULL, &pdev->dev); + } + + return 0; } static const struct platform_device_id vexpress_syscfg_id_table[] = { From patchwork Sun Apr 19 17:08:08 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rob Herring X-Patchwork-Id: 11497673 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 44EEF112C for ; Sun, 19 Apr 2020 17:08:36 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 27D4422242 for ; Sun, 19 Apr 2020 17:08:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1587316116; bh=dXPVqpF+ngnYd7JsTUUGCJe+uGcob32MS9jRZ/YVLHg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=FBvRKd53tQHZcuqGpoZ0V/1eMyWRdT/vOS3/WQsv/OTSS+1bv0PUUysbD5v1t0LyG 0nAs3GLyslkj09JTNmgEE5HJmxjSluTARUMn7qy+191LkxrnCy8obWv/BePIlov9uB sXTVAR9iTO4ChGNZOnTd+ZRfF7RZ7VcC/AmBaBXY= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726696AbgDSRIf (ORCPT ); Sun, 19 Apr 2020 13:08:35 -0400 Received: from mail-ot1-f65.google.com ([209.85.210.65]:44290 "EHLO mail-ot1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726677AbgDSRIe (ORCPT ); Sun, 19 Apr 2020 13:08:34 -0400 Received: by mail-ot1-f65.google.com with SMTP id j4so5946500otr.11; Sun, 19 Apr 2020 10:08:33 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=+cM/b65rtjeKyTmogfwhiHXUftLjv62lN3bT8OJ3Ce0=; b=uX8CsuVPJBBthEvkvDdhg3SzF6zs2npXc/5ZPayCq99gwPdWCUqefPM/OpZWNjmeTX 54z3aOGDJhFn1sfyo9PdY3Jv2Ak8MtO6UAhYaQ0hSerds9o4EpSxxKtHD7VPxLxFGGVY b0tV5M/8s5eMO6mX6kAYVT54+CpbYdDAQv2LeaKCV7f7j/Y5b/x9JOMW2nfccFPkeiak 8KPCNGKDfvyeowYxTjhzxWyuwL1Xhb0aJqnIj8/s6U6+QyFrRJt1qXHqSlfwpCQ1pSua 9u4VW0pYu+rvPpyZpP6t+G+NaZd9YWbyzLAH9J3tQ2k9YCJ99zthiD4xJHiS0Bm3CCaE 6iuQ== X-Gm-Message-State: AGi0PuZNuyRweXGdDK/BLUz2ESc9n7o0yVRUZo82wP4T64A3mi+Mja9W eOVM1RPQvGDYL9qXWyi8ZA== X-Google-Smtp-Source: APiQypJ/DjvcatWrwEm/6IPNwh+ISFDJPdeQJhuYT6YbJyt335a7TOpxUQKLngc/mptPSkp4wzuW+A== X-Received: by 2002:a9d:7e92:: with SMTP id m18mr6258749otp.269.1587316113317; Sun, 19 Apr 2020 10:08:33 -0700 (PDT) Received: from xps15.herring.priv (24-155-109-49.dyn.grandenetworks.net. [24.155.109.49]) by smtp.googlemail.com with ESMTPSA id u205sm9661938oia.37.2020.04.19.10.08.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Apr 2020 10:08:32 -0700 (PDT) From: Rob Herring To: Linus Walleij , Liviu Dudau , Lorenzo Pieralisi , Sudeep Holla Cc: Arnd Bergmann , Catalin Marinas , Greg Kroah-Hartman , Lee Jones , Sebastian Reichel , Stephen Boyd , Will Deacon , Kevin Brodsky , linux-arm-kernel@lists.infradead.org, linux-clk@vger.kernel.org, linux-pm@vger.kernel.org Subject: [PATCH 15/17] vexpress: Move site master init to vexpress-config bus Date: Sun, 19 Apr 2020 12:08:08 -0500 Message-Id: <20200419170810.5738-16-robh@kernel.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200419170810.5738-1-robh@kernel.org> References: <20200419170810.5738-1-robh@kernel.org> MIME-Version: 1.0 Sender: linux-pm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pm@vger.kernel.org There's only a single caller of vexpress_config_set_master() from vexpress-sysreg.c. Let's just make the registers needed available to vexpress-config and move all the code there. The registers needed aren't used anywhere else either. With this, we can get rid of the private API between these 2 drivers. Cc: Liviu Dudau Cc: Sudeep Holla Cc: Lorenzo Pieralisi Cc: Linus Walleij Cc: Lee Jones Cc: Greg Kroah-Hartman Signed-off-by: Rob Herring Acked-by: Liviu Dudau --- drivers/bus/vexpress-config.c | 37 +++++++++++++++++++++++++++++++---- drivers/mfd/vexpress-sysreg.c | 25 +---------------------- include/linux/vexpress.h | 9 --------- 3 files changed, 34 insertions(+), 37 deletions(-) diff --git a/drivers/bus/vexpress-config.c b/drivers/bus/vexpress-config.c index 43deb4df140b..caa35a4cb34d 100644 --- a/drivers/bus/vexpress-config.c +++ b/drivers/bus/vexpress-config.c @@ -14,9 +14,17 @@ #include #include -#define SYS_CFGDATA 0x0 +#define SYS_MISC 0x0 +#define SYS_MISC_MASTERSITE (1 << 14) -#define SYS_CFGCTRL 0x4 +#define SYS_PROCID0 0x24 +#define SYS_PROCID1 0x28 +#define SYS_HBI_MASK 0xfff +#define SYS_PROCIDx_HBI_SHIFT 0 + +#define SYS_CFGDATA 0x40 + +#define SYS_CFGCTRL 0x44 #define SYS_CFGCTRL_START (1 << 31) #define SYS_CFGCTRL_WRITE (1 << 30) #define SYS_CFGCTRL_DCC(n) (((n) & 0xf) << 26) @@ -25,10 +33,14 @@ #define SYS_CFGCTRL_POSITION(n) (((n) & 0xf) << 12) #define SYS_CFGCTRL_DEVICE(n) (((n) & 0xfff) << 0) -#define SYS_CFGSTAT 0x8 +#define SYS_CFGSTAT 0x48 #define SYS_CFGSTAT_ERR (1 << 1) #define SYS_CFGSTAT_COMPLETE (1 << 0) +#define VEXPRESS_SITE_MB 0 +#define VEXPRESS_SITE_DB1 1 +#define VEXPRESS_SITE_DB2 2 +#define VEXPRESS_SITE_MASTER 0xf struct vexpress_syscfg { struct device *dev; @@ -59,7 +71,7 @@ static DEFINE_MUTEX(vexpress_config_mutex); static u32 vexpress_config_site_master = VEXPRESS_SITE_MASTER; -void vexpress_config_set_master(u32 site) +static void vexpress_config_set_master(u32 site) { vexpress_config_site_master = site; } @@ -340,6 +352,8 @@ static int vexpress_syscfg_probe(struct platform_device *pdev) struct resource *res; struct vexpress_config_bridge *bridge; struct device_node *node; + int master; + u32 dt_hbi; syscfg = devm_kzalloc(&pdev->dev, sizeof(*syscfg), GFP_KERNEL); if (!syscfg) @@ -361,6 +375,21 @@ static int vexpress_syscfg_probe(struct platform_device *pdev) dev_set_drvdata(&pdev->dev, bridge); + master = readl(syscfg->base + SYS_MISC) & SYS_MISC_MASTERSITE ? + VEXPRESS_SITE_DB2 : VEXPRESS_SITE_DB1; + vexpress_config_set_master(master); + + /* Confirm board type against DT property, if available */ + if (of_property_read_u32(of_root, "arm,hbi", &dt_hbi) == 0) { + u32 id = readl(syscfg->base + (master == VEXPRESS_SITE_DB1 ? + SYS_PROCID0 : SYS_PROCID1)); + u32 hbi = (id >> SYS_PROCIDx_HBI_SHIFT) & SYS_HBI_MASK; + + if (WARN_ON(dt_hbi != hbi)) + dev_warn(&pdev->dev, "DT HBI (%x) is not matching hardware (%x)!\n", + dt_hbi, hbi); + } + for_each_compatible_node(node, NULL, "arm,vexpress,config-bus") { struct device_node *bridge_np; diff --git a/drivers/mfd/vexpress-sysreg.c b/drivers/mfd/vexpress-sysreg.c index eeeeb1d26d5d..aaf24af287dd 100644 --- a/drivers/mfd/vexpress-sysreg.c +++ b/drivers/mfd/vexpress-sysreg.c @@ -14,7 +14,6 @@ #include #include #include -#include #define SYS_ID 0x000 #define SYS_SW 0x004 @@ -37,11 +36,6 @@ #define SYS_CFGCTRL 0x0a4 #define SYS_CFGSTAT 0x0a8 -#define SYS_HBI_MASK 0xfff -#define SYS_PROCIDx_HBI_SHIFT 0 - -#define SYS_MISC_MASTERSITE (1 << 14) - /* The sysreg block is just a random collection of various functions... */ static struct bgpio_pdata vexpress_sysreg_sys_led_pdata = { @@ -94,7 +88,7 @@ static struct mfd_cell vexpress_sysreg_cells[] = { .name = "vexpress-syscfg", .num_resources = 1, .resources = (struct resource []) { - DEFINE_RES_MEM(SYS_CFGDATA, 0xc), + DEFINE_RES_MEM(SYS_MISC, 0x4c), }, } }; @@ -104,8 +98,6 @@ static int vexpress_sysreg_probe(struct platform_device *pdev) struct resource *mem; void __iomem *base; struct gpio_chip *mmc_gpio_chip; - int master; - u32 dt_hbi; mem = platform_get_resource(pdev, IORESOURCE_MEM, 0); if (!mem) @@ -115,21 +107,6 @@ static int vexpress_sysreg_probe(struct platform_device *pdev) if (!base) return -ENOMEM; - master = readl(base + SYS_MISC) & SYS_MISC_MASTERSITE ? - VEXPRESS_SITE_DB2 : VEXPRESS_SITE_DB1; - vexpress_config_set_master(master); - - /* Confirm board type against DT property, if available */ - if (of_property_read_u32(of_root, "arm,hbi", &dt_hbi) == 0) { - u32 id = readl(base + (master == VEXPRESS_SITE_DB1 ? - SYS_PROCID0 : SYS_PROCID1)); - u32 hbi = (id >> SYS_PROCIDx_HBI_SHIFT) & SYS_HBI_MASK; - - if (WARN_ON(dt_hbi != hbi)) - dev_warn(&pdev->dev, "DT HBI (%x) is not matching hardware (%x)!\n", - dt_hbi, hbi); - } - /* * Duplicated SYS_MCI pseudo-GPIO controller for compatibility with * older trees using sysreg node for MMC control lines. diff --git a/include/linux/vexpress.h b/include/linux/vexpress.h index 65096c792d57..2f9dd072f11f 100644 --- a/include/linux/vexpress.h +++ b/include/linux/vexpress.h @@ -10,15 +10,6 @@ #include #include -#define VEXPRESS_SITE_MB 0 -#define VEXPRESS_SITE_DB1 1 -#define VEXPRESS_SITE_DB2 2 -#define VEXPRESS_SITE_MASTER 0xf - -/* Config infrastructure */ - -void vexpress_config_set_master(u32 site); - /* Config regmap API */ struct regmap *devm_regmap_init_vexpress_config(struct device *dev); From patchwork Sun Apr 19 17:08:09 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rob Herring X-Patchwork-Id: 11497675 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id A0E2F13B2 for ; Sun, 19 Apr 2020 17:08:36 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 893F721473 for ; Sun, 19 Apr 2020 17:08:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1587316116; bh=3WcCzxuk8VD1RloPiIi/WxjFl7QJvSqSKqmC+KGZfxo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=GgnFLpnTOlXp+qPIJgWsbuKtBCtQfy8Vq7qN9WXU2MRvO24+ZSBmblzCixjvSEqEn U+0tIUGeK+NXLxO8GOyUFhsY1r+w9WPAM27uyQNgH+Vi4bA9TbmSUTueLfQ1kJA2DW 0H+F/+lERHk6h3ew/ZQNmrgzOTkvoCaPBic7pBUo= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726702AbgDSRIf (ORCPT ); Sun, 19 Apr 2020 13:08:35 -0400 Received: from mail-ot1-f68.google.com ([209.85.210.68]:42523 "EHLO mail-ot1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726695AbgDSRIf (ORCPT ); Sun, 19 Apr 2020 13:08:35 -0400 Received: by mail-ot1-f68.google.com with SMTP id m18so5958707otq.9; Sun, 19 Apr 2020 10:08:34 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=EBjrivoY+dBlZy5hXEimly9aG7ilu27sG29Xt5twimM=; b=YWwG/3ym07tUIH/z9FL+gDEvIwVUSedBOkjKsex1dtTnJw4eD7v+JwgXTUVuZB5nIT 7N2zF1mCzrbO03EeGil5tbgRU4cURlJyJ4wcpDSfCO5BW4nSY6zhsWOsQAPEh0F9QDVP rLk4o/xNEPau/WLSuHjr1hu7zOzJdbQRVZrLM8hdnxijXrrS1QHdxWj4F37FEdi26Wng HryAQdd6LHPZFLO8MNhM+TcRHwgmiRFgOOYBWBfu4cnVv6svU9Ia39LS57WP2AXG9cZw s+KQpWe4wOZ5zcBS//x+yJQRwTFzqI+fMF3gSmRjg+Shr5Ge7mkEG7kyMIyFSflDLfvN 8qng== X-Gm-Message-State: AGi0PuacoFrM6dh25uiU+ogn0MsU6RFO1QXH+O32R+WwK7vo/24WU5Ce GBL539bp7ks3VkeIBbkovOhudh8= X-Google-Smtp-Source: APiQypL94dbwiZMtLp3Y9iPspqjTiyd4nMHmIxz5FPIZ7BgIvaacRyIdkubSgHJoGyF7liSeKobz+Q== X-Received: by 2002:a05:6830:160c:: with SMTP id g12mr6519994otr.335.1587316114376; Sun, 19 Apr 2020 10:08:34 -0700 (PDT) Received: from xps15.herring.priv (24-155-109-49.dyn.grandenetworks.net. [24.155.109.49]) by smtp.googlemail.com with ESMTPSA id u205sm9661938oia.37.2020.04.19.10.08.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Apr 2020 10:08:33 -0700 (PDT) From: Rob Herring To: Linus Walleij , Liviu Dudau , Lorenzo Pieralisi , Sudeep Holla Cc: Arnd Bergmann , Catalin Marinas , Greg Kroah-Hartman , Lee Jones , Sebastian Reichel , Stephen Boyd , Will Deacon , Kevin Brodsky , linux-arm-kernel@lists.infradead.org, linux-clk@vger.kernel.org, linux-pm@vger.kernel.org Subject: [PATCH 16/17] bus: vexpress-config: Support building as module Date: Sun, 19 Apr 2020 12:08:09 -0500 Message-Id: <20200419170810.5738-17-robh@kernel.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200419170810.5738-1-robh@kernel.org> References: <20200419170810.5738-1-robh@kernel.org> MIME-Version: 1.0 Sender: linux-pm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pm@vger.kernel.org Enable building vexpress-config driver as a module. Cc: Liviu Dudau Cc: Sudeep Holla Cc: Lorenzo Pieralisi Cc: Linus Walleij Cc: Greg Kroah-Hartman Signed-off-by: Rob Herring Acked-by: Liviu Dudau --- drivers/bus/Kconfig | 2 +- drivers/bus/vexpress-config.c | 10 ++++------ 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/drivers/bus/Kconfig b/drivers/bus/Kconfig index 6d4e4497b59b..c16268c53831 100644 --- a/drivers/bus/Kconfig +++ b/drivers/bus/Kconfig @@ -183,7 +183,7 @@ config UNIPHIER_SYSTEM_BUS needed to use on-board devices connected to UniPhier SoCs. config VEXPRESS_CONFIG - bool "Versatile Express configuration bus" + tristate "Versatile Express configuration bus" default y if ARCH_VEXPRESS depends on ARM || ARM64 depends on OF diff --git a/drivers/bus/vexpress-config.c b/drivers/bus/vexpress-config.c index caa35a4cb34d..a58ac0c8e282 100644 --- a/drivers/bus/vexpress-config.c +++ b/drivers/bus/vexpress-config.c @@ -7,6 +7,7 @@ #include #include #include +#include #include #include #include @@ -407,15 +408,12 @@ static const struct platform_device_id vexpress_syscfg_id_table[] = { { "vexpress-syscfg", }, {}, }; +MODULE_DEVICE_TABLE(platform, vexpress_syscfg_id_table); static struct platform_driver vexpress_syscfg_driver = { .driver.name = "vexpress-syscfg", .id_table = vexpress_syscfg_id_table, .probe = vexpress_syscfg_probe, }; - -static int __init vexpress_syscfg_init(void) -{ - return platform_driver_register(&vexpress_syscfg_driver); -} -core_initcall(vexpress_syscfg_init); +module_platform_driver(vexpress_syscfg_driver); +MODULE_LICENSE("GPL v2"); From patchwork Sun Apr 19 17:08:10 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rob Herring X-Patchwork-Id: 11497681 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 0AB6A13B2 for ; Sun, 19 Apr 2020 17:08:38 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id E8287206E9 for ; Sun, 19 Apr 2020 17:08:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1587316117; bh=YWozikrx1BzPa6MCZo4amvbL5VTaAmBxngKt29TVU64=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=X6roFsUBi+dxjBpnkVZ7DpEaHYrZNIrMnKJusD0Df0ZsLalQADwwHcpDa6FX4hbuA 861X2qI72CagvWtJ6DWZR2WQZFkDdjiR373ZvmlkmJvrP860zIGKk6XzxQBPqYLj/I qDX2a25v1kSMeHJCLDRhxpXwetnGww8prGqswSzE= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726674AbgDSRIh (ORCPT ); Sun, 19 Apr 2020 13:08:37 -0400 Received: from mail-ot1-f65.google.com ([209.85.210.65]:46770 "EHLO mail-ot1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726703AbgDSRIh (ORCPT ); Sun, 19 Apr 2020 13:08:37 -0400 Received: by mail-ot1-f65.google.com with SMTP id z25so2506431otq.13; Sun, 19 Apr 2020 10:08:36 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=217EOOrFw1JguCx9/rRQyxEPzTa4GJD9mwcwW7ZPvKs=; b=isWEJd9aoVkWfU3+ZVtn9UHhggn9bxnanaijaQbv1U2D9xBzE83qVhaJsmjVvQjh39 8rdTHlNvJVJ2HkB9Dnj739j+3pUdttY8nOE6x3xKPGYoIhPRy/UJ3lROtegeh0W6a9Gy 0XSi2G7xxyvNWsYOyH6ZvaK1bE2EA+UIBfhtTY5paNfZ6IRKf6WJtL2vQiZfvgKRMvrZ /HmeezGGpr2dO6V8HqrHxp1thGNavCxRHUY/b3siKUjPRkykpEVkYltkSahcM/E2UJ6l RYflJyDm+H4JyNcYyvZG8nFlK8zPvHV0/0YFjxs13d/k5sjaHW0LAjd8IJk05ZrU+fti /fwA== X-Gm-Message-State: AGi0PuYt7ouC+N+wgz5qAAmkS/evjMPma1WKOCNKZf0SQFtyUl+Qsa2b Vdmo/hcNcjvuvP15i0uDwZIVjGA= X-Google-Smtp-Source: APiQypLTklldq06zQ7DWUiIK2HKqDOCjCs+VI4+8LpUA7eim5gCSTJk6qg/zaDS+25wQx2aPTMUM0g== X-Received: by 2002:a05:6830:3104:: with SMTP id b4mr3045929ots.250.1587316115620; Sun, 19 Apr 2020 10:08:35 -0700 (PDT) Received: from xps15.herring.priv (24-155-109-49.dyn.grandenetworks.net. [24.155.109.49]) by smtp.googlemail.com with ESMTPSA id u205sm9661938oia.37.2020.04.19.10.08.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Apr 2020 10:08:35 -0700 (PDT) From: Rob Herring To: Linus Walleij , Liviu Dudau , Lorenzo Pieralisi , Sudeep Holla Cc: Arnd Bergmann , Catalin Marinas , Greg Kroah-Hartman , Lee Jones , Sebastian Reichel , Stephen Boyd , Will Deacon , Kevin Brodsky , linux-arm-kernel@lists.infradead.org, linux-clk@vger.kernel.org, linux-pm@vger.kernel.org Subject: [PATCH 17/17] ARM: vexpress: Don't select VEXPRESS_CONFIG Date: Sun, 19 Apr 2020 12:08:10 -0500 Message-Id: <20200419170810.5738-18-robh@kernel.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200419170810.5738-1-robh@kernel.org> References: <20200419170810.5738-1-robh@kernel.org> MIME-Version: 1.0 Sender: linux-pm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pm@vger.kernel.org CONFIG_VEXPRESS_CONFIG has 'default y if ARCH_VEXPRESS', so selecting is unnecessary. Selecting it also prevents setting CONFIG_VEXPRESS_CONFIG to a module. Cc: Liviu Dudau Cc: Sudeep Holla Cc: Lorenzo Pieralisi Cc: Linus Walleij Signed-off-by: Rob Herring Acked-by: Liviu Dudau --- arch/arm/mach-vexpress/Kconfig | 1 - 1 file changed, 1 deletion(-) diff --git a/arch/arm/mach-vexpress/Kconfig b/arch/arm/mach-vexpress/Kconfig index 065e12991663..8391a5b3cd78 100644 --- a/arch/arm/mach-vexpress/Kconfig +++ b/arch/arm/mach-vexpress/Kconfig @@ -19,7 +19,6 @@ menuconfig ARCH_VEXPRESS select POWER_SUPPLY select REGULATOR if MMC_ARMMMCI select REGULATOR_FIXED_VOLTAGE if REGULATOR - select VEXPRESS_CONFIG help This option enables support for systems using Cortex processor based ARM core and logic (FPGA) tiles on the Versatile Express motherboard,