From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 3E146C6FA82 for ; Wed, 14 Sep 2022 14:00:19 +0000 (UTC) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id C8CD18460D; Wed, 14 Sep 2022 16:00:16 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=quarantine dis=none) header.from=variscite.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=variscite.com header.i=@variscite.com header.b="YLAH+onV"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 80B7D84AF8; Wed, 14 Sep 2022 16:00:13 +0200 (CEST) Received: from EUR02-HE1-obe.outbound.protection.outlook.com (mail-eopbgr10057.outbound.protection.outlook.com [40.107.1.57]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 9476E84B01 for ; Wed, 14 Sep 2022 16:00:00 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=quarantine dis=none) header.from=variscite.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=Nate.D@variscite.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Amasx6n3dUey2Pmms2y48aku+XomEsIW4hEc7moUwiKMxel7A2cm45a7u9RLTMTp9CB0+tgDXiBtYtFibx2JNRUSlMBBd7Xf6iPGTljpgBeVOj3B4TgeguPHa9Hyv5RkO5wRldCRj9s8RMYiFwUgSLKjowZi3e4z32tBc7n3qecI4QN4mD036unryBfbhy6H46d0Gkax8eI6l6/NYv4UCHgDRlM4kSON9a/GvpnKaZL9bPwhxHlaepyIVPXN4HKaxDbchO9WAXQ+ZRySbkQo9IlHVIK3famrU4c+gfe4xKHwRVSen25SYpAbyZa3s3/qQdX2DzeAO7mivKDt/f/XFA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=dQbDXr8rC5PSkAGqWTaBwDAnDY3qOkMdxhYG/VYnMeY=; b=f1tIGqR9SEjqRZIP7m1gNkM54xLvV7I9yAaDYIuHSkNLkOiG2GFGFY9hNkci+ntVsFMMTeLD/+aWh/g9Ag/wAqXrZaMg9/tkFxfVXpVA6DobmYqyzsfj8Q1uFOc9uENAfDV/KA78lORG5Jd1ikhs7xxjADANTub1k5BF1HwxyT6V/SKJI4ByvAQaWDa95/f3lSUww/jWVifb183OTCUviKQ6NuISgLbgEJ9lvsq47J3DBvK9lLXb0RMo2sd37E1Gwmrq4df1Ys92FkMaHOVpDLF5OVyPMBj7hbNU+OuACpB5kWaAgsJCGPni2F15/bJDRfPkgLrtUQOdDykhSDaACA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=variscite.com; dmarc=pass action=none header.from=variscite.com; dkim=pass header.d=variscite.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=variscite.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=dQbDXr8rC5PSkAGqWTaBwDAnDY3qOkMdxhYG/VYnMeY=; b=YLAH+onVQZxDUfKTVp0qq0ubt471FPazpQ6v+EBbFbSn9jH8Qj7os+GZazV8XIAKtkGPsSCkejP2QQMGaIFb4V8vua3FwKkOU8INFXkqHD4Hnbw+D9in9dToEMDWXczH8Fgn0y18fvR5WQ3hEiG8KuozvJzGQVn1vPBT2j0T35kD//i/BjIVGLOzIP2I4Bw2BcdaTn2Oz5j6U9BFgRVAV9bOy+aW6fCbr2tDduuWOEdn1vM2IaowfPJLmu4qz/ZXO3KLFWK+UhvcURL5HX7EbRqI+LIN8FGR+wnWJVvktJRPMynI672pEjbGxqWeOBvBzE7Uv0bIrDGjaSrSTUAsrw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=variscite.com; Received: from DB9PR08MB6825.eurprd08.prod.outlook.com (2603:10a6:10:2af::9) by DB9PR08MB9683.eurprd08.prod.outlook.com (2603:10a6:10:45d::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5612.14; Wed, 14 Sep 2022 13:59:57 +0000 Received: from DB9PR08MB6825.eurprd08.prod.outlook.com ([fe80::a88a:b945:e903:42a8]) by DB9PR08MB6825.eurprd08.prod.outlook.com ([fe80::a88a:b945:e903:42a8%9]) with mapi id 15.20.5612.022; Wed, 14 Sep 2022 13:59:57 +0000 Message-ID: <01cfeafe-980c-aad7-7acc-4957c4622aaa@variscite.com> Date: Wed, 14 Sep 2022 08:59:52 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.11.0 Subject: Re: [PATCH] gpio: uclass: Introduce gpio-hog-optional property Content-Language: en-US To: Simon Glass Cc: Fabio Estevam , Samuel Holland , Heinrich Schuchardt , Andrew Jeffery , Eddie James , U-Boot Mailing List , eran.m@variscite.com, Tom Rini References: <20220912175513.4178793-1-nate.d@variscite.com> From: Nate Drude In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-ClientProxiedBy: CH0PR04CA0087.namprd04.prod.outlook.com (2603:10b6:610:74::32) To DB9PR08MB6825.eurprd08.prod.outlook.com (2603:10a6:10:2af::9) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DB9PR08MB6825:EE_|DB9PR08MB9683:EE_ X-MS-Office365-Filtering-Correlation-Id: 733609df-bb8f-4afd-53e6-08da96596874 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: sYn6e5bl5dR5Pi7MexrHeHwA8JzBvpELC0XbQRYRIgfut7lJQvRkMF+hxgyZYdP+BHd8XJtjN+jIVHfx9RzxAfAoOBMMiDox31zb8bqB5hU6QQAjyJWZ179D2aKRzVU3uMWyJT8p1tRWl+rv05akms4feM3N33ibOGfefHwy5wIeBhLjjhzdhTVE/sl4QwS8gyOTcKSaxRdw1XidF3+rY0+XCK2zgC1z3FVWXVnsJOTYuSGobYl06dcMpq6LjZq6DwktWKPN6RaIpnPQSQmc8nsdf/EPMGYTBOnLCtcGFC8pwgZtq+ADnhiorzQWAU2T1bYNE/TuHE6Xl0pwG6dlEiHClC82VTT4dEH9LOcjTXYJGX3nIP3GXVbgevJjQ4/b8QFRegF47OXsi/o2izUAkHBppZcaFgf7NVbEKHGI0vOJPtHysGvU5guNs6czBGOiz7P8TlEIopeR/hc9iJbgncjA4RS9ce3YxpLDgimsIKr+FXL0VNy0zdthoZbwZqpGb1fO+FRPIPdGBeFiFXuuSutBdE5YPINeNfZr8Spe81xw4QSy4O4lAy8vJeXjUPD4GpP2ZtdWM4p9t6ftrnBDVm0UoFc8KlmC7gzsrSaoJQL0W4V6sTnn4Je1w6TCnNQtVeiNj8z5i1MUd7Z0FcvmoqPRasypsgWHBqxIsPRu2BDkdjAEBhnb6Rs1Od+HLTpjgfiuCW1/uh6lHgMYUVBUAn5CVx0jM4TbYW9eByVpq2rMfyd6MSnAepfOswQs7Uw2+jRAnBDqLdv1aE/2hwQQuW5QMqGmEyqfSLkXhr1Br2t5bpfzNVFDMKAJLuav/p9cTIZxypg4eDZKdDebBL4znTYRyL0/mGRjDCQbapUcEJU= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB9PR08MB6825.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230022)(136003)(346002)(39850400004)(396003)(366004)(376002)(451199015)(36756003)(86362001)(38350700002)(38100700002)(31696002)(31686004)(53546011)(6506007)(2906002)(478600001)(6666004)(966005)(41300700001)(26005)(6512007)(186003)(2616005)(52116002)(6486002)(83380400001)(66946007)(5660300002)(8676002)(4326008)(8936002)(66476007)(66556008)(316002)(45080400002)(6916009)(54906003)(45980500001)(43740500002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?MmR0a05MeEx0SEtCc2lPbEw3ZGtRanloZHV6Y2dUL0pkSGxwb1BnRXFUN0NT?= =?utf-8?B?RGJUWVVnSnBUWjZhb0NKaDBLMm1FWjBTUy9jMnNuOTdnS0s2NGUrYzJMdnJP?= =?utf-8?B?MGZ5ZG5kMTRTdU1haE84NC9NSjNWU0RtajdYSHJlV2laNkJscnNsVFp6VmFE?= =?utf-8?B?VWk0SSt6NEFEZGtLUTFPRGZFbWpEeUVnRnlUVGN6cmJ3OERiNUlMSlZCbEZZ?= =?utf-8?B?NXJLcmFiWTdYTlZkcFRucThtTENaNTFYYk11eWY3QldGOXgxMWpxeFdDZkpN?= =?utf-8?B?QXlQSk84RUVmcTVBRC9ZUmg2dys3UklDMVBYUkNqcHhKQndFMkFqVEpidjBr?= =?utf-8?B?cWRQR2kxYzNPZ2RPQzJ2MlpFUCtPWkNxd1ZQb1ByWUhoUHlnc2ZPTXlwNXZm?= =?utf-8?B?c3NuRHM2LzloRzVNSXh2ZDA5TVB3d0NnRFVXaUl2MTJnc21JWkd3TWZoSnNl?= =?utf-8?B?K1krNWpvR3dSM2xrZEVIb1Z3ZVBNUzVheWt2OW94S3ZSS2I5Qm8wbmduekMr?= =?utf-8?B?OTZwKzhXaFU5ektVc3hUeFdaNlgwUUY0VFJZd256NWI3TWFJNjdsL0ozL3pX?= =?utf-8?B?UUhtc1pvd21qZEo4VkZPOVRtcXMwbGNicnFDb3VMVkhSZ2pzWDJFOWY5NVpN?= =?utf-8?B?UU10THhZV2tFeWorU1BGVXdPNU5ZRWwva0NJd0Q2ZTdWbGtRbEpWN28wbCtE?= =?utf-8?B?SFF2YUlFdkM1SVdNK3FmT0FkSTU0K2lkQlRzd1dRYlRmSTU4RVFVODVFWVdH?= =?utf-8?B?cjdmckFwZXl2RW44dFR6L3JnN2JHVkREOWJPSm9hdE5sMEYzZ0djNWpHWVdu?= =?utf-8?B?cklqbU1lWHdqOVdpUkJMdUNCVnBkelAxYkRTRStjUWErNnREVmkxVERvZVVR?= =?utf-8?B?YXBPd3VLZGg2L1BjdWxrUUkrQXZzQWlIVm4vRnZkZ2FjaEhFYjAzd1lqQk00?= =?utf-8?B?WThzeUpTa1FaS2N2VVpwR0c4WmEvN0JLTmY4NFovdldzZUpGR1puMDlmbm5q?= =?utf-8?B?bGFhNmFmend1RVN0Y0xoMEVqRlg1R293SWFkUVovc2RRcENNZHpKQzVWUjZJ?= =?utf-8?B?K1MzLzV0N2pJcXRYNU45ek1McExHZFZ0V3FlOHhqNjRqSFV4U2l3Y3lEa0c0?= =?utf-8?B?emtpbVpaT09aeUlKNFhHK0Z6N1lJSlc2SmVteXp2Z3lMejV3U3U1YzlzVmwy?= =?utf-8?B?bFp6ZiszWGRtZ1FJWTYrS1VIL0NKL3dDOHlSNk45UFdoeXpFSHIydWpLZlM0?= =?utf-8?B?YldxME1qQm50R1RidFVRM2tmQVlzbkNrMXB4bjVFemhTN2gycFE4d0Q4R2RE?= =?utf-8?B?aC82OGY2WHVGdkJQQXpjNVJJTENTSVA0WHdUdEkrekVRdjZlWVpMTEx5bUR5?= =?utf-8?B?bkhOR0VaUXRPSXlaaWw5dnJkVWhrNlhWRXg5YlRpNUpwSFlnQ1pwUWtrRFRy?= =?utf-8?B?dUhsSHYvY3U3NmVpbzhBTm5jbkNyMVdwanFKWmlVVUNuSmRURnhETEsxdEh1?= =?utf-8?B?TlRnSzlXQThxMlVUbTBDZ21NNGQ4eDVZc3o0K1dhYWZ0V0wrbnJZWWI2bzdT?= =?utf-8?B?YWJ2c2wrRTBHaVk5Q25ncm9XRlpUNXJQYlpHcTgvN0FlZXorbzJ2NzB2OWlG?= =?utf-8?B?bkpWWnBrRnhlbFlFZnZjOFByaG5jcjltWjVyeWRRa2hBb21YbVg1Wk5MVklP?= =?utf-8?B?MDcyM3pZam9tMGZpUXEwT0J2UVFDbitGeWF3UE01dnIzRFk0Sjhrek1GNG5M?= =?utf-8?B?Z1JBS2RjRXdUSForSW12Szdtb3RNd2RReUtiQllEOFBRUjRiTjdjQXQ1VUV6?= =?utf-8?B?VzRFOHJpZjNvOHZROEt3U25OeFVrVjUyWkdmdlkxQzhjS1luUURyeTBRd1ow?= =?utf-8?B?emkrMlRPcHhJUjU4M2h2RFlBYjYwSEpEV0FaWE1WMENtbDY1bTNWSFdoVEZl?= =?utf-8?B?a3A2NVROU3BZLy9hR1pnTmE1QWg0c1F6TnZ3UDVQS0M2SHZ4eGkyQklUQWpZ?= =?utf-8?B?SXdaTHhDc3FvbDcyUllBbWJFSnVwMURKVDhWb1ZqNWhCSkUwSFpBRVd0RzE4?= =?utf-8?B?VThZcDlMMlpQQWIrZThSS2g4aXJGb3RFOXpuc1pBdk5lWU5ES1FoMFgxbm1k?= =?utf-8?Q?d1RUVjqUA9JDhm0N3XGHATCKY?= X-OriginatorOrg: variscite.com X-MS-Exchange-CrossTenant-Network-Message-Id: 733609df-bb8f-4afd-53e6-08da96596874 X-MS-Exchange-CrossTenant-AuthSource: DB9PR08MB6825.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Sep 2022 13:59:57.6462 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 399ae6ac-38f4-4ef0-94a8-440b0ad581de X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 7RJQJMK5srcQeqoLhe+eVc1QG0QzRfD8LJDIOtU9hW83+BdT8Wjb65wOpWBRltIGEK5HTu1ojfpz4fZqn/qNRQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB9683 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.6 at phobos.denx.de X-Virus-Status: Clean Hi Simon, On 9/14/22 7:49 AM, Simon Glass wrote: > Hi Nate, > > On Mon, 12 Sept 2022 at 14:57, Nate Drude wrote: >> >> Hi Simon and Fabio, >> >> On 9/12/22 3:16 PM, Simon Glass wrote: >>> Hi, >>> >>> On Mon, 12 Sept 2022 at 12:48, Fabio Estevam wrote: >>>> >>>> Hi Nate and Simon, >>>> >>>> On Mon, Sep 12, 2022 at 2:55 PM Nate Drude wrote: >>>>> >>>>> gpio_hog_probe_all is invoked by init_sequence_r in board_r.c. >>>>> If device_probe fails for any gpio-hog, boot hangs with the following error: >>>>> >>>>>> initcall sequence 00000000fffc8e18 failed at call 000000004023b320 (err=-121) >>>>>> ### ERROR ### Please RESET the board ### >>>>> >>>>> gpio-hog-optional allows the boot sequence to continue if device_probe >>>>> fails for optional gpio-hog(s). >>>>> >>>>> Signed-off-by: Nate Drude >>>>> --- >>>>> doc/device-tree-bindings/gpio/gpio.txt | 1 + >>>>> drivers/gpio/gpio-uclass.c | 4 +++- >>>>> 2 files changed, 4 insertions(+), 1 deletion(-) >>>>> >>>>> diff --git a/doc/device-tree-bindings/gpio/gpio.txt b/doc/device-tree-bindings/gpio/gpio.txt >>>>> index 1481ed607d..02d296316b 100644 >>>>> --- a/doc/device-tree-bindings/gpio/gpio.txt >>>>> +++ b/doc/device-tree-bindings/gpio/gpio.txt >>>>> @@ -189,6 +189,7 @@ gpio-controller's driver probe function. >>>>> Each GPIO hog definition is represented as a child node of the GPIO controller. >>>>> Required properties: >>>>> - gpio-hog: A property specifying that this child node represents a GPIO hog. >>>>> +- gpio-hog-optional: A property specifying to continue boot when device_probe fails in gpio_hog_probe_all >>>> >>>> gpio-hog-optional property does not exist in Linux. >>>> >>>> If this property is introduced then U-Boot and Linux devicetrees will >>>> not be in sync. >>>> >>>> Can this be fixed differently? >>> >>> Nate, can you send a patch to Linux with the binding update? >>> >>> Regards, >>> Simon >> >> Thanks for your responses and feedback. >> >> I don't think gpio-hog-optional is relevant to Linux. > > Sure, but Linux is (for better or worse) the main repo for the device > tree bindings. I am not understanding the action. I think you're suggesting I update the Linux device tree bindings so they stay aligned with U-Boot, adding a property gpio-hog-optional after this line: https://github.com/torvalds/linux/blob/v6.0-rc5/Documentation/devicetree/bindings/gpio/gpio.txt#L191 However, since it's not relevant to Linux, I think it will be confusing since it will have no effect and won't be be used in any Linux code. Can you please advise what description I should use for the gpio-hog-optional property so that the Linux maintainers would accept such a patch? > >> >> The problem is if gpio_hog_probe_all returns an error, board_init_r will >> hang() >> >> See: >> - https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fu-boot%2Fu-boot%2Fblob%2Fv2022.07%2Fcommon%2Fboard_r.c%23L824-L825&data=05%7C01%7Cnate.d%40variscite.com%7C105f793941264d50bdad08da964f8a23%7C399ae6ac38f44ef094a8440b0ad581de%7C1%7C0%7C637987565614703613%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=wU%2Fz3uWE%2Bqj6jKzLeCx61Gfvyln7z60jRmONTN5Q46o%3D&reserved=0 >> - https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fu-boot%2Fu-boot%2Fblob%2Fv2022.07%2Fcommon%2Fboard_r.c%23L763&data=05%7C01%7Cnate.d%40variscite.com%7C105f793941264d50bdad08da964f8a23%7C399ae6ac38f44ef094a8440b0ad581de%7C1%7C0%7C637987565614703613%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=b%2BtvcG21zH4WZqP39DFs%2FylUD9UOZp6tRZ%2BmeUwL2lc%3D&reserved=0 >> - >> https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fu-boot%2Fu-boot%2Fblob%2Fv2022.07%2Fdrivers%2Fgpio%2Fgpio-uclass.c%23L330-L332&data=05%7C01%7Cnate.d%40variscite.com%7C105f793941264d50bdad08da964f8a23%7C399ae6ac38f44ef094a8440b0ad581de%7C1%7C0%7C637987565614859942%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=FwqsboWzGmSdUHrFUL48AwfTDbAPFpUmKbaQJEnprq0%3D&reserved=0 >> >> A practical example of how this may occur is when an i2c gpio expander >> (e.g. nxp,pca9534) uses gpio-hog, but the gpio expander is depopulated. >> >> Arguably, the best solution is to use a different device tree when the >> gpio expander is not populated. This patch allows the gpio-hog to fail >> gracefully and continue booting if gpio-hog-optional is used. >> >> Do you have any suggestions for a better approach? Does it make sense >> for gpio_hog_probe_all to cause a fatal error when the gpio hog probe >> fails (most devices, including the gpio-expander, will not cause a hang >> if they fail to probe)? > > I think your approach is fine as is. An alternate approach is to modify the default behavior so that gpio_hog_probe_all will not trigger a fatal error. Do you think this is better? > > Regards, > Simon Thanks, Nate