From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932155AbdABIbk (ORCPT ); Mon, 2 Jan 2017 03:31:40 -0500 Received: from mail-db5eur01on0120.outbound.protection.outlook.com ([104.47.2.120]:38400 "EHLO EUR01-DB5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1755147AbdABIbh (ORCPT ); Mon, 2 Jan 2017 03:31:37 -0500 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=peda@axentia.se; Subject: Re: [PATCH v2 3/3] power: supply: bq24735-charger: allow chargers to share the ac-detect gpio To: Linus Walleij References: <1481673405-4547-1-git-send-email-peda@axentia.se> <1481673405-4547-4-git-send-email-peda@axentia.se> <20161214165921.jsatcznbljd7anqi@earth> <20161214170114.ckozfple475kqajh@earth> Cc: Sebastian Reichel , Alexandre Courbot , "linux-kernel@vger.kernel.org" , "linux-pm@vger.kernel.org" , "devicetree@vger.kernel.org" , "linux-gpio@vger.kernel.org" From: Peter Rosin Organization: Axentia Technologies AB Message-ID: Date: Mon, 2 Jan 2017 09:31:24 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.6.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [217.210.101.82] X-ClientProxiedBy: HE1PR1001CA0012.EURPRD10.PROD.OUTLOOK.COM (10.171.99.22) To AM5PR0201MB2305.eurprd02.prod.outlook.com (10.169.242.149) X-MS-Office365-Filtering-Correlation-Id: d78e3b19-9288-45ff-e1d5-08d432e9c20f X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:AM5PR0201MB2305; X-Microsoft-Exchange-Diagnostics: 1;AM5PR0201MB2305;3:qtXmA3qAW0XogMDjwT7AJpFaf08GuG3Heih0YqL/vNJ8+HJU2vAUeZopWcsP31sGObqUPFeTmeSU2Wa9cAzjgz+W6Ck6zrLcIqm7zZ7pwPAElyJygdMTi1cpEsAy4CPf2+IHdwvlUnTzm5sr/FaEBghNdGR9mfRNW46vAt7DIRjfsdMsXWwWTKLNjATPT2z/j40C7dtgRjg2vv4o/d6NeZqv6AfMr3DYd9SgBnqykt9DA9mw0Nvll/e5ZiVH6J4Tu0UvXFgRIaSx6Fy0ji9UBg==;25:smu8LClTpcAm7IumK/YcrwizOaxUSD5OLBzpwMa0jkyZ275GhE1pGOIKfKdTBnWb5/6eye8kteN9jb9dObTFSCNY0WtESylrf9trwTSJbPbBBqXO7FEO6ZxZSHWqRCIDAMnbdVQFvR654HRDJlpnYGK0WLkx+KYCB0ss9i82TqAWTwcNpScWSdgRPpP0aUWSEc5H+/PYUx66MxzG5Sw+g0pxzfyC6FhvkvfywrK0C/WbX9jbXX8QAE1paQlgdpD99Gg5bVSHLQoA6QPk4olaEccIZhuUiUYBPhOYcymjpwz92h+kYFqQsldUCecgobezTkZyZvXXPZb6raHdIAvAmAoxjm9GRy1wfyv0lmPpuKkwM+Y8vV2a9v5HkwXS5r95DOVbomX54Jv3ZGTYitD52FzmRZIC9VFqvhOFbeMGHL4SI4uclpB4HNiEKFxfDTFlvcNKAsBDZ3hUp4t2OI1T3A== X-Microsoft-Exchange-Diagnostics: 1;AM5PR0201MB2305;31:EVlSzn1sfvU6hWQK3zU2bmy8JSCk0qxa6oPmNxOjiqqrz4PTVsyp2QNa0ugkfwr+49wZaIjYiHq9sj9nZR9IOmuSE6L/s5vS4YT5KOusRsZ0v+2Y//rBifmHO1cBRPqbLmARa5KNPEj28Jir0cVwId4nOBbkZNqQnNiuAdetXbD48gRoFo/rpTqHQldC8o/mDxV2b/Tr411/Si5fEWjHe+pkqRVmJxoLnZdPfrHi0iGH7C4C1aZ/EqPiW/uU4Ok1svHjnNlTg6o97JWOey9u1K90onPHL3EgnTghrhSuWTE= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040375)(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001)(6041248)(20161123555025)(20161123560025)(20161123558021)(20161123564025)(20161123562025)(2016111802025)(6072148)(6043046);SRVR:AM5PR0201MB2305;BCL:0;PCL:0;RULEID:;SRVR:AM5PR0201MB2305; X-Microsoft-Exchange-Diagnostics: 1;AM5PR0201MB2305;4:49MfTPpPf0Pg+Tuw3XcFG7zrm+1kG+VkO+/kBn3cAIuxLXTx0iyEsp5Y7sPlbnnGlT91Gyn/jCovOkoEy2MRxDwwWQ/Zt+UeKxjVyB+sfdvGp9ReEoMG4Bz83BVluGFypGfrxpzZPO/CEORDFPBzt06P1URHTYE2y5I4MQwD5/76tJ0ghJgbEPBQQaLf/+3MGMTw+Iw1PSixVIuGZj+5Tczs6YDYGA6XNXfadNokeeezkuXlfSshPrgnIMwCMx6RoeK0bhTj2x4QMD2p2gB4gkXwwrwPuUU8gEZGIM5QeyRPt7qL2JKMOjnrU49XGrJZ4fCulgo7DkKMU2TVTvw1FY3aSS1ZXvA20U7c15K9z43IJDXV01cNoHNwdzeYe9KswQrllJW5RgHibjK/XBCPeVMwyTH+qFG6MdYvST6Ty8sRMxW70/B6TazqyxUTaNWjq6rPN/Wgbg92f3R0/adUb/GCAMLLvsRXp3v6CYlwy2JYZrA9xK+9lYdmkKzgewkMXXQA+ie6/WzPhoLLaKdZbkJOLARFr+lIk3h3JsjFfCLsqX2Gyoj4Amiz3p27z2jAkvsCAjutJQWVLOIhNlf0oJ5e1gb8sIopWnIxB1nkcVmLQxpv1orUdDf5FP5s4ixJWIF2rkFV52maMBP4KGgScXWinV9gY9snEw7O43Ggzb8= X-Forefront-PRVS: 017589626D X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6049001)(6009001)(7916002)(39830400002)(39450400003)(39410400002)(199003)(189002)(377424004)(24454002)(377454003)(6116002)(64126003)(93886004)(2906002)(66066001)(117156001)(105586002)(50986999)(54356999)(33646002)(65806001)(4326007)(6916009)(65956001)(47776003)(3846002)(110136003)(31696002)(101416001)(106356001)(31686004)(76176999)(6666003)(189998001)(4001350100001)(4001150100001)(2950100002)(86362001)(97736004)(305945005)(230700001)(39060400001)(229853002)(23676002)(25786008)(38730400001)(90366009)(77096006)(54906002)(5660300001)(7736002)(6486002)(81166006)(68736007)(83506001)(81156014)(74482002)(42186005)(36756003)(92566002)(65826007)(8676002)(50466002)(42262002);DIR:OUT;SFP:1102;SCL:1;SRVR:AM5PR0201MB2305;H:[192.168.0.125];FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtBTTVQUjAyMDFNQjIzMDU7MjM6V2FJcEwrdk1LWkFSTTJwK3cwKzNzMnh4?= =?utf-8?B?Z0VZVzFaU2ZpSk5PaHFkTTgxM0pzdWp0cHlFbVBPQW9kaGNoZzVxUHFLNEFR?= =?utf-8?B?azY0emhXZXZYQXU1RW1BQ01TVHE5a1RCMnIwMHp0TlNtNGFSbzdsMm9STTh3?= =?utf-8?B?YzJjc0F3YWxPYWFIemkza2VRN0FqMk1Nbm1nelljdFNiMzk3Sy9TSWxwdTZh?= =?utf-8?B?dnJEbEtHK1RBNU1QOVBFMXlGaS9oRTlIVzUzNmQ2WGt0djFWcXRmd0piRWgy?= =?utf-8?B?ZGUzOUFxZU91VE9LWGFraG9Nc0dqbFp0c3FKUFhwTmYrK1lDaTBNMDVSaE16?= =?utf-8?B?SWlwMy9GUCttRVJXMk0rblBSdHBHclY2S3JWWEY5MTVXV1lHZTBVVlFyOTJ3?= =?utf-8?B?b0dxdXBkQ2VISWRpUmtyUTBGOW5UOUdjd01ZZU96dmVjdzI3QThkaEMwZ1dh?= =?utf-8?B?YXl0MENDTUJ0RE5hQVR0NGNUUlVYbDVQNmk3K1A1UlYraHJZNFNhRlZFOHAx?= =?utf-8?B?Ly9uK05IckRlMEQrVFlEc2FkSlN1bXFXWU5QSXZXM0FueTFjR3NLMFFuZ1pM?= =?utf-8?B?N3hhM3dUTmZrbHA1clpMWVBDY3doTzBLUVhjbUpzcXdUVlZGM2I1WHV0R2tH?= =?utf-8?B?Z1RIT3ZpL3c5TmFaNlc3cXZKUHJmRW1odDFwWXAwaFVKTDFIbjFnR05TaEFK?= =?utf-8?B?K1g0TTZ5YlhiSmpYV0VnUnUyeTVRSEdkaEQ1YTk3YWpJa2N4TTRnSVcvb25a?= =?utf-8?B?MUtkZmowelpxWC9nbEVEa2Y0RW81UlhhTjBua1BYb3l4NFNBUDVacjkwbzlL?= =?utf-8?B?cFBGMTloK05HNU82TkI4TnMyclBmQmhKTzhyK2RyNlZjck84c29RRGhHKzVZ?= =?utf-8?B?WHhZb3QrVDI1enYrTUJ1aUtHcVMwQXQ4SU4vTWxXVTQzZnUwN3RGbGxKSlhm?= =?utf-8?B?VXcremVXMEhJaDZvZGpueEcxYnZiWUlQY1h1dXRoYlA4UlJPK3M1UkNXMzBt?= =?utf-8?B?RzVRa3JBQ2MzTm5QdHV3UEcxM0R0RmwrVS9XV1lyRkw0cVFybnBBR1pwa0xV?= =?utf-8?B?RjNPQUxVdjN3Rkx4Zkd6eWdYTzJPZGYrR093MDFaS2dUNDl4VW11SlRkV0Y5?= =?utf-8?B?UzBWRE5ITjhiSHZEcm9rZDlIYlBDdjFhUTNIOHhqMERjSzhudDA4VHh3UjND?= =?utf-8?B?V2tHTUN0K1BaMXBxaTVwbVo0V0F3ZUNiVlpPZWRqbytFZTNqc25RK2ZqODBt?= =?utf-8?B?aEhyWWJMTnBweXpOSy9HY1FGRVNGYjNtNnZhZGNrK1dpWkhnSXJzb0tydlpD?= =?utf-8?B?bDhKVEEzbkY2Z0NoZngyUEZiUFdXek1ZU0FGYkRKdWxqZDU1L2hLVXlDemh3?= =?utf-8?B?MWRhOEFmWXJYMjdIQ0N4aitvSnFjVHdaaDJwbUdLVGw2aHowR2JKdExuRkpI?= =?utf-8?B?TGY0OThxd0MxOUw2Nmc4aThELzBYd3loYlpIVTRTb0NYd01DcUFrR3ZKNDdj?= =?utf-8?B?TDBWekpkb2dkMmMvcnZlQzA0NnZjbVZhUVhkVXZxUDcvVzRlYTBaMVNkN01P?= =?utf-8?B?U2RnRy9qY0JxOHlkQjBqaTBOMzEvOFFQQkdwN3lkbEhPeWdheFF1YjBabTZl?= =?utf-8?B?ODEwQktyTHVjc0hNSytZNUVTWnQreHBUWmpvUTl2V3ZqWHJhK2syL0JHS2Mr?= =?utf-8?B?ZVVMVEU3aTMwbXIreHp6M25zTUVqdnJaSDd3a2tYdWlIdkxuZ244SzJnZDFj?= =?utf-8?B?cHZrNFlNbVBINmxJL2poa2pURktsY0JRZklXY2VPSUliWS9sd2tROG9JeElw?= =?utf-8?B?SFNyS0V3S2RuRTJQZFdkemgxVFFYbTZYaTJESGxWYWFhdFpHVVZ5Wk43WlZZ?= =?utf-8?B?aWwyTzlOR0diMnBsdnVscy9LT2dsWWE0UEVOTWhXcndoL1dZYlpXOGszTDlE?= =?utf-8?B?M2s5YUYzdmZNc0o5ZEVsVlc5V2h4M1loM2RnZGpGZFZYU2NUejBxcVF2OGhQ?= =?utf-8?B?V0h2clBnOE0zMjk4VDVjOTh3T0h0RXcxVktrNkMrallOVGZnRlhtQkZkUXFN?= =?utf-8?B?MVY0OUZvelNDR1hseXEza0JuOC90NFNkUSt4WE9ZazZYaDROTC9OVlVHL3hO?= =?utf-8?Q?kI5+b8W5b2/DNcmBBf8Ui/Ck9EK+8fhJg28GUAF6uIwEOn?= X-Microsoft-Exchange-Diagnostics: 1;AM5PR0201MB2305;6:7/kb3x1CIqqqt1xLw7yC/cAdJBhSxSxkKoPv/9wdpFBRXg9QZuvwX+XpTSfesnBC9lMwtnw2IvQV9jE93Evg6yWl1B4EZi62DQldxFnPda3Wy3ZNY/M9dG3VBx+szrxCSZVRxyMufjNxdKMVchGINs/JBsX7Eup+MdAQV9C91D60ohKRQjZeeyP6U0o2unhbpBVSmlStVDQl3Hm8QdIDEpPeYAlGZkBDjHUjY7BYZCTY5vHdwtXjKFLwOT5/OqPH26xYgBkQ5/lx59fVFa5iY+uMhpPPp6mTPCGotkUty0Y69fPWm73sJYRFnXakACs94l4aW41IG4W9efz5IkJBHgDEMo6DJIu5nOncCwrDBYCYienHVLu/ethjDayh1ect5kYu4ymPHKVVOopXipaFN5mB4grxORG2z43ndhPW5bqsheKBA9BJISVlr9/lYgqn;5:Mgv3AVwcPiQl34X8RGaOH/DYmst6MuKySMop5y6qSkacR9l5mT1hvGzauOi96gNd3tiAShRAu/rT1ovJeMitGzfzKtOu3oN7ryG45mWBhxgRSG0+UMyHy5d4meUo+1fYb1OehOTLT5fvgMnXp7UX87vJiv2/dI3vq8n66AddSi4=;24:OvNcEQYr1JI8huLvTLvv5C0yAtHVD07VUIb6ZeioB5acMOowTVwBD9CT7rWcVgnDPU8QYPvRbKHf41tD0LqLoa8A5ICUGacNAtxrVfCTnOc= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;AM5PR0201MB2305;7:bJ7krPsEzx3KJYQtZFcfA8fc5PYO2be67iAZEukjD59t7KDmJ/u8vHAl6UpbdVlN2oVmXeqyKGgMGQmLBvf7xVZn328/5XKbYR7vl4+TWj1dEVWhqrzaICSh+88cms1aE98d9p3q3IiF54WupWrUdkXvt1HF1BZG9KhSrXsLWPnqg4oWFMZuxduUppeZIcqUd7B4NTV0cIzVbUhNU/Rc6Lk895wg6GGcBd6x2n0nUyIYnHFFxgwqK+8FqfKWYOwHGO08UYi67WcVV6b+DG6j2gdFn6Fh+nBWxYTSuzJ+/9B8b/T/k8VH1KEcsa6Gqj/Ey3FcFIsPMuYL7WmDAboQHxKw23DsnHAWwxWc/Rc9YTRKK5UXcyC/HhmsHL14kJIgxNcukYRhW0hZffi840pKgvftvD0+QljwEboUottYXDQ53Dnf0tfurK0TS0z82uXh3C2dEz8Aq22v4lgDul9kZQ== X-OriginatorOrg: axentia.se X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Jan 2017 08:31:32.2295 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0201MB2305 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 2016-12-30 08:49, Linus Walleij wrote: > On Wed, Dec 14, 2016 at 6:41 PM, Peter Rosin wrote: >> On 2016-12-14 18:01, Sebastian Reichel wrote: >>> [of course I forgot to actually add gpio people, let's try again] >>> >>> On Wed, Dec 14, 2016 at 05:59:21PM +0100, Sebastian Reichel wrote: >>>> Hi, >>>> >>>> On Wed, Dec 14, 2016 at 12:56:45AM +0100, Peter Rosin wrote: >>>>> If several parallel bq24735 chargers have their ac-detect gpios wired >>>>> together (or if only one of the parallel bq24735 chargers have its >>>>> ac-detect pin wired to a gpio, and the others are assumed to react the >>>>> same), then all driver instances need to check the same gpio. But the >>>>> gpio subsystem does not allow sharing gpios, so handle that locally. >>>> >>>> Adding GPIO subsystem people to see if they can come up with >>>> something in the gpiod API for this usecase. >> >> Right, I don't like how my new code steps away from gpio descriptors. > > The issue of shared gpiods have come up over and over again. > For example the messy regulator code needs this too. > > It is better if we implement something like gpiod_get_shared() > in the gpiolib of these cases. > > Just put a refcount in struct gpio_desc in drivers/gpio/gpiolib.h > for this case I guess? I actually tried that, but ran into atomicy issues with the FLAG_REQUESTED bit and gave up. Didn't really try all that hard though, but I simply didn't feel comfortable with going near such fundamental designs... Cheers, peda