From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S965553AbcIWL1V (ORCPT ); Fri, 23 Sep 2016 07:27:21 -0400 Received: from mail-by2nam01on0054.outbound.protection.outlook.com ([104.47.34.54]:60736 "EHLO NAM01-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1755175AbcIWL1S (ORCPT ); Fri, 23 Sep 2016 07:27:18 -0400 X-Greylist: delayed 4014 seconds by postgrey-1.27 at vger.kernel.org; Fri, 23 Sep 2016 07:27:17 EDT Authentication-Results: spf=pass (sender IP is 149.199.60.83) smtp.mailfrom=xilinx.com; vger.kernel.org; dkim=none (message not signed) header.d=none;vger.kernel.org; dmarc=bestguesspass action=none header.from=xilinx.com; From: Nava kishore Manne To: , , , , , , CC: Nava kishore Manne , Nava kishore Manne Subject: [PATCH v3] gpio: Added zynq specific check for special pins on bank zero Date: Fri, 23 Sep 2016 16:56:58 +0530 Message-ID: <1474630018-9986-1-git-send-email-navam@xilinx.com> X-Mailer: git-send-email 2.1.2 MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" X-RCIS-Action: ALLOW X-TM-AS-Product-Ver: IMSS-7.1.0.1224-8.0.0.1202-22594.005 X-TM-AS-User-Approved-Sender: Yes;Yes X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:149.199.60.83;IPV:NLI;CTRY:US;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(7916002)(2980300002)(438002)(189002)(199003)(47776003)(33646002)(50226002)(5820100001)(8936002)(50466002)(11100500001)(15650500001)(4001430100002)(92566002)(2906002)(19580405001)(87936001)(356003)(52956003)(4326007)(63266004)(45336002)(46386002)(36756003)(107886002)(5001770100001)(50986999)(19580395003)(626004)(81166006)(81156014)(7846002)(5660300001)(8746002)(586003)(103686003)(86362001)(189998001)(36386004)(2201001)(106466001)(23676002)(90966002)(305945005)(8676002)(229853001)(42186005)(107986001)(2101003);DIR:OUT;SFP:1101;SCL:1;SRVR:BLUPR02MB1682;H:xsj-pvapsmtpgw01;FPR:;SPF:Pass;PTR:unknown-60-83.xilinx.com;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;BL2NAM02FT003;1:+3nP1TzBcZGJEawocX3gyxTd3W6BJbnjjoeZTTgqJ0hcP4ZxEhdgk27skhVpTsqkl9y+wqlMmqV8/g95+EQ4KxNoy3X+fkmj27bt0lSxPfI1jSoH5QcFkobBJsBDD1t4XLs95pOmz+RYGTx7m2OP3rLz8rb904r3x2alSDsTUYfwhtF56b9uws/lN+/Iz5s0ZUq3LePXsyNZySdPjabNzGFiRx7SRbY7QTfDfz4/N2uVKZgQeyr3AhJeiC0bxUUmaHaZv9RKGaZIMGPmYfQQYWeryBJDynjYdvhKmJS6wRpI+7+MkoowCHmy0wIGAuI51dAZfysKZt56TL6q1y57ZoLt5gqJRiEdkHdpn3BjaUS8QL2hz0QWcLbCk1xrfDEYFPxmVS9gxcOq58iquaIz7q88SsnB388T29e34HYUH6jTib91IKF/VK4oXRKDCHaPpfo77DEvZQuUhacLoPfWsxN27FoG5rUIytScvlwGW0nRcFtTp1Npo2Rsq3Zba2omAUYZZoqEnOYCBzF/Ijl7P/Abn71+VSdDWLhTBDGCay+sQP63N1xSeBUJsFzslcNBcUmg9vzVmAsMloJgZm9mBwPstVLlXVNTZ8Js4Ko1h0s= X-MS-Office365-Filtering-Correlation-Id: 8e6d35bd-6462-4bb6-3e13-08d3e3a491c4 X-Microsoft-Exchange-Diagnostics: 1;BLUPR02MB1682;2:+rXJSFWsPB27H6+OL6kFA39PL2w2u8D21vI5NIVpGXhFTnbHDwv0DuUr0zMJ3EucZwKmGG/Je4yuaREZz6brBXhKIb4rRrbD55991eOobCFF01bQ1Dq55RIMPHpDX/brHFdDZCUXT0QsuwhqmLQjOYZIrzfVZg4fgyizh295eUMX1oq0F9liHvQ8AgzWKxf4;3:sArAPYuk3WF7+sGUcq42vbVsa/tj+jIi2fTU68tJnNaphtZNJuy/UT868Z486wC/w2/XicEIZF4LLuhip5QBLqYjQKzdvQsAlYkdcQQBED4oLa2aKvWCQThV86Helv63guM7l8bQ2jgZB0Q1LnIZSInrAh6VSlUjSbSyW3FFF1m4Lv6UAMtMOEMFGiBC9uILdJkllkjfOf7+iCL0WNnudjPtMvDAWvG0WbM34fkGqTcaXQM0vdVaHEP/2UgHJsZbRsbmrVuOXl8hArAiAuUL+Q== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(8251501002);SRVR:BLUPR02MB1682; X-Microsoft-Exchange-Diagnostics: 1;BLUPR02MB1682;25:If02eN8SbJBgodC/sDFLySjhsQ01A3+USAggX+o94aOu1NHzUWQV72VjI+b16aAhpH0JR2HtE/qt4izEkQPtRxMKDyLunqnGTG22Ga1Qh7oHDWnbqhXzrSDF/3g27MyeCcHak8HbnokSWsfh+slPmdkdUX7Xp9nriLY2FnQralFW1EcrifuUs9ZhPBgFme9WoZ5LP08wpzrlLarZfqJ0ByYuIuKvTIb2WqX5V+DRjQNmLx/nuvRz3NM/E41dUXTpakCrn/t0fRBD0Q5fTwrpbLKoX15wBsmy2oB5cn29oHWqIbE3dgcd11n4iD7F7609tVHVIW0FSFKNKtOZYgA3kC+aIQ1yY7su7g8bqHEgDPT+cPk5mw+22w/szRv1Y1qCtBpJitJ0gGliNlEDVO82TZqjIs6TAHhctCCQs7K7qgGwcjhja48cavECfs/n7H6L4pI32JLSi2djJu+d0qtO+1kX+f/W/+ZyAdA3mtN244wFHenN93Ob6T9BhdZAP0oGtGza+qGBJQ16nLVgIMD4/HwK6D6ZHwn7N8L4WQu57FSyOvR0KxJsScqQB5V8H9TH4IW1yzwMjy4Kz764shdDB67BF3ASy2i4MgHtjhsTHCaeFT+IkSZSpTIiZZfqzatlB5ujPPj9wFa3kOG72gL4XqNt4ednwy5BEGteyTEi4h75Pb5MxjxX5Q1079GZTlNA62dicVueTV+4KEsGt5TLZsHIwaBwBcZuhLOHKjUrb2lDsHDzOGsm/AJ6rLmVb38KPr1K/kOkoRGBXvxolb4ButI3Ele1REljM9OESaYuBmpGbQe0wu1xVGglzDmsHNe+IbwxAdIcxbjHsJGqzt5tQg== X-Microsoft-Exchange-Diagnostics: 1;BLUPR02MB1682;31:hkrn8luJznMZj97o9qoOOEm4hRSIcz+qZW23uomFVl8q7UBb/Izpt5iRuxcUuA03O9YFgofBDnL45B07MbPAeWgBCkPOGRK6fBSlRbB9c20cOOQuw9HSzxGwLvTtHCBy7S7Wg/0w/m5SqVhW/AuEeNcGWBgkPPHZRD7LZyYgD1nLsi3GrP8LlYqPx60wYx9HWMyCFkWeCL7g6a+pz1QMn98DEOuRlvv4rmHc57XMEgE=;20:jQqmhTQ30v6EhWUIn8W/aH0UKrsxqioVWw0e2Mv4tveOJDeLLFHWSDLaHTCNtka0Euu4F8VjidaGz3HdaurDewvfSeUNvmfHT6gfbr9fTi8gOMZLebTexWngHJg8sh6b4f1qlMpj+jZ1wqXu8GF5hbhCui3ILhJQjTkX+1DihrBizMyRd8cTmH+/O5nmieiTe+autt7XKvQW6QwlnGDAT0xOZ0W/3pi6rnwC+lbEaxvkR4eJk4nadd6s9qRJ9Iu5Tc+qpBlQHCpror32VQQz1vIS8UZvv2QhgEV/K6VuQSO/yFvHn9kuPRQixmIqi+wFmw/1E6J4g8QiWVNjTpyU4rsLHdAVkckaYjX/1wKWQDuduqQrftQxVEDhHi+RRRBpTFXP4Krnal6ZEitv9xWCjQH+QWhSY4CwF0RIria38QbMTS8t8X5ZYJ8uoByfBXoGCINDWIKeuKrxnfIQ9CDJwcD47yvmJ1OnibWeejsk+jjMjxya/YTQ+qxbV5v45Chp X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(192813158149592); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040176)(601004)(2401047)(13024025)(13023025)(13015025)(13017025)(13018025)(8121501046)(5005006)(3002001)(10201501046)(6055026);SRVR:BLUPR02MB1682;BCL:0;PCL:0;RULEID:;SRVR:BLUPR02MB1682; X-Microsoft-Exchange-Diagnostics: 1;BLUPR02MB1682;4:9OgKhsKC+JIm/kyp2VcqmHhb378fpFufRIUA5q2uV1lUsi8Jt0dYyxpR26vD0rt9+Bq/V5ZvR0619t6c8AJgF5aHuBwe4n6P9UcCFRN2GcZ/SNwTDnBnGdPxXh6Os845VWPtUx8meEfuWGCCYeN+xBni/4U8Nrvx3/YqiDvxKLZoonGLq3d+rQyJoBORNGlQWt8isXXUkVXYopTL6R+9sDVrw/9VkiYKHini8HTaNhZTUnIedGWh1n8/M4pKU+XMFsSovyx9lAwgxt6DIE7v+SsGosqUc36tTXbSQcqTFDGBB77ErM5x9uwkrFMMfovaXglyXrkBFi5MmPaB1IqbMe8nfgJzzbud7UHYgXZwjj6lKRDfDTCLdfW6qUgH1JtXjGtojuLxlQgdf7PXN3vwsvhIP1uEMzWNltC8LGnRC/RNA6YcLFrVKdz2HdrtKcCIZ2Nyb1FeASF2oQ/iuyISNGAYyXDwq3pPQK2AlQsDCz6THTrDmCbAB8lAgLzdSxxcx01iwAPLkCja+bGOEGj1RtJm0ZhEtyFMHs3maNiehR4= X-Forefront-PRVS: 0074BBE012 X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtCTFVQUjAyTUIxNjgyOzIzOlVXUlYzV1d1U1FPOGVQOHJsMHVTeVN0WVM0?= =?utf-8?B?M3d4ZFM0QnhxVFdGU2wyemRRWUdpbmtZdWUzbU83THJaK2dsMnh6K0tmNUU1?= =?utf-8?B?ZXpjeThRNzVLSEs3TlNzUGJxMTVzcHNNZ1d6MmhWdFc5ekR3cENyOXdjazJT?= =?utf-8?B?T1d4aFNIbjN4YUJrMFdMcGphNjZMcGV0UVJJNmpOVlBKdU1ia2pTeVNzUE9V?= =?utf-8?B?ckdrRW9sRWw1anVNRVpUMkppcnRUT1NFOVpNbW4wY1JrUDliOGxYSkRTK0ZW?= =?utf-8?B?UG1Wb0tjY0JtVGlId3hXanRXTjU5MHZwbWt0YVVuZVFNZFhlZXpaWGhRczdQ?= =?utf-8?B?ZlNxUy8zUkQ3RnFCaitSc0FKd2QvbHNHNUF0aHRETjFEVkw3b1BuUFFtYlRX?= =?utf-8?B?NXdOUExRM24xblhCL1FBVm9IbWZVZ3VmYXZrTU53TzljcmxGU2Q2NE1GbmxS?= =?utf-8?B?ZE5jdnZhL1ZTVVhuVnlrNnlCTWlmTXpudENDTCtXOEpIaFk5b29LU2VNNjcv?= =?utf-8?B?YWVuanpLWWxXTHNINUE1T3ZaZUJkOEhxUUZLRlM1ZDBmTGRtYWZ6QzZuTlZ1?= =?utf-8?B?T3dMWFBDMitYZk50WGtFUmtDOCtuSC9ySFZ6V3FTSXpYcjhVWVI4Z0JVZm0r?= =?utf-8?B?OUlmVmpxcWgzRGJTYjJGZU5kclVXM01aWVFHYmlrY3BmVHJaNVBEM25rZmZw?= =?utf-8?B?cldhYUtLM0ZwM3dMTjJ1SGEzc1RBTGpCclFXNmtaUFlZQXVabkNsRytVditI?= =?utf-8?B?aWFwYlpBc2JVa3JLbmhQT2UzT0ZFbDBLRC9JWkl5Uldpd0ZOaGplWlpUQnVh?= =?utf-8?B?eTY1dTRweWZoSWZRcDZyS3FPdG1SbXBzRVIvc3U4Y0oyRlBYVTNNR1RoQm9Q?= =?utf-8?B?NjdiRExESGRyNFFzZ3JlNkltcS96ZlE3d0lkL1RKdU11K0s2WEpVdWxvZW5X?= =?utf-8?B?TjlVaGE1WHhjSnJmcDR3eTNQQlZnTllUMG5QQkFjOCtDb2VGT2R4QmUzSXdY?= =?utf-8?B?UmZXMmNMQ1BJNUNJaGFpSC9rbGNqYXMvWHdIS2dNRE10N3lhSGxIQ01zVUpV?= =?utf-8?B?Y2FaV3dJdjBBNFkzdnkwdS84ak5rNno4TXd2U2F4aUtOWThsOWpCdGthVnhG?= =?utf-8?B?N3BWQnoyd3F1dFFFaTZGNlh2WTNIdGUwTkE3dUlxRGdBTXgvazhnTkt4c05F?= =?utf-8?B?bElqNDRrVkNLUW5TbEM4OXk0a2RJKzFKV1pYSHp1YndkeDFLVkQxek5MeHIv?= =?utf-8?B?U0FhNUtUU3VPNGtmS1hiMkk3dEFKQlBKZkt5SDNNMS9OaFIvTEZDZFpLMEpr?= =?utf-8?B?bEdKd3R4TFgxbUlzbHM0Wjc4a3N0OUJUaDBYSmZkb1NsTkZaamZVWkdFM2dp?= =?utf-8?B?K3dNMnhEVGZHc1BZT24yd2cvdTkyeVRON05JejNYbWN5NmE0OUpwbS9QTjFM?= =?utf-8?B?eUlNN0dOSVJnSTJiTUh6Mk9lWHlUVTdEcFlPMm0rUWpRYllkNXFmaERsQ28r?= =?utf-8?B?YUgrbWFJZzFNd2FYSmM5Myt2cDloSmtnN2RTQVBxVUtwOE9JZlY3QzYrclZx?= =?utf-8?B?a2g0dkk1bUNtZHg0L3JmenNNWWRsakU2WFVvOW8rQTNvVllhOVhuSWwxRElq?= =?utf-8?B?U3U0SXpDSWVjc2Z6ZVErMUJJSWxCc3lCWUUwb2ZyTE5nVVBNV1o3R3d3PT0=?= X-Microsoft-Exchange-Diagnostics: 1;BLUPR02MB1682;6:GJVuOLNQFoIrhIDejHTPnfBaHGRfs6+H9bpKDYKeg2DEzR7vsYjkED1nL/+KEUYr/VMyUjIIcyYCntohXbBRFASp9GzpXb1givKWs11nu+PtfwKBFRlOvmoi8pN3dLJF758Dq/norfKztrqIRlNWtcm0ijv6hgoGIz0Irk8VeVHpK/H1WtfsK+U6ZHGUMI6BJGvSJ+x9AM5A9xmP9xFimn7Z2wwVsR0iFyZFEX1AVJdwL+YGYCQCrkPzzqje9IMxBnYFM9RF/+lATBDzI7mTO236e+dCSMfnfK04Dyi3Ts1d4wpps0OUwttXd5IhWCiK45yzvJhZgOVvOrIfLEoFIw==;5:lY3eoqvcNqWC7SEQkM3Qy/6E0xh3t5eQHyq02fz1T6BtehC2N4CnGn8fo5i5Yjmh/pvX64lFQH4ScCTsyipzycLKjjFu8ZQtCgAsJzH0AlnRDdBOtWnxyW1O0PFeqx866wV1W0KqLKqMEr4lsgVIyQ==;24:bOXVxdOHAfBiKgDkCGacdkgVe4wKyQkckn5q0/KWhwFbFKOzqymFRHbXhDwy3hGtN/O4f2Bm15F+0YWU3pOkRPbSLUbfiJ5/PBWSo45qOmw=;7:hf8pUCNKn/3tuK2j/rDm5SrY9oNJrOLamMkT/MKNkZOvK+foTpyrVsyAYliqNDRKrdKFjJOvofOFNn96Lc+yii0XT8NuBF7x4IdblAKAn72+hmk4g5im4ocu1D1iIGxqVDyVfx4p+9dp6MsMXswn34at9lQ+FH46VUrdB8bUIhRVfDw9dUZ5/gUcU2SPyPP+2BeySYmMjm0lJqGqk7MuI9x5ZGg2yD/sZ14ND5X0DVPUwccgOR//aM2gh6tgMUEler3va4v1sVcIye3hQkyCmyZvCqlA0p9RbpZWerh8ASZ8vORnf151ppTPoAH5To6+ SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: xilinx.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Sep 2016 11:27:14.7195 (UTC) X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c;Ip=[149.199.60.83];Helo=[xsj-pvapsmtpgw01] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLUPR02MB1682 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by mail.home.local id u8NBRQLH023510 From: Nava kishore Manne This patch adds zynq specific check for bank 0 pins 7 and 8 are special and cannot be used as inputs Signed-off-by: Nava kishore Manne Reported-by: Jonas Karlsson Acked-by: Sören Brinkmann Acked-by: Michal Simek --- Changes for v3: -Fixed some minor comments. Changes for v2: -Removed un-used quirks for zynqmp. drivers/gpio/gpio-zynq.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/drivers/gpio/gpio-zynq.c b/drivers/gpio/gpio-zynq.c index e72794e..6b4d10d 100644 --- a/drivers/gpio/gpio-zynq.c +++ b/drivers/gpio/gpio-zynq.c @@ -96,6 +96,9 @@ /* GPIO upper 16 bit mask */ #define ZYNQ_GPIO_UPPER_MASK 0xFFFF0000 +/* For GPIO quirks */ +#define ZYNQ_GPIO_QUIRK_FOO BIT(0) + /** * struct zynq_gpio - gpio device private data structure * @chip: instance of the gpio_chip @@ -122,6 +125,7 @@ struct zynq_gpio { */ struct zynq_platform_data { const char *label; + u32 quirks; u16 ngpio; int max_bank; int bank_min[ZYNQMP_GPIO_MAX_BANK]; @@ -238,13 +242,19 @@ static void zynq_gpio_set_value(struct gpio_chip *chip, unsigned int pin, static int zynq_gpio_dir_in(struct gpio_chip *chip, unsigned int pin) { u32 reg; + bool is_zynq_gpio; unsigned int bank_num, bank_pin_num; struct zynq_gpio *gpio = gpiochip_get_data(chip); + is_zynq_gpio = gpio->p_data->quirks & ZYNQ_GPIO_QUIRK_FOO; zynq_gpio_get_bank_pin(pin, &bank_num, &bank_pin_num, gpio); - /* bank 0 pins 7 and 8 are special and cannot be used as inputs */ - if (bank_num == 0 && (bank_pin_num == 7 || bank_pin_num == 8)) + /* + * On zynq bank 0 pins 7 and 8 are special and cannot be used + * as inputs. + */ + if (is_zynq_gpio && bank_num == 0 && + (bank_pin_num == 7 || bank_pin_num == 8)) return -EINVAL; /* clear the bit in direction mode reg to set the pin as input */ @@ -627,6 +637,7 @@ static const struct zynq_platform_data zynqmp_gpio_def = { static const struct zynq_platform_data zynq_gpio_def = { .label = "zynq_gpio", + .quirks = ZYNQ_GPIO_QUIRK_FOO, .ngpio = ZYNQ_GPIO_NR_GPIOS, .max_bank = ZYNQ_GPIO_MAX_BANK, .bank_min[0] = ZYNQ_GPIO_BANK0_PIN_MIN(), -- 2.1.2