From patchwork Tue May 12 02:39:42 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Joshua Scott X-Patchwork-Id: 471103 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id A607E14016A for ; Tue, 12 May 2015 12:41:39 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=alliedtelesis.co.nz header.i=@alliedtelesis.co.nz header.b=cCe/jzp4; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752032AbbELCli (ORCPT ); Mon, 11 May 2015 22:41:38 -0400 Received: from gate2.alliedtelesis.co.nz ([202.36.163.20]:39247 "EHLO gate2.alliedtelesis.co.nz" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751655AbbELCli (ORCPT ); Mon, 11 May 2015 22:41:38 -0400 Received: from mmarshal3.atlnz.lc (mmarshal3.atlnz.lc [10.32.18.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by gate2.alliedtelesis.co.nz (Postfix) with ESMTPS id 1F3C780666; Tue, 12 May 2015 14:41:35 +1200 (NZST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alliedtelesis.co.nz; s=mail; t=1431398495; bh=2znX6+HMOqPYm+D8mn0wa2wfFRsDzV8I6uVLifriwCw=; h=From:To:Cc:Subject:Date; b=cCe/jzp4yw2misTNTL4fD39B6cv2FIjUCiA9EtopniFu9TQgzZ8hYUOUaNv08r33s uXiBlNJLMy19FcAxsOp17/lQc6Hs+F5xAO1qzt0njE2SiuKai+QwVLkwpVIKNQT3fz JDzUAOQWyEnJjRP5AVC6LGE1KmOitqOThRTXj4KY= Received: from smtp (Not Verified[10.32.16.33]) by mmarshal3.atlnz.lc with Trustwave SEG (v7, 3, 0, 7277) id ; Tue, 12 May 2015 14:41:32 +1200 Received: from joshuas-dl.ws.atlnz.lc (joshuas-dl.ws.atlnz.lc [10.33.13.20]) by smtp (Postfix) with ESMTP id BD59713EC0D; Tue, 12 May 2015 14:41:13 +1200 (NZST) Received: by joshuas-dl.ws.atlnz.lc (Postfix, from userid 1634) id 4B1EC1A0EF3; Tue, 12 May 2015 14:41:32 +1200 (NZST) From: Joshua Scott To: Linus Walleij , Alexandre Courbot , Patrice Chotard , Thomas Petazzoni , Fabian Frederick , Wolfram Sang Cc: linux-gpio@vger.kernel.org, Chris Packham , Joshua Scott Subject: [PATCH] gpio: pinctrl: Initialize Armada-XP GPIO/Pinctrl drivers at arch_initcall Date: Tue, 12 May 2015 14:39:42 +1200 Message-Id: <1431398382-1894-1-git-send-email-joshua.scott@alliedtelesis.co.nz> X-Mailer: git-send-email 1.9.1 Sender: linux-gpio-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org The Armada-XP contains a set of GPIO pins. These pins may be used to take other hardware out of reset. However, the drivers used are currently not initialized until quite late in the boot process (module_platform_driver). This patch replaces the use of module_platform_driver with arch_initcall in the two drivers that are used to control the GPIO pins. This allows for drivers using subsys_initcall or later to access to the pins. Signed-off-by: Joshua Scott --- drivers/gpio/gpio-mvebu.c | 13 ++++++++++++- drivers/pinctrl/mvebu/pinctrl-armada-xp.c | 12 +++++++++++- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/drivers/gpio/gpio-mvebu.c b/drivers/gpio/gpio-mvebu.c index 1a54205..3dd7e23 100644 --- a/drivers/gpio/gpio-mvebu.c +++ b/drivers/gpio/gpio-mvebu.c @@ -860,4 +860,15 @@ static struct platform_driver mvebu_gpio_driver = { .suspend = mvebu_gpio_suspend, .resume = mvebu_gpio_resume, }; -module_platform_driver(mvebu_gpio_driver); + +static int __init mvebu_gpio_driver_init(void) +{ + return platform_driver_register(&mvebu_gpio_driver); +} +arch_initcall(mvebu_gpio_driver_init); + +static void __exit mvebu_gpio_driver_exit(void) +{ + platform_driver_unregister(&mvebu_gpio_driver); +} +module_exit(mvebu_gpio_driver_exit); diff --git a/drivers/pinctrl/mvebu/pinctrl-armada-xp.c b/drivers/pinctrl/mvebu/pinctrl-armada-xp.c index 578db9f..609c732 100644 --- a/drivers/pinctrl/mvebu/pinctrl-armada-xp.c +++ b/drivers/pinctrl/mvebu/pinctrl-armada-xp.c @@ -518,7 +518,17 @@ static struct platform_driver armada_xp_pinctrl_driver = { .resume = armada_xp_pinctrl_resume, }; -module_platform_driver(armada_xp_pinctrl_driver); +static int __init armada_xp_pinctrl_init(void) +{ + return platform_driver_register(&armada_xp_pinctrl_driver); +} +arch_initcall(armada_xp_pinctrl_init); + +static void __exit armada_xp_pinctrl_exit(void) +{ + platform_driver_unregister(&armada_xp_pinctrl_driver); +} +module_exit(armada_xp_pinctrl_exit); MODULE_AUTHOR("Thomas Petazzoni "); MODULE_DESCRIPTION("Marvell Armada XP pinctrl driver");