From patchwork Wed Sep 7 08:56:09 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Agrawal, Nitesh-kumar" X-Patchwork-Id: 666891 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 3sTfp23r1Hz9sBR for ; Wed, 7 Sep 2016 20:28:58 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=amdcloud.onmicrosoft.com header.i=@amdcloud.onmicrosoft.com header.b=kX4UPuS0; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934820AbcIGK2j (ORCPT ); Wed, 7 Sep 2016 06:28:39 -0400 Received: from mail-bn3nam01on0059.outbound.protection.outlook.com ([104.47.33.59]:12835 "EHLO NAM01-BN3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S964896AbcIGK2b (ORCPT ); Wed, 7 Sep 2016 06:28:31 -0400 X-Greylist: delayed 3566 seconds by postgrey-1.27 at vger.kernel.org; Wed, 07 Sep 2016 06:28:31 EDT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector1-amd-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=My8CPPjzOEISapSu9LPABfMkSqJ1c4hnB41tP0zUaSs=; b=kX4UPuS057352RFvmYIkUFN4MKRDINtBpvAejNxEfAWf5Rg4XqZKZahHiulq+w1t0L6LWrTT/x+zF2ueVFed6JgO41PWEJwtV1+SkHFcB/7YNebgiFISIw1bSQjfInGeV4mISdAJPq7sUZLRGFaEeKv7svORdLf+UjK79kI0gN8= Received: from CY1PR12MB0042.namprd12.prod.outlook.com (10.160.158.23) by CY1PR12MB0730.namprd12.prod.outlook.com (10.163.238.24) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384) id 15.1.609.9; Wed, 7 Sep 2016 08:56:09 +0000 Received: from CY1PR12MB0042.namprd12.prod.outlook.com ([10.160.158.23]) by CY1PR12MB0042.namprd12.prod.outlook.com ([10.160.158.23]) with mapi id 15.01.0587.019; Wed, 7 Sep 2016 08:56:09 +0000 From: "Agrawal, Nitesh-kumar" To: "linus.walleij@linaro.org" CC: "S-k, Shyam-sundar" , "Sen, Pankaj" , "linux-gpio@vger.kernel.org" Subject: RE: [PATCH] pinctrl/amd: Configure GPIO register using BIOS settings Thread-Topic: [PATCH] pinctrl/amd: Configure GPIO register using BIOS settings Thread-Index: AdIDZJq9IA2sWyU0QqCmrwHSTM2CVQFgN+xQ Date: Wed, 7 Sep 2016 08:56:09 +0000 Message-ID: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=Nitesh-kumar.Agrawal@amd.com; x-originating-ip: [202.56.249.162] x-ms-office365-filtering-correlation-id: 5aaba4f9-3639-49e2-6c32-08d3d6fccfbb x-microsoft-exchange-diagnostics: 1; CY1PR12MB0730; 20:3KNtKpD8DekVLc59598abExW8y/7PyT0J8442dlqvaQS2EeOMHk7s2vPsCUW/LPQ8F/cl8gyM+zI6rj7Fbfgr4xcOHXbb5US0bWA0xSmpGSEA9yAC8ImFJFoVl/bBSAEzsEN6/3MwHaAi74bOZc/c8EtiIET/B1oNGSQX+oTMGs1dxa9Ndf2e9kgLn3uwmRmnllUze8PkdnRfDQ0K72eI5GT9dT/wdzKWlSv37dvfSzFT8b+abMCO1mDlYpW3ZNG x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CY1PR12MB0730; x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(767451399110); x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(6040176)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046)(6055026); SRVR:CY1PR12MB0730; BCL:0; PCL:0; RULEID:; SRVR:CY1PR12MB0730; x-forefront-prvs: 0058ABBBC7 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(6009001)(7916002)(199003)(189002)(5660300001)(101416001)(106356001)(81166006)(81156014)(8676002)(50986999)(54356999)(87936001)(10400500002)(6116002)(2351001)(11100500001)(2900100001)(586003)(66066001)(3660700001)(102836003)(3846002)(7696003)(3280700002)(122556002)(4326007)(8936002)(86362001)(99286002)(105586002)(76576001)(2906002)(110136002)(97736004)(33656002)(305945005)(77096005)(7736002)(5002640100001)(92566002)(189998001)(19580405001)(19580395003)(7846002)(9686002)(2501003)(68736007)(74316002)(5640700001); DIR:OUT; SFP:1101; SCL:1; SRVR:CY1PR12MB0730; H:CY1PR12MB0042.namprd12.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; received-spf: None (protection.outlook.com: amd.com does not designate permitted sender hosts) spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Sep 2016 08:56:09.3234 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR12MB0730 Sender: linux-gpio-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org In the function amd_gpio_irq_set_type, use the settings provided by the BIOS,when the LevelTrig is Edge and activeLevel is HIGH, to configure the GPIO registers. Ignore the settings from client. Reviewed-by:Pankaj Sen Signed-off-by:Nitesh Kumar Agrawal --- drivers/pinctrl/pinctrl-amd.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/drivers/pinctrl/pinctrl-amd.c b/drivers/pinctrl/pinctrl-amd.c index 828148d..a645082 100644 --- a/drivers/pinctrl/pinctrl-amd.c +++ b/drivers/pinctrl/pinctrl-amd.c @@ -385,12 +385,26 @@ static int amd_gpio_irq_set_type(struct irq_data *d, unsigned int type) int ret = 0; u32 pin_reg; unsigned long flags; + u32 levelTrig; + u32 activeLevel; struct gpio_chip *gc = irq_data_get_irq_chip_data(d); struct amd_gpio *gpio_dev = gpiochip_get_data(gc); spin_lock_irqsave(&gpio_dev->lock, flags); pin_reg = readl(gpio_dev->base + (d->hwirq)*4); + /* + When LevelTrig is set EDGE and activeLevel is set HIGH in BIOS + default settings, ignore incoming settings from client and use + BIOS settings to configure GPIO register. + */ + levelTrig = pin_reg & (LEVEL_TRIGGER << LEVEL_TRIG_OFF); + activeLevel = pin_reg & (ACTIVE_LEVEL_MASK << ACTIVE_LEVEL_OFF); + + if((!levelTrig)&&((activeLevel>> ACTIVE_LEVEL_OFF) == ACTIVE_HIGH)) { + type = IRQ_TYPE_EDGE_FALLING; + } + switch (type & IRQ_TYPE_SENSE_MASK) { case IRQ_TYPE_EDGE_RISING: pin_reg &= ~BIT(LEVEL_TRIG_OFF);