From patchwork Mon Mar 1 20:45:59 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sean Anderson X-Patchwork-Id: 1445751 X-Patchwork-Delegate: trini@ti.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=85.214.62.61; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=secospa.onmicrosoft.com header.i=@secospa.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-secospa-onmicrosoft-com header.b=nFRbrTHG; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4DqC3t73J9z9sS8 for ; Tue, 2 Mar 2021 07:46:50 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 9C7AB80411; Mon, 1 Mar 2021 21:46:33 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=fail (p=none dis=none) header.from=seco.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (1024-bit key; unprotected) header.d=secospa.onmicrosoft.com header.i=@secospa.onmicrosoft.com header.b="nFRbrTHG"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 924AD804EA; Mon, 1 Mar 2021 21:46:29 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,FORGED_SPF_HELO,MSGID_FROM_MTA_HEADER,RCVD_IN_DNSWL_BLOCKED, SPF_HELO_PASS autolearn=no autolearn_force=no version=3.4.2 Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2062a.outbound.protection.outlook.com [IPv6:2a01:111:f400:7d00::62a]) (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 94BAD8006D for ; Mon, 1 Mar 2021 21:46:26 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=seco.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=sean.anderson@seco.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=A+alfIG7jzkLd5+STV8vnpcDZ5+RgD75vvhaWqmqEQjnE54CGBtS5tDazlVAD4d3mIU3a6Z4hVKxekMaK8K/RKp2bt42q9JYbR6E8HMHwEgSmvZPM3zQa6fdOAFHlrWFYhAwiKRpMcaUnAq/cQ08WxnB7E79JaaLbiTFovR8F7Upi4RaHb+5yZ8ZmADEMR/aC4eZE3LuvvjGjcTyPezeXRtHeRVXQlQfhudWnCoS1uoYBWF2xF8JeIwsaFCI2/arUulLqAYiiiob+KSoVQXul6DdvWSP7wonMvB32FY7bSqOap6CIAb4fPFJzxW3SWqltejedcdrBZRovmp6RkBdHQ== 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-SenderADCheck; bh=iiiz7y0/20zeZfIVf2U2Bf6tnNTZq5e1kRgsSlipNEk=; b=PGdgsQagEIArWAex5rB/Nj3mw3yk67Lrjt5xWrGVVkS6iypmR8OEVF+Bp6oLTfmdTUpi9q2mA0uTOufpIUCYaM6DoBSPS5Acpr9JwHdcO5LCnfRgZKe91GIfC/HsfJqPEJ2tgTqux/cedzR31GLrN+1VHZzr9C4UbZPxCrV5nJC5pW/KUERm7+/ZOiksdk0cf18wpmG+KDXaDAY3ZXP8w891sIfAhz78QVjR6ssNpBGpnoBY2G7x+ov+IZQOeVbWChuLOMRzYSADA2y91Sy50LDav+XeIeqllfjckb84aAsblwdge4mCU5LVEVu3zkBDOswhudMvgspejEAwxwaFPg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=seco.com; dmarc=pass action=none header.from=seco.com; dkim=pass header.d=seco.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=secospa.onmicrosoft.com; s=selector2-secospa-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=iiiz7y0/20zeZfIVf2U2Bf6tnNTZq5e1kRgsSlipNEk=; b=nFRbrTHGDj5OzC4PYlKlmYy3e5i/CfYqWUPrgQWibmeLylIrLLF96UZSbuXeAMo1Vk2Hv4ID57XfvKHIEMYoEFBVWC/dnAjAUmYaBq/rKtGz04yjCwb48WnnDIL7g+aGH360GX5L0MCJneneCm7onBM1gFdL8rTXQv4/xMow5cE= Authentication-Results: chromium.org; dkim=none (message not signed) header.d=none;chromium.org; dmarc=none action=none header.from=seco.com; Received: from DB7PR03MB4523.eurprd03.prod.outlook.com (2603:10a6:10:19::27) by DBAPR03MB6408.eurprd03.prod.outlook.com (2603:10a6:10:194::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3890.23; Mon, 1 Mar 2021 20:46:25 +0000 Received: from DB7PR03MB4523.eurprd03.prod.outlook.com ([fe80::941:c90c:b9da:2290]) by DB7PR03MB4523.eurprd03.prod.outlook.com ([fe80::941:c90c:b9da:2290%4]) with mapi id 15.20.3890.028; Mon, 1 Mar 2021 20:46:25 +0000 From: Sean Anderson To: Simon Glass , u-boot@lists.denx.de Cc: Sean Anderson , Heiko Schocher , Jean-Jacques Hiblot , Patrick Delaunay , Pratyush Yadav Subject: [PATCH 1/5] dm: gpio: Fix gpio_get_list_count failing with livetree Date: Mon, 1 Mar 2021 15:45:59 -0500 Message-Id: <20210301204603.2730666-2-sean.anderson@seco.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210301204603.2730666-1-sean.anderson@seco.com> References: <20210301204603.2730666-1-sean.anderson@seco.com> X-Originating-IP: [50.195.82.171] X-ClientProxiedBy: BL1PR13CA0207.namprd13.prod.outlook.com (2603:10b6:208:2be::32) To DB7PR03MB4523.eurprd03.prod.outlook.com (2603:10a6:10:19::27) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from plantagenet.inhand.com (50.195.82.171) by BL1PR13CA0207.namprd13.prod.outlook.com (2603:10b6:208:2be::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3912.11 via Frontend Transport; Mon, 1 Mar 2021 20:46:24 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 4c9a8340-0ac0-4495-d923-08d8dcf31458 X-MS-TrafficTypeDiagnostic: DBAPR03MB6408: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:242; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: l3r+SXBBQolTmm2haNU9OZzr4xHrBNp5jsiVCeZ8wtprV887ofJtqHWtK32dZcsgihpa0u710W0wqd8sTqsk/DAWnkhBxbsWdMLs5wDTZxlJTEyDybKZfPm42ST4/ykEBgpqgEGBQzFeW64lq5RKdko+MrdvsmvmFX+nX/fKgaSoeg7PR2X9KjWzq6LDilOJmgc2iYyEP4TmtnZiF8+uGLO7xTC0dkaRISUIyXJPyPdhNzzH8WuzJeoCiA1Rm4hRWnscl2FolZajdRTX+tszzTi9BTz0RYZ/NcCsqlmQjNnfgDkN4pe6Mm35nhq06humzCVX8BTVL0VwErTwB9e9QXLwPxpMIKwnKrl/WdYVgYfcge+GoO1NK41RWHx7aYvZSzT9ONr6lrJX2QkQqKUf1/2A0+XXxXv9T6Pq0Diq7Q0+z546SxSHuJK++RdHmuo8TCXZHL9bkae74WKFoAiIgSLHNs9sVIaifeAaehuwQ2k2CxPCoJ+25RVmp+jMgtcOdlb1ZCQD4B3skqybyYt4qg== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB7PR03MB4523.eurprd03.prod.outlook.com; PTR:; CAT:NONE; SFS:(39840400004)(376002)(136003)(366004)(396003)(346002)(316002)(86362001)(478600001)(186003)(6512007)(6486002)(36756003)(26005)(1076003)(54906003)(16526019)(52116002)(83380400001)(4744005)(6666004)(6506007)(956004)(66476007)(2616005)(66946007)(66556008)(5660300002)(2906002)(8676002)(4326008)(8936002)(44832011); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: WZozvW8yFtJepS+sLqh995SFWUm7/4O+2U042M1inbByts9RuUWD3DN+79dFtjEHfURYNwQhimlhPssL5Qe2/f8tOfm8o3RGWx79JSReftQBg37yIaC8l7tZFxpAmEsBlTM3HgF7hUx1urInOmaIe4wJLGgISelL5UPExbU7g4F0Nz0nL3h4KsMABKBJyzSZFbGSjkojIq6VE83mG5W3Y17GtZo0tGgscdgL0HlSJm2PCrs5qJvsyC/E9YLyhqpFyQONbQPJiPeKO6f/GD1D6JPCmwOjJMYl0kOvfbvbMjKydQsr2dUOuOPXU8UJtWJA1d+BOUzRgLzpBohCX7g51EZQSoysuvejnXC3ddDI9L6IaGOtPz6jIn2vtDzWMBzKCzlrVJzFinviv6RvA6xnTu8Rp8pg36WEgHDDQd3TpKAbsKVQPUmwhsIfCallTe1efxSm06DO/8Boe1QsWo09Z4q6HRZpa7DY20rDRFBVkTB2d0aGELA7+l8KTJ0SHrN1AJlLaag4PGnggC7Bq3QhxK14ATbYScXRmrIl//PsyE+agVhLmuGznWDpgcWGA+WOiSlHcU4UWHhQfm3HJt+UpOKghpQZEYRSNBVAzpU8xZNI/UIiaPv+UPpa2kLpY1PFLBGiSAHP5cEsGv8ceFp+EHFvmQtJnNmPSOw7NyCC/v+XlFPixsdMS8wsKn6/NY0+K2HHJJgtmXhsrAZtaU4pG5n7BR1mqlEmZp2uTmLAJMywnPduBDrukEwxEw7k8gCmG6SH/mOvDvt1JAf9aJMas2qGiWn1lAjvNsx4qo8aro6AwXXpED2jRearEf2E0JcXQ2I8gHv/1B0YTLSOaEVjLhHKgm0raZZazynZA5dhKMBCklM/Qq2e0b5Yj1lsiln2DJT9mHQmeGRkCD0YgPhLbaSyQ6l9nRYBymA4AigAmMErEAEHQ3Pf4xcZK7VJynj55XtB4rAjCfm4T7Vm/aofBSQ/OwfRbH6lQZZJaEwywGTGT2Mfd8OFeYT/nRxQ1Ddw4OFGUu+KA3OGIJQJZWrU9kpxyolX+Nm5vBOf35ibl6jrgosSszfDffM/OiHNRtGo1E18vhRjknzOcW9Go7UR9F4ybKsEF2K2PXxTn/OlslWgw32JCmH0kL6D9G0kZZWrSurop5jqkltQZSVQWZ+24TTl6WmON/AB+LQzqFUkPhUbYPkUUrrKBdmMqobdKSYVDjwCsP+W51mNcKWcEU64oNc4gVrFyM75WSDEY5ptuidcSkGFyquxVHtu8cBZINmKeRCg1S90MOTobN8bsb5ViVJ/ztcxCUAkR0bqGQywd+lw/wRtj8VDu28Km7AjpJ4J X-OriginatorOrg: seco.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4c9a8340-0ac0-4495-d923-08d8dcf31458 X-MS-Exchange-CrossTenant-AuthSource: DB7PR03MB4523.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Mar 2021 20:46:25.2004 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: bebe97c3-6438-442e-ade3-ff17aa50e733 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: CfDCeDj/YDzjVFwBIGZDcsKOLwaNjPFzHCS06SG+0KlQv/i9p2ybef5VMhdMxG6Dtg0BlBl43AREfmKQBWGxyQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBAPR03MB6408 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 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.102.4 at phobos.denx.de X-Virus-Status: Clean of_parse_phandle_with_args (called by dev_read_phandle_with_args) does not support getting the length of a phandle list by using the index -1. Instead, use dev_count_phandle_with_args which supports exactly this use-case. Fixes: 3669e0e759 ("dm: gpio: Add better functions to request GPIOs") Signed-off-by: Sean Anderson Reviewed-by: Simon Glass --- drivers/gpio/gpio-uclass.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/gpio/gpio-uclass.c b/drivers/gpio/gpio-uclass.c index 8dc647dc9f..8de6fe58a4 100644 --- a/drivers/gpio/gpio-uclass.c +++ b/drivers/gpio/gpio-uclass.c @@ -1214,8 +1214,8 @@ int gpio_get_list_count(struct udevice *dev, const char *list_name) { int ret; - ret = dev_read_phandle_with_args(dev, list_name, "#gpio-cells", 0, -1, - NULL); + ret = dev_count_phandle_with_args(dev, list_name, "#gpio-cells", + -ENOENT); if (ret) { debug("%s: Node '%s', property '%s', GPIO count failed: %d\n", __func__, dev->name, list_name, ret); From patchwork Mon Mar 1 20:46:00 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sean Anderson X-Patchwork-Id: 1445752 X-Patchwork-Delegate: trini@ti.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=secospa.onmicrosoft.com header.i=@secospa.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-secospa-onmicrosoft-com header.b=PTmETDGi; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4DqC450kH3z9sVt for ; Tue, 2 Mar 2021 07:47:01 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 45C1181FBA; Mon, 1 Mar 2021 21:46:39 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=fail (p=none dis=none) header.from=seco.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (1024-bit key; unprotected) header.d=secospa.onmicrosoft.com header.i=@secospa.onmicrosoft.com header.b="PTmETDGi"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 5C3BA81F5E; Mon, 1 Mar 2021 21:46:32 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,FORGED_SPF_HELO,MSGID_FROM_MTA_HEADER,RCVD_IN_DNSWL_BLOCKED, SPF_HELO_PASS autolearn=no autolearn_force=no version=3.4.2 Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on20627.outbound.protection.outlook.com [IPv6:2a01:111:f400:7d00::627]) (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 65F23803AB for ; Mon, 1 Mar 2021 21:46:28 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=seco.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=sean.anderson@seco.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QqnpI0DSt+F3VBZ3WHBda1sdcmk5rfeZl6b/m7yKB0wzjaAgRU7zfPFvRm1nt0NAYk+hQ9ySsayXdKKVnOmuWFFgyNaq/bTyB6QdHkmuclj9fimsqsFFvQM61h/CBbUfjITW01Ok3m7AP8cdgKoVLluuugto5MuyAi1EZ+CXRH+ai1jZvYcfdeYShKX4hQyJxOqpEd7J9kKS3bpe9cq4bTt3LDNxMgmWJ0dJeOmBV6dRlaMkChFxf3kUAI3mdAvmAqyEjsGrUw9d4Y6XxDFrpPRoyyitK2aF/6VRPBYf25JgqVBj977MKKwGOXyzUnzqOJT4MilOyL85DqCR26rpfQ== 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-SenderADCheck; bh=iXriygdvzR0dHbNGj6XMGDUjE0nYa37padS3hAQS/2Y=; b=hKyYIbEC1bgj8YG5OhnvggBAsrW8KBcMxeerOTKhfkyiGtpAA/O7LLZcn1LpymzJMlZePWeGVnNIjjBpPybcYMmu89ugPJk3zcFQRqsS7aLzTkYaxOLgT1cigISbCP90MtFvLxqtjSCe3If0B287RJYLK2Dz+/fLh9LsWp5QT1f6OfHOcgRl3Bgx33mAZbI/fZT/uzbJPPP8NFVHGDaP7pcztNkcb1D9QAuRb7kioN09Pw902CaRVxOdeQ/wTQBbJz8EQBuVJDkRGPdaTA0A6P85DUbdqeAtE8e7LpOK8y8/+a9kxE2Lp7ry+wKd/Cj39vusi02XS0Ss3nVTaajH5w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=seco.com; dmarc=pass action=none header.from=seco.com; dkim=pass header.d=seco.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=secospa.onmicrosoft.com; s=selector2-secospa-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=iXriygdvzR0dHbNGj6XMGDUjE0nYa37padS3hAQS/2Y=; b=PTmETDGi0wVhye+9l2m/T/5dbyJNce61uyI3M8PJtt6wRJc75GQHQDclGQQrgG6w4Nszi95zVM3JHoq1CuFfL+4xCuxR5C9Vt9wdwMkwsiFznIQw8fzU+kTq2VZSOmWRMb2SqkSXsutlwcvZ5o2G/h1s95TzPPIcnnmwvViuTjo= Authentication-Results: chromium.org; dkim=none (message not signed) header.d=none;chromium.org; dmarc=none action=none header.from=seco.com; Received: from DB7PR03MB4523.eurprd03.prod.outlook.com (2603:10a6:10:19::27) by DBAPR03MB6408.eurprd03.prod.outlook.com (2603:10a6:10:194::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3890.23; Mon, 1 Mar 2021 20:46:27 +0000 Received: from DB7PR03MB4523.eurprd03.prod.outlook.com ([fe80::941:c90c:b9da:2290]) by DB7PR03MB4523.eurprd03.prod.outlook.com ([fe80::941:c90c:b9da:2290%4]) with mapi id 15.20.3890.028; Mon, 1 Mar 2021 20:46:27 +0000 From: Sean Anderson To: Simon Glass , u-boot@lists.denx.de Cc: Sean Anderson , Bin Meng Subject: [PATCH 2/5] sysinfo: Provide some global/default IDs Date: Mon, 1 Mar 2021 15:46:00 -0500 Message-Id: <20210301204603.2730666-3-sean.anderson@seco.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210301204603.2730666-1-sean.anderson@seco.com> References: <20210301204603.2730666-1-sean.anderson@seco.com> X-Originating-IP: [50.195.82.171] X-ClientProxiedBy: BL1PR13CA0207.namprd13.prod.outlook.com (2603:10b6:208:2be::32) To DB7PR03MB4523.eurprd03.prod.outlook.com (2603:10a6:10:19::27) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from plantagenet.inhand.com (50.195.82.171) by BL1PR13CA0207.namprd13.prod.outlook.com (2603:10b6:208:2be::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3912.11 via Frontend Transport; Mon, 1 Mar 2021 20:46:26 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 301712d5-30b5-4790-22a6-08d8dcf31595 X-MS-TrafficTypeDiagnostic: DBAPR03MB6408: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:5236; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: T2OlWh9OKbM/OU44yblKc9jtG7TdUbJSgCuCvyI2f3Nd4zhzocOS7p6zi+sllwvpZfk/xtddaUcZtn2Qe5UP1CJd2f8LlRVGO88MlIbk8UOxmx3Q2EcfgCkfFpEteJAevqg7UxeL2A3t9Ha4+ZfHQsIFDtEUq2yppEGPB4Da1gNBJJ4a0E2werdJHHvQJPf5Q+PBN10RL5W6OTUHVfMWWRzLRh3/74WjzgzHYDr9AYaZgddyEld6nWs8AVsPMKDmqEHb60UuKsDmEHjMkvYZi4uTLUjYnaAs/njPEuKPcoZSuZ7tTIie6lBIsroiJhuWnrTzlfOHHTBRZVfs+J6R2BpXbTWdQNm1UmL1bpYh3jVdagAK3DPVJQl7myBmF+tTIfPypeyeivOEDpT+G3mRClgnhZ+2MFyI1zVvZlK2cm1SXguGyVRWpiz+ksLq5scjw2vp1S58ALyXyZ1bflU3/bUWhmqpAz61ftIkmp5YsVlYKAWwF2A1+fBiUInIg4DwxdDlZLzsSDam9wGKML3+5g== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB7PR03MB4523.eurprd03.prod.outlook.com; PTR:; CAT:NONE; SFS:(39840400004)(376002)(136003)(366004)(396003)(346002)(316002)(86362001)(478600001)(186003)(6512007)(6486002)(36756003)(26005)(1076003)(54906003)(16526019)(52116002)(83380400001)(6666004)(6506007)(956004)(66476007)(2616005)(66946007)(66556008)(5660300002)(2906002)(8676002)(4326008)(8936002)(44832011); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: eTZsd+awbAzd95kp0NKuLE6zrXqBGnyDKLZWgWO8UUjTN9O7ocF+v0xmc8VC0jd5R2r/1uhoyKga+4MRtqPScxJ4U6ZViaVSvJnC+GyRivRLNE6NDbu4poGUeOt9e4ByNNumBVJ2dfORkv6oAmUcMDqqcLxMxFoIcQCex2ZIcreROqmuYF/u58/alR9Lu51pEQ3Mp5MV18ESfPACcKonraOK9oUiPMTYlvNQ3dQm8GAQdWQwVReGRoEiIkoR36Yrd1NIurGGl2OqZZ3EYVINww5E0Yi9OruuNMBQh2E3Sun02C2sPbjl1vZW9bxBJT1fIARpNmOY2xuKvhIuRHWDSwA6puU6cw/YXqDpymCQHxRnoD4fXlPrxOShgzhZirAMl0dWM/QZMMTzFWknx+AsVIu7PXDllQ/tC95xxJoBmGY6JqxuyvDPafDxD5gAUu/0xGjtarh7wlr+/Yu/SuFYcdyTu8cCOrh0PkjDWx8IKFD9iF9Z5YVSkhzSqHFWAsa1pZH9ac6VM4Z6lrvqh8h9cyBmCJe7NlHpU2Ce3FrN5hTrx64H0uXfz0A/wtbdS3/zNZsZgD7UYQuUPfkHyioFJVw1a7wkECzPD+oJYThn1CqLNU6dNqvmd+oL/Agg8tu4BVNfALIRoa/EYu1nRdO/X1ntig/SZPKCgtOSkt+bJTvhias6W455c9LAcwHyXSy2iKI3hruKlCrsHo0Pk9y+73vpWeNcvYGzCvqqLLlD0TD+tFcO8JwUhmw+P0peMmRCvFCAMSkzv9o/XTWy/h4Kfvc+o4cUJpss29d4l+vhIfgISt7gO2jDEW+3H2800X2pYqpq9vM6/+OBaOfb42YW1mPL8maYIBh8Rypp6NpGsX42pdjy7K/WSdMVaqM/79D73WlyAxbi0xnhXXcBLdxrwfqNwQR1t3BJVJCBU9+tnXdQA019SJgBg/uAqzQTHiyhSMdr2aMklQr88sGP7a9eOg6WqDPfyhajfHQZjoTo50VqN+AmCP3af42lqeRf4Y41mfYpxViulzcIhZGFFymg1jcCTarxTfZH30/tC/2zv7A4NAcW/Ivod0clfDnjQDn3CEF8bfPmFzpPzFb+txsObU3qteI6IGcubsdZ6eCSOXM+2qnw8+W9hAsAuQBADbn6Ek96NKlF5KPRDQyjJivbyw1l4DRnsSdr4HSaL2lQgz8tIG7c+M6eBJOHJ8fIdSgrLGDAxkHy4Z+VaDzISb24+O4rf0igVLAyhQyB/53Mv/FHZ+gDCDCLB/S0xe3pTnAqi+tL3pEXhv5nYQWpvaVqf1NIRy6EalFretrXmxuzFo+C3dv3RY8neRryl9mEmOzq X-OriginatorOrg: seco.com X-MS-Exchange-CrossTenant-Network-Message-Id: 301712d5-30b5-4790-22a6-08d8dcf31595 X-MS-Exchange-CrossTenant-AuthSource: DB7PR03MB4523.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Mar 2021 20:46:27.2712 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: bebe97c3-6438-442e-ade3-ff17aa50e733 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: TFtRt1qN87jzF4GgYX5NEOa7kI7rwAi6DJ+z5AU6hAJk43bEwsPrj+pbYpD6VUfEan+pmf01lTj6gDQlSRFY6A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBAPR03MB6408 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 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.102.4 at phobos.denx.de X-Virus-Status: Clean This adds an ID for a board revision. Existing IDs have been moved above SYSINFO_ID_END to allow for future expansion. Signed-off-by: Sean Anderson --- drivers/sysinfo/gazerbeam.h | 10 +++++----- drivers/sysinfo/sandbox.h | 10 ++++------ include/sysinfo.h | 13 +++++++++++++ 3 files changed, 22 insertions(+), 11 deletions(-) diff --git a/drivers/sysinfo/gazerbeam.h b/drivers/sysinfo/gazerbeam.h index 171729d203..d8e3c48955 100644 --- a/drivers/sysinfo/gazerbeam.h +++ b/drivers/sysinfo/gazerbeam.h @@ -5,11 +5,11 @@ * */ -enum { - BOARD_MULTICHANNEL, - BOARD_VARIANT, - BOARD_HWVERSION, -}; +#include + +#define BOARD_MULTICHANNEL (SYSINFO_ID_END + 1) +#define BOARD_VARIANT (SYSINFO_ID_END + 2) +#define BOARD_HWVERSION (SYSINFO_ID_END + 3) enum { VAR_CON, diff --git a/drivers/sysinfo/sandbox.h b/drivers/sysinfo/sandbox.h index 2cff494f56..dc7c15e738 100644 --- a/drivers/sysinfo/sandbox.h +++ b/drivers/sysinfo/sandbox.h @@ -4,9 +4,7 @@ * Mario Six, Guntermann & Drunck GmbH, mario.six@gdsys.cc */ -enum { - BOOL_CALLED_DETECT, - INT_TEST1, - INT_TEST2, - STR_VACATIONSPOT, -}; +#define BOOL_CALLED_DETECT (SYSINFO_ID_END + 1) +#define INT_TEST1 (SYSINFO_ID_END + 2) +#define INT_TEST2 (SYSINFO_ID_END + 3) +#define STR_VACATIONSPOT (SYSINFO_ID_END + 4) diff --git a/include/sysinfo.h b/include/sysinfo.h index c045d316b0..9386bdf49a 100644 --- a/include/sysinfo.h +++ b/include/sysinfo.h @@ -32,6 +32,19 @@ */ #if CONFIG_IS_ENABLED(SYSINFO) +/** + * enum sysinfo_id - IDs which may be passed to sysinfo accessors + */ +enum sysinfo_id { + /** @SYSINFO_ID_REVISION: Use this ID to access the board revision. */ + SYSINFO_ID_REVISION, + /** + * @SYSINFO_ID_END: The last global sysinfo id. If you need to return + * custom information, use SYSINFO_ID_END+1 as the base offset. + */ + SYSINFO_ID_END = 127, +}; + struct sysinfo_ops { /** * detect() - Run the hardware info detection procedure for this From patchwork Mon Mar 1 20:46:01 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sean Anderson X-Patchwork-Id: 1445753 X-Patchwork-Delegate: trini@ti.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=secospa.onmicrosoft.com header.i=@secospa.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-secospa-onmicrosoft-com header.b=zozqbqPt; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4DqC4N6GNZz9sS8 for ; Tue, 2 Mar 2021 07:47:16 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 4662F82016; Mon, 1 Mar 2021 21:46:42 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=fail (p=none dis=none) header.from=seco.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (1024-bit key; unprotected) header.d=secospa.onmicrosoft.com header.i=@secospa.onmicrosoft.com header.b="zozqbqPt"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 0DB3281FB9; Mon, 1 Mar 2021 21:46:35 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,FORGED_SPF_HELO,MSGID_FROM_MTA_HEADER,RCVD_IN_DNSWL_BLOCKED, SPF_HELO_PASS autolearn=no autolearn_force=no version=3.4.2 Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2060b.outbound.protection.outlook.com [IPv6:2a01:111:f400:7d00::60b]) (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 4F3BB81C7C for ; Mon, 1 Mar 2021 21:46:31 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=seco.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=sean.anderson@seco.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=EdkuAOUFjmM6DBw2T+ut6OUkTLjsVLjtm493/sIgBubjf6AXg1jsXYJXCBZ9dh9PI1WV5GUdnmOvmpWKQYAkhVeoSCIwJq8pxTrPdo5iM0HY1qAtuXia9jHWW0kIa1+jXtBrQXWU5vjgIXt6Oba2EPPZkSVo9JTBdzQyU+CHlpnLrYThTNoI7HbJLxJxMO1TY+NYeFW1oStVxzCf26qtkuOt+VIFEJ6u9Gx2hABgDOS8OqMyjBb7SxIBecQkleWLhX2XcVo/1l/URCEnb/Clj2GZGLi+DcMoqRi8Gs5xHLFVRmdqSrW3zrxi/Ez06HAikl1GL1t3prQnf3ERRoVACg== 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-SenderADCheck; bh=BD2JK5RBkIskOV8KAoPYLFEQlob+qKni2k/MrfQ17l8=; b=fDbe1xYWyie2ZlwoqFHXdAlzXLH6aU7ck1mh2J3f/eTQa3JjXEE9w1n7ap0DAE40zjkdI7tjETY0foUiYwP2ZDrPn92WG5mi5GQRL5HD0P5w63z3rfq6FzoH9ESdIyUFexEI/PqfxCCnzK3tCuyDisQ5zvM2fHTzY5POOmc6bEZcYGnt4DHBorSTPdD6ijzH5zzKAKVN9ayuj5M6QjihKK8GvsogqCGYT01y188pmlEQEr/S38SVLHzEMVmqE1yr6s4z/Wzrpy4ra/QR/8EWFqW+TK0impY9w9v4lcXzRN87s1ebMwPghskPJuF3A/d58vwKKq5io7Gzm5YFeyDJSA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=seco.com; dmarc=pass action=none header.from=seco.com; dkim=pass header.d=seco.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=secospa.onmicrosoft.com; s=selector2-secospa-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=BD2JK5RBkIskOV8KAoPYLFEQlob+qKni2k/MrfQ17l8=; b=zozqbqPtcaUuHiO5NIdDrVD7eJNZohfWRJNookIHXDNWQP350j5C14FsNDVtaCYOvaPp5L4Bsh6OzHFpe6Mlqp+OghR3tUnZ6U9AezbPMPrXbJKmqJ/1Fd5RHMtLzaY9hCCdohDUtjipwidj6MhCZaM8mujoa/iu1SyxxpDt69s= Authentication-Results: chromium.org; dkim=none (message not signed) header.d=none;chromium.org; dmarc=none action=none header.from=seco.com; Received: from DB7PR03MB4523.eurprd03.prod.outlook.com (2603:10a6:10:19::27) by DBAPR03MB6408.eurprd03.prod.outlook.com (2603:10a6:10:194::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3890.23; Mon, 1 Mar 2021 20:46:30 +0000 Received: from DB7PR03MB4523.eurprd03.prod.outlook.com ([fe80::941:c90c:b9da:2290]) by DB7PR03MB4523.eurprd03.prod.outlook.com ([fe80::941:c90c:b9da:2290%4]) with mapi id 15.20.3890.028; Mon, 1 Mar 2021 20:46:30 +0000 From: Sean Anderson To: Simon Glass , u-boot@lists.denx.de Cc: Sean Anderson , Alexandru Gagniuc , Bin Meng , Dario Binacchi , Marek Vasut , Michal Simek , Philippe Reynes , Samuel Holland , Ye Li Subject: [PATCH 3/5] sysinfo: Require that sysinfo_detect be called before other methods Date: Mon, 1 Mar 2021 15:46:01 -0500 Message-Id: <20210301204603.2730666-4-sean.anderson@seco.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210301204603.2730666-1-sean.anderson@seco.com> References: <20210301204603.2730666-1-sean.anderson@seco.com> X-Originating-IP: [50.195.82.171] X-ClientProxiedBy: BL1PR13CA0207.namprd13.prod.outlook.com (2603:10b6:208:2be::32) To DB7PR03MB4523.eurprd03.prod.outlook.com (2603:10a6:10:19::27) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from plantagenet.inhand.com (50.195.82.171) by BL1PR13CA0207.namprd13.prod.outlook.com (2603:10b6:208:2be::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3912.11 via Frontend Transport; Mon, 1 Mar 2021 20:46:28 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 59dfac90-d898-46fb-a677-08d8dcf316f4 X-MS-TrafficTypeDiagnostic: DBAPR03MB6408: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:7219; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: T/PAGiabLyXUve4XooDqjZaEdDmvbgy/Uif8HNKjeukObj52TZjP0pO68Mm3q3WRhbbGmgxG8J915QDqymQWgzYlYpQCoSCkUuYHCjPWl3FP6BIk0E/bbXD3kGEnEhq/1GFP84JHUuRmDgFPiCNtqE28MnZ4N98tEMRkKgA3kZswu2556IuWL0KNM6s2dzYb+6OLLVGd2Jcab0WkyTXJOrORDRjpIZQF7CqMeLFvVgk36oSpopHcnGYze+DmJFCYXoDWZZyjJkWsEj4Nuj7Mueyh0HYXBMlTnnYerFSENW7o32hBwMlufKStFV2PWp4AL5l3z+J2Ufm6F/fnmrqT5u0Bi3EDOF502PIkddQez6H5Ak9+ukXqi0PUa+4BILGEEUfvQEB9XEtWlvqfhrtod1aj+3JVt0cvrbcyTHFOsA3UaVcnJ1t5Tp+PjkXa1f01lwzPp08w3oFCBRrAro/Bg2/g93bMYa40LcZtkqJ4tWY5TGSjl1JrP/+/+tE7C0/AxV1vrLPvHQgECEYouANNeQ== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB7PR03MB4523.eurprd03.prod.outlook.com; PTR:; CAT:NONE; SFS:(39840400004)(376002)(136003)(366004)(396003)(346002)(316002)(86362001)(478600001)(186003)(6512007)(6486002)(36756003)(7416002)(26005)(1076003)(54906003)(16526019)(52116002)(83380400001)(6666004)(6506007)(956004)(66476007)(2616005)(66946007)(66556008)(5660300002)(2906002)(8676002)(4326008)(8936002)(44832011); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: oPYlscUQGLMZRRZ687yWQ5JavmntueJeKFvflKDSNdmW86bb+OSnvvXdOutXIMyi1extxOf87ZxQSom/6ms6RxeCCyJwwcC7FJ8+cqR2fuFNi67fFaeOYLdUKy9zkCFF7yHjztDWadGKJAEaAsE6hkiTze2m+3QLcgly7RzL0pihBqD6nxldnwPnKj2ZeROZOCoTsMSjP3EOspXqF2xTjZwAbKBnj6SEudvIcVdXNh34w+OvG3oyllLEVaDb0y+3al3rDd11KiB53nTw3/yjev4QYulE7lOYuR7Z4jENnKY47IpZUHmWPBI0mSfae4A0vNNwpZyfH1BC8YJgz2vSKYemWubAxqiO2G+/1QP+CZNj+EYj+caGONm4Hlgw/TZgCzTEGbC1biML3ImNDMS9sXVbY14oDTEVwDfHvOYMAqj7rMlpW18eaKddcApDEVLEVqpaNXQLKtC2S3ecu28OM/D1l3MFYXeHupGX/ef7Zp2/XdS1mTX11H2//79v7FIpvU2s/Aya0C5PqkQyLE2H1KoGR6ftfsjEQp22fxmoavfHvVmvD+ybHAVTEUibhO6ddG/KTtmTfwjbOHcr+2MKQdCxq6DGQ1WLgOIyU85Kx/fUiQ0vDQQI5zqf+eqSoi45lZURpTCuVJam8yXwD4Pa7r0m8Ga5+sHqAFmm1Lrlx8Pn1v1KRUhQyJXjxFTWOR7d+KbsNSEoWIKp7bpCpysL0JeUjo5CCaJs7q5N5fP+32rfUBx9gkNVT6Vmpcww5CPtmtf6Fd+7zG/kiZN46woDXHo9wOJ241bvH0ERL1l50uc/wb5ZEeTYs3zb2K4o9fDCNrNyBpSTYt2zmyyvutzAAvym34nXNer+dlENP1g9aMDYLt17S6NjNMhkS/Is9TsPyNIPJoEW4z5WwOvuMuAYyHnHWrCn+zjk2Nf07OkShMJMMgEZnAWeHeB7ezys8YpTnBdaP4OE96WAYcukkdbGYnjaoFlkTW1XlS2EELkff6GWuAWPI6eFhrtsI3x/qjtYuhEHjCzndrpMnjEuhah1rQRKkEqI3SkXs2lDCsKBDTO9Jarpj+q5/ZABycCKzpe3JvrzwM2mrX3imx502c23UCfHFNfa3z6BanJvU6WKDjhTltMEAGF27VPW8BDhfhSNFWLRVKJ1vZJxc134LtrVwPR1z8mrKn0JSxJPXiRCsPZ08jCcnciXN3YNIS+pU0OaRvwS/h3/z5IJqObSuiiJago6+P1+b3yf8aIdg1DkwxkVssr+aEPEfz9itdM80Ggy/yXLr7SfLneprgWdsp7CHHUuE/a2i0Ve6y7x64yr/rlQURohKEprkrjLMA2lZJFb X-OriginatorOrg: seco.com X-MS-Exchange-CrossTenant-Network-Message-Id: 59dfac90-d898-46fb-a677-08d8dcf316f4 X-MS-Exchange-CrossTenant-AuthSource: DB7PR03MB4523.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Mar 2021 20:46:30.2485 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: bebe97c3-6438-442e-ade3-ff17aa50e733 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Qm8F4n0BG8CRM7KJwWoJjY/dKE+HSLeaiS21j0WOe/4FrF+6orJZnC7Qu3JftUW7bx4fOVclfwkC0MHGlqOOXA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBAPR03MB6408 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 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.102.4 at phobos.denx.de X-Virus-Status: Clean This updates sysinfo documentation to document that detect() must be called first. This allows drivers to cache information in detect() and perform (cheaper) retrieval in the other accessors. This also modifies the only instance where this sequencing was not followed. Signed-off-by: Sean Anderson Reviewed-by: Simon Glass --- common/spl/spl_fit.c | 4 ++++ include/sysinfo.h | 29 ++++++++++++++++++++--------- 2 files changed, 24 insertions(+), 9 deletions(-) diff --git a/common/spl/spl_fit.c b/common/spl/spl_fit.c index a6ad094e91..4d17582af5 100644 --- a/common/spl/spl_fit.c +++ b/common/spl/spl_fit.c @@ -116,6 +116,10 @@ static int spl_fit_get_image_name(const void *fit, int images, * no string in the property for this index. Check if the * sysinfo-level code can supply one. */ + rc = sysinfo_detect(sysinfo); + if (rc) + return rc; + rc = sysinfo_get_fit_loadable(sysinfo, index - i - 1, type, &str); if (rc && rc != -ENOENT) diff --git a/include/sysinfo.h b/include/sysinfo.h index 9386bdf49a..14c25fa15c 100644 --- a/include/sysinfo.h +++ b/include/sysinfo.h @@ -54,7 +54,8 @@ struct sysinfo_ops { * This operation might take a long time (e.g. read from EEPROM, * check the presence of a device on a bus etc.), hence this is not * done in the probe() method, but later during operation in this - * dedicated method. + * dedicated method. This method must be called before any other + * methods. * * Return: 0 if OK, -ve on error. */ @@ -67,7 +68,8 @@ struct sysinfo_ops { * @id: A unique identifier for the bool value to be read. * @val: Pointer to a buffer that receives the value read. * - * Return: 0 if OK, -ve on error. + * Return: 0 if OK, -ENOENT if called before @detect, else -ve on + * error. */ int (*get_bool)(struct udevice *dev, int id, bool *val); @@ -78,7 +80,8 @@ struct sysinfo_ops { * @id: A unique identifier for the int value to be read. * @val: Pointer to a buffer that receives the value read. * - * Return: 0 if OK, -ve on error. + * Return: 0 if OK, -ENOENT if called before @detect, else -ve on + * error. */ int (*get_int)(struct udevice *dev, int id, int *val); @@ -90,7 +93,8 @@ struct sysinfo_ops { * @size: The size of the buffer to receive the string data. * @val: Pointer to a buffer that receives the value read. * - * Return: 0 if OK, -ve on error. + * Return: 0 if OK, -ENOENT if called before @detect, else -ve on + * error. */ int (*get_str)(struct udevice *dev, int id, size_t size, char *val); @@ -98,7 +102,7 @@ struct sysinfo_ops { * get_fit_loadable - Get the name of an image to load from FIT * This function can be used to provide the image names based on runtime * detection. A classic use-case would when DTBOs are used to describe - * additionnal daughter cards. + * additional daughter cards. * * @dev: The sysinfo instance to gather the data. * @index: Index of the image. Starts at 0 and gets incremented @@ -120,6 +124,9 @@ struct sysinfo_ops { * * @dev: The device containing the information * + * This function must be called before any other accessor function for this + * device. + * * Return: 0 if OK, -ve on error. */ int sysinfo_detect(struct udevice *dev); @@ -131,7 +138,8 @@ int sysinfo_detect(struct udevice *dev); * @id: A unique identifier for the bool value to be read. * @val: Pointer to a buffer that receives the value read. * - * Return: 0 if OK, -ve on error. + * Return: 0 if OK, -ENOENT if called before sysinfo_detect(), else -ve on + * error. */ int sysinfo_get_bool(struct udevice *dev, int id, bool *val); @@ -142,7 +150,8 @@ int sysinfo_get_bool(struct udevice *dev, int id, bool *val); * @id: A unique identifier for the int value to be read. * @val: Pointer to a buffer that receives the value read. * - * Return: 0 if OK, -ve on error. + * Return: 0 if OK, -ENOENT if called before sysinfo_detect(), else -ve on + * error. */ int sysinfo_get_int(struct udevice *dev, int id, int *val); @@ -154,7 +163,8 @@ int sysinfo_get_int(struct udevice *dev, int id, int *val); * @size: The size of the buffer to receive the string data. * @val: Pointer to a buffer that receives the value read. * - * Return: 0 if OK, -ve on error. + * Return: 0 if OK, -ENOENT if called before sysinfo_detect(), else -ve on + * error. */ int sysinfo_get_str(struct udevice *dev, int id, size_t size, char *val); @@ -166,7 +176,8 @@ int sysinfo_get_str(struct udevice *dev, int id, size_t size, char *val); * function that returns the unique device. This is especially useful for use * in sysinfo files. * - * Return: 0 if OK, -ve on error. + * Return: 0 if OK, -ENOENT if called before sysinfo_detect(), else -ve on + * error. */ int sysinfo_get(struct udevice **devp); From patchwork Mon Mar 1 20:46:02 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sean Anderson X-Patchwork-Id: 1445755 X-Patchwork-Delegate: trini@ti.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=85.214.62.61; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=secospa.onmicrosoft.com header.i=@secospa.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-secospa-onmicrosoft-com header.b=4Hq6kocA; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4DqC4g6t4kz9sS8 for ; Tue, 2 Mar 2021 07:47:31 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 274C08204C; Mon, 1 Mar 2021 21:46:50 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=fail (p=none dis=none) header.from=seco.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (1024-bit key; unprotected) header.d=secospa.onmicrosoft.com header.i=@secospa.onmicrosoft.com header.b="4Hq6kocA"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 99CAE82016; Mon, 1 Mar 2021 21:46:40 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,FORGED_SPF_HELO,MSGID_FROM_MTA_HEADER,RCVD_IN_DNSWL_BLOCKED, SPF_HELO_PASS autolearn=no autolearn_force=no version=3.4.2 Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2062b.outbound.protection.outlook.com [IPv6:2a01:111:f400:7d00::62b]) (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 83AB0803AB for ; Mon, 1 Mar 2021 21:46:32 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=seco.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=sean.anderson@seco.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=OEi1WRb6w1/wGamW6feRgVvTNqVnULRIYuhXGkCRPZjy++loI7xNAUWwWA3hJ/G5ZPlUv22+WHXe/g/NSI0Ec/PPgMnLsq3x+gB/q5tyC36fK/NKwu5lm7aR+UzerqfSzC72w5O+xZFaveLK4otiOTn4Q+eI/9Gcs7tnKj2GMgtbuqbg0+jpVE0EPsaWX/0CkFjaWNbl8v4wjuKfbYMqYMMDU8qKy4twOauNRPiYX/tLhDZ0WyUZ4U9XWHTu4cfxtPe1IJn/Q5Twi3h+Ockq/IHv6VOCqLYNJnzJGeIX6Aq+mFLvzNgzNtVvhyVONPIblagEDQ2IgEPH4MDStGp3Bg== 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-SenderADCheck; bh=3mIoGit+6XQo1EzOiQnjhS3mdlXkmQSt9OAnaGtshAA=; b=HgpotlKDkEQs+NMBzunRK5Ca7bpo+DUOd/I8f8QS1Z3gbaZR35HNAcePBwDBY4FeJyS8dRH5MkhnGvzbS0DjcLv3A202qibBj+MYTvdEIZT0x75oF3jreGlepFtSx+PmR4cnk2SITf68PXTZuMyAcC8HxIRoVDKEhm4oQQbQk9tQZ8Oypliz3/T4ofthZLir/piwmST2kqevVnsqzluavO3X1heEldM0zoB8zx+ByDx+kFo1gsTTeLLL59jizNG8EmwdK1fD2DGdf1dLDAP6VMxi1aiZfnIPe6jtd7wtkG29txz2oXFOAsN7NGT2JIzvXwQ9Twl5uHR1wYIIRaq9ag== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=seco.com; dmarc=pass action=none header.from=seco.com; dkim=pass header.d=seco.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=secospa.onmicrosoft.com; s=selector2-secospa-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=3mIoGit+6XQo1EzOiQnjhS3mdlXkmQSt9OAnaGtshAA=; b=4Hq6kocAG/FOI7AfL/JQxWPQy0XkHXxOvGB4SjMXSrB2Cfns4piPxw5sQIiZN0FOC1fyD5TQ2mi+tR9OM5+eNURXpOq9MVM4wUu5kG5RgDZ22SRjI+JDO0pL6un/GLB5iQssnFCwpujaQUJCLo2bVcmTOgj7rbzPMo5hqBLP468= Authentication-Results: chromium.org; dkim=none (message not signed) header.d=none;chromium.org; dmarc=none action=none header.from=seco.com; Received: from DB7PR03MB4523.eurprd03.prod.outlook.com (2603:10a6:10:19::27) by DBAPR03MB6408.eurprd03.prod.outlook.com (2603:10a6:10:194::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3890.23; Mon, 1 Mar 2021 20:46:31 +0000 Received: from DB7PR03MB4523.eurprd03.prod.outlook.com ([fe80::941:c90c:b9da:2290]) by DB7PR03MB4523.eurprd03.prod.outlook.com ([fe80::941:c90c:b9da:2290%4]) with mapi id 15.20.3890.028; Mon, 1 Mar 2021 20:46:31 +0000 From: Sean Anderson To: Simon Glass , u-boot@lists.denx.de Cc: Sean Anderson , Bin Meng Subject: [PATCH 4/5] sysinfo: Add gpio-sysinfo driver Date: Mon, 1 Mar 2021 15:46:02 -0500 Message-Id: <20210301204603.2730666-5-sean.anderson@seco.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210301204603.2730666-1-sean.anderson@seco.com> References: <20210301204603.2730666-1-sean.anderson@seco.com> X-Originating-IP: [50.195.82.171] X-ClientProxiedBy: BL1PR13CA0207.namprd13.prod.outlook.com (2603:10b6:208:2be::32) To DB7PR03MB4523.eurprd03.prod.outlook.com (2603:10a6:10:19::27) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from plantagenet.inhand.com (50.195.82.171) by BL1PR13CA0207.namprd13.prod.outlook.com (2603:10b6:208:2be::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3912.11 via Frontend Transport; Mon, 1 Mar 2021 20:46:30 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 6f364f85-5c29-4fdd-c140-08d8dcf31822 X-MS-TrafficTypeDiagnostic: DBAPR03MB6408: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:4714; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: x7R+vLRvHhnHFMchxKugSINWr0eUGLk2ktnPS242ICGnaqLNv7s2yleZyd6mJRJbxT531nMXAlTZz8DjX0fi26EAi5+hXkgJmd8hVrojqIe1Ft3Q5EatKf2uFylHcvBYpWCARfeGYSgG209gi245ENL9T7pX6H37LJDK5Q40dm/bdUcgWcw7A6mCjMofv/naPOA1mrjYFgDxKF832WH7j8/lw6TWS6mLCqN3lqbb5jOjFtUMEEGRj14fffQz/FphodpVcL7yEmibpggpdBiivVhbFB1gFU5wLC4Zns5l6ORky5r8jWslIT7vaqiUfsXny+WgF+q/lfqt3wTxT1iciQxhJjRz8rjrvlXg5goujgOLWcXt0YnqUDV+UfNP990n8HaZQtGkjDRyc/szpwN3IrixVihhx2vZKA86mg64WcO/DMdQGjFQ3afqMj+W+zT+dMk07/V5sS5P5oAbYlMoJAh6bUxKQHtgHaiHG8KUf9S7zDfLRBhjPL0B9OUPmod5G8k8Nf11eT+JXTK+JHE+7Q== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB7PR03MB4523.eurprd03.prod.outlook.com; PTR:; CAT:NONE; SFS:(39840400004)(376002)(136003)(366004)(396003)(346002)(316002)(86362001)(478600001)(186003)(6512007)(6486002)(36756003)(26005)(1076003)(54906003)(16526019)(52116002)(83380400001)(6666004)(6506007)(956004)(66476007)(2616005)(66946007)(66556008)(5660300002)(2906002)(8676002)(4326008)(8936002)(44832011); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: UrUiD4eV0racVyUgwaWNpW0h5R1PFKXgRkxUavSiOyNQqV5UAfstLGzMqqnCLUnjnFEIFOMUzw1Tq4UmZuwb4p3BHFAaK/j31I+qLSnqFM8bOfy6o0QHTG7lY9gtf9szdN/Ti90Mx6DfTuAlVoulakdf/qD7E8QsrNLXxCbGpKVYFQjVFdjeYNo9w3KXJvQwWQrzJD9oCy5oGWsM4skjJAseHUrZICC5kLSZXll0QiWCdXzMg1bTD+td63Y4oyYsCSd0GRFWHzOlhxsKCgSgoO9CUYaH7DZT5aCr9Uh/zjwraT6N1VXYDc0OO5x+O3fzAAquUJnKRen6hVfCgvC2f6MYPNTLo6dlr03PwR+OT68FnWMMpTy+VW0YdXPHnxNOOc1qTEtmKuku80JL6puB/Gw0NPevIJpzXoGKgSj/1dhKocNSIUg6ZmoeM6YOwYOzgBXOQ4eWRFbv48w+0ui3vWCh2hI8g0nXpXG+6ZpwTqT/kl3d0a9Wz5p2qSAxRTR0DomCiGJkw8fE+pM/CN8hcFDi4Z5gIe5/7a7kfx5UJi7TOPYYGu36ntxYCcClvAfsw2JDUItRg15T8+DggyzYxi3WY90jaQQmV+v/6DNIAQ7LWCQ+xm0NO8YnBFKaPcLAtbwmg+2n9M+CkG+b2bSSZcW20TK5rJol8wJWhRJ+zuuoCacxtI36i9a0tRp1Gtr1bMLA2XLGG7le4/beFcw9P67qcerZi0k6R5+SaiMioQ10UIivE7nf8jotoEthqApuOugq5H2mZoc4h2CS8vQzT+aLFfeVmi7JUPYgS80ndBcPoYeh8G7aS4wLioDgzKTWlRHE1/lMWOJQV2xk46gkzyFplDfJ01gqMDuIDNni0z/gPQds5CSl5qdX44foWbYKNg76x2eR6GrFsab9WC3EIjAj+LoSMz0S5jHxvuSu6uOKdpn1fe4C5WlwG/GWAekeRPZ6F2RbbGu103jeN84oZAR7kOEp2bn0M0bhN1JISEJC1L2HEVa3KCl7tpwhOj39XgXpfBoVMt+SIOKLOQAgoYQu9Mipl65Qq2R1xnSh2w/PHUW3GN3Ew6N2WW5SZonE3GdoBtXVEUAp67u/AFkvqQxkTvK8jMIvI4GHKt7riVMfWOsZx/tZf4Byn0Gt/F4SDWsA8LY3/6tYUZ5lx8yv1atpurJTL2ia1zsiRpgvoskMz6n2ARG1JQp9LJfm14+PyqBYnCV9LerMpzhmH8EjlPFJr/gbEEGd1MmVglf17Ynb4Z64tfmRLAWAf/ouo+ixv3/Z4q4FCkkkHxU2Uhrp0Xo3wRYvnHiwy6+QsnLATnvNb5lpO76cwoMfn8R032fC X-OriginatorOrg: seco.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6f364f85-5c29-4fdd-c140-08d8dcf31822 X-MS-Exchange-CrossTenant-AuthSource: DB7PR03MB4523.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Mar 2021 20:46:31.5928 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: bebe97c3-6438-442e-ade3-ff17aa50e733 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 3x/tCXfUgg6cZQq6S5JY5G5Lqx4wV/ghvKspTmTPVJUtia/o4jMwhvr17nAYwGLSH6sx33j9iK3NfQqmmlQrwA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBAPR03MB6408 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 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.102.4 at phobos.denx.de X-Virus-Status: Clean This uses the newly-added dm_gpio_get_values_as_int_base3 function to implement a sysinfo device. The revision map is stored in the device tree. Signed-off-by: Sean Anderson Reviewed-by: Simon Glass --- .../sysinfo/gpio-sysinfo.txt | 37 +++++ drivers/sysinfo/Kconfig | 8 + drivers/sysinfo/Makefile | 1 + drivers/sysinfo/gpio.c | 138 ++++++++++++++++++ 4 files changed, 184 insertions(+) create mode 100644 doc/device-tree-bindings/sysinfo/gpio-sysinfo.txt create mode 100644 drivers/sysinfo/gpio.c diff --git a/doc/device-tree-bindings/sysinfo/gpio-sysinfo.txt b/doc/device-tree-bindings/sysinfo/gpio-sysinfo.txt new file mode 100644 index 0000000000..b5739d94e9 --- /dev/null +++ b/doc/device-tree-bindings/sysinfo/gpio-sysinfo.txt @@ -0,0 +1,37 @@ +GPIO-based Sysinfo device + +This binding describes several GPIOs which specify a board revision. Each GPIO +forms a digit in a ternary revision number. This revision is then mapped to a +name using the revisions and names properties. + +Each GPIO may be floating, pulled-up, or pulled-down, mapping to digits 2, 1, +and 0, respectively. The first GPIO forms the least-significant digit of the +revision. For example, consider the property + + gpios = <&gpio 0>, <&gpio 1>, <&gpio 2>; + +If GPIO 0 is pulled-up, GPIO 1 is pulled-down, and GPIO 2 is floating, then the +revision would be + + 0t201 = 2*9 + 0*3 + 1*3 = 19 + +If instead GPIO 0 is floating, GPIO 1 is pulled-up, and GPIO 2 is pulled-down, +then the revision would be + + 0t012 = 0*9 + 1*3 + 2*1 = 5 + +Required properties: +- compatible: should be "gpio-sysinfo". +- gpios: should be a list of gpios forming the revision number, + least-significant-digit first +- revisions: a list of known revisions; any revisions not present will have the + name "unknown" +- names: the name of each revision in revisions + +Example: +sysinfo { + compatible = "gpio-sysinfo"; + gpios = <&gpio_a 15>, <&gpio_a 16>, <&gpio_a 17>; + revisions = <19>, <5>; + names = "rev_a", "foo"; +}; diff --git a/drivers/sysinfo/Kconfig b/drivers/sysinfo/Kconfig index 85c1e81e41..381dcd8844 100644 --- a/drivers/sysinfo/Kconfig +++ b/drivers/sysinfo/Kconfig @@ -30,4 +30,12 @@ config SYSINFO_SMBIOS one which provides a way to specify this SMBIOS information in the devicetree, without needing any board-specific functionality. +config SYSINFO_GPIO + bool "Enable gpio sysinfo driver" + help + Support querying gpios to determine board revision. This uses gpios to + form a ternary number (when they are pulled-up, -down, or floating). + This ternary number is then mapped to a board revision name using + device tree properties. + endif diff --git a/drivers/sysinfo/Makefile b/drivers/sysinfo/Makefile index 6d04fcba1d..d9f708b7ea 100644 --- a/drivers/sysinfo/Makefile +++ b/drivers/sysinfo/Makefile @@ -4,5 +4,6 @@ # Mario Six, Guntermann & Drunck GmbH, mario.six@gdsys.cc obj-y += sysinfo-uclass.o obj-$(CONFIG_SYSINFO_GAZERBEAM) += gazerbeam.o +obj-$(CONFIG_SYSINFO_GPIO) += gpio.o obj-$(CONFIG_SYSINFO_SANDBOX) += sandbox.o obj-$(CONFIG_SYSINFO_SMBIOS) += smbios.o diff --git a/drivers/sysinfo/gpio.c b/drivers/sysinfo/gpio.c new file mode 100644 index 0000000000..6a0eff3ec9 --- /dev/null +++ b/drivers/sysinfo/gpio.c @@ -0,0 +1,138 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright (C) 2021 Sean Anderson + */ + +#include +#include +#include +#include +#include +#include + +struct sysinfo_gpio_priv { + struct gpio_desc *gpios; + int gpio_num, revision; +}; + +static int sysinfo_gpio_detect(struct udevice *dev) +{ + struct sysinfo_gpio_priv *priv = dev_get_priv(dev); + + priv->revision = dm_gpio_get_values_as_int_base3(priv->gpios, + priv->gpio_num); + return priv->revision < 0 ? priv->revision : 0; +} + +static int sysinfo_gpio_get_int(struct udevice *dev, int id, int *val) +{ + struct sysinfo_gpio_priv *priv = dev_get_priv(dev); + + switch (id) { + case SYSINFO_ID_REVISION: + if (priv->revision < 0) { + return priv->revision; + *val = priv->revision; + return 0; + default: + return -EINVAL; + }; +} + +static int sysinfo_gpio_get_str(struct udevice *dev, int id, size_t size, char *val) +{ + struct sysinfo_gpio_priv *priv = dev_get_priv(dev); + + switch (id) { + case SYSINFO_ID_REVISION: { + const char *name = NULL; + int i, ret; + u32 revision; + + if (priv->revision < 0) + return priv->revision; + + for (i = 0; i < priv->gpio_num; i++) { + ret = dev_read_u32_index(dev, "revisions", i, + &revision); + if (ret) { + if (ret != -EOVERFLOW) + return ret; + break; + } + + if (revision == priv->revision) { + ret = dev_read_string_index(dev, "names", i, + &name); + if (ret < 0) + return ret; + break; + } + } + if (!name) + name = "unknown"; + + strncpy(val, name, size); + val[size - 1] = '\0'; + return 0; + } default: + return -EINVAL; + }; +} + +static const struct sysinfo_ops sysinfo_gpio_ops = { + .detect = sysinfo_gpio_detect, + .get_int = sysinfo_gpio_get_int, + .get_str = sysinfo_gpio_get_str, +}; + +static int sysinfo_gpio_probe(struct udevice *dev) +{ + int ret; + struct sysinfo_gpio_priv *priv = dev_get_priv(dev); + + priv->gpio_num = gpio_get_list_count(dev, "gpios"); + if (priv->gpio_num < 0) { + dev_err(dev, "could not get gpios length (err = %d)\n", + priv->gpio_num); + return priv->gpio_num; + } + + priv->gpios = calloc(priv->gpio_num, sizeof(*priv->gpios)); + if (!priv->gpios) { + dev_err(dev, "could not allocate memory for %d gpios\n", + priv->gpio_num); + return -ENOMEM; + } + + ret = gpio_request_list_by_name(dev, "gpios", priv->gpios, + priv->gpio_num, GPIOD_IS_IN); + if (ret != priv->gpio_num) { + dev_err(dev, "could not get gpios (err = %d)\n", + priv->gpio_num); + return ret; + } + + if (!dev_read_bool(dev, "revisions") || !dev_read_bool(dev, "names")) { + dev_err(dev, "revisions or names properties missing\n"); + return -ENOENT; + } + + priv->revision = -ENOENT; + + return 0; +} + +static const struct udevice_id sysinfo_gpio_ids[] = { + { .compatible = "gpio-sysinfo" }, + { /* sentinel */ } +}; + +U_BOOT_DRIVER(sysinfo_gpio) = { + .name = "sysinfo_gpio", + .id = UCLASS_SYSINFO, + .of_match = sysinfo_gpio_ids, + .ops = &sysinfo_gpio_ops, + .priv_auto = sizeof(struct sysinfo_gpio_priv), + .probe = sysinfo_gpio_probe, +}; From patchwork Mon Mar 1 20:46:03 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sean Anderson X-Patchwork-Id: 1445754 X-Patchwork-Delegate: trini@ti.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=85.214.62.61; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=secospa.onmicrosoft.com header.i=@secospa.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-secospa-onmicrosoft-com header.b=NCdYn6E7; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4DqC4V23l3z9sS8 for ; Tue, 2 Mar 2021 07:47:22 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 00D7A81F5E; Mon, 1 Mar 2021 21:46:45 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=fail (p=none dis=none) header.from=seco.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (1024-bit key; unprotected) header.d=secospa.onmicrosoft.com header.i=@secospa.onmicrosoft.com header.b="NCdYn6E7"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 993EB81FD5; Mon, 1 Mar 2021 21:46:39 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,FORGED_SPF_HELO,MSGID_FROM_MTA_HEADER,RCVD_IN_DNSWL_BLOCKED, SPF_HELO_PASS autolearn=no autolearn_force=no version=3.4.2 Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on20630.outbound.protection.outlook.com [IPv6:2a01:111:f400:7d00::630]) (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 1AED281E9E for ; Mon, 1 Mar 2021 21:46:34 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=seco.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=sean.anderson@seco.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=kQs3bTUXz+dUSogeWCKEzYmJS7o4SDv47m1d/m2nnZUCY4DUxY0EtE+ZGVBQ4US1xCdYuMMFMXvz6MP6OEDBTCkjEUrQywxF99ipYMHmySXSq+FU1MoHC0yFGJUerFuUp1xerAep58NA2UR3RP8b96kFnAjMrWp7VXSChx8qNKSckOITtGZaMIFGRrq33x3pQAbEbhG9h14an/SGxcKAL5Du67qoXvaDnHWwzx/rErA3srTU3ahhKmO9xmvf4s9qUgogl+7lXMihVJpbHdsHFLk6d4KocL8ddMc/PNXo4S3B7Tg/JcCT3qdU1J7N3qUZaV6YRcmXfKQbjtD2wd0t9Q== 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-SenderADCheck; bh=7O2fbI/cjdXNG75cVgyMWKr+fgQohGvOXSfP3CuoHU0=; b=QrSM4jSCYZAEUpzjLiG7b15H+H8lk/FJ0ItnrFoL1FUNRLFNpAHeBlrQYCPwZp2+SwkVGOszesUQhLXuAdX0Ow4vp2xREGYxkZ8w/ND7YfiDN9R/VgvEWHuGRaG9ZakwBOelQMIiiEEspPuTuEKedK8OyeuaTmmW2EwBb0xn6ZdRWeQeGHZdIqKfVpPw/3sCjH8SjL7YP4qeLkipaAaB7tP7bYL49CCBkiEoGBEGXKJu7bEPSDj06PR+lEEXT2yH6omtjUh8s9q2jA24ZBe9uGYCRvwBOXS96gC+59rVBf3NO8qHrx5phhU0bfw2lo9EHsQtamUENl7CwW6Gitt2Mw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=seco.com; dmarc=pass action=none header.from=seco.com; dkim=pass header.d=seco.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=secospa.onmicrosoft.com; s=selector2-secospa-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=7O2fbI/cjdXNG75cVgyMWKr+fgQohGvOXSfP3CuoHU0=; b=NCdYn6E7N1e0RVqFpLWqjD13/a9K1i3oauUNwAJsFQuBue/s2E8sghD9kmgafC0M9BtC7pWzyJu0kqpYZEJfP3Z75JxkTkaSFRFf26MTKrLxuySzZ0gshgXVqw6x0EdMP9BIvOBtETpWpijjmIPXvY9Ci4eOgf0P0faZ4BIsXC0= Authentication-Results: chromium.org; dkim=none (message not signed) header.d=none;chromium.org; dmarc=none action=none header.from=seco.com; Received: from DB7PR03MB4523.eurprd03.prod.outlook.com (2603:10a6:10:19::27) by DBAPR03MB6408.eurprd03.prod.outlook.com (2603:10a6:10:194::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3890.23; Mon, 1 Mar 2021 20:46:33 +0000 Received: from DB7PR03MB4523.eurprd03.prod.outlook.com ([fe80::941:c90c:b9da:2290]) by DB7PR03MB4523.eurprd03.prod.outlook.com ([fe80::941:c90c:b9da:2290%4]) with mapi id 15.20.3890.028; Mon, 1 Mar 2021 20:46:33 +0000 From: Sean Anderson To: Simon Glass , u-boot@lists.denx.de Cc: Sean Anderson , Bin Meng , Dario Binacchi , Etienne Carriere , Jean-Jacques Hiblot , Patrick Delaunay , Philippe Reynes , Wolfgang Wallner Subject: [PATCH 5/5] test: Add gpio-sysinfo test Date: Mon, 1 Mar 2021 15:46:03 -0500 Message-Id: <20210301204603.2730666-6-sean.anderson@seco.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210301204603.2730666-1-sean.anderson@seco.com> References: <20210301204603.2730666-1-sean.anderson@seco.com> X-Originating-IP: [50.195.82.171] X-ClientProxiedBy: BL1PR13CA0207.namprd13.prod.outlook.com (2603:10b6:208:2be::32) To DB7PR03MB4523.eurprd03.prod.outlook.com (2603:10a6:10:19::27) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from plantagenet.inhand.com (50.195.82.171) by BL1PR13CA0207.namprd13.prod.outlook.com (2603:10b6:208:2be::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3912.11 via Frontend Transport; Mon, 1 Mar 2021 20:46:32 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 388d8260-e62f-4e08-6fe0-08d8dcf3194c X-MS-TrafficTypeDiagnostic: DBAPR03MB6408: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:431; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: CANK2cuOoMlLrSFU50fI+fP+RdvU+iIE/uNpvu+7lE11VBc9DbUksSkU7EvKEAshSEl0YCstnW6tv/Whm7IiCoVIvzowYQ6jVIeFkEDfUyz2pH+utgxAft7wGTFLQcrjpgbT5BB6ybjiD8EBI4G4esL3fQczBmyBS/MQSDC0yRUtfvEVqUM0ZV87zkC+NAq005FZUa331iCvbrvpGnR6VDBPZrFknIMQWbLZyeQMkdCmgiH9nTgik3Q2NIyYJuT7/a8BHhgRK9OoDZmss7qigTv7dTwQIR6Rp4ui1IhKyWtkoSLyi9E9COFDMMfqcJtkuJNSiLwDwN8uLT5E2X3EollzWQBF1Iy3+/WfuQbo9QuplqSR0rBHXolxR2GfFzM4eA2xIN2b4HFYyQOidf6oZz1mW7tQuD5fr2nuwjIKuQM5RUe2zpwIpd2goEV2WzfYW0H/XCohqooFN92rO1d3O4DEX6jajxgtCveSnm9M1bKf0RafGNxy8KwUehP27O1h6Gd5jzoS9aHgA7y2QRxTBg== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB7PR03MB4523.eurprd03.prod.outlook.com; PTR:; CAT:NONE; SFS:(39840400004)(376002)(136003)(366004)(396003)(346002)(316002)(86362001)(478600001)(186003)(6512007)(6486002)(36756003)(26005)(1076003)(54906003)(16526019)(52116002)(83380400001)(6666004)(6506007)(956004)(66476007)(2616005)(66946007)(66556008)(5660300002)(2906002)(8676002)(4326008)(8936002)(44832011); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: OwQb62FeKqyUroSm/Kbe3KQui0iID+yOFIDHVC9vm3dFeeRegffk5eKqwtrk7rYt50aZbP5ftkSd+kOYoSLc92qHUNvGTJigyIzKKg1w+lLAJCu1AN09AyhTTh0I/NCD6jSqY0VH6ijmW/OfokaEmsUTKkWI5bWfbbrPwlmBMM1f8okUmHtP3AlLhmwghgzm+2DaMFhDpgchjm0RCuYA7jlmeMYaGs5yQgXCAqxjps3YDccqFwg8MVgekOvVDCKkK2pAPQwtpFtE8z3lFONEyAKHEFaWpsad0kFGUeLWxL/akb9vvabaMzJUNUnEklQo99gcHSnN3/8TUXeg4IvZ7fISZMra6TLPytCejDP6KtalbOBGzc1qupUhbLpdoB9EWc8gdwbsmFB35wvHkSJb7szd1Un50e1irAM+e+yiAy5SDphvcTnQaAoKa1eDXOXMX2d3evsGo6jX+Q0ik4JtPHpG8diYLRYDfHrDv4zuB3gfvI8MDiY0mmyr5vH/37o8ElcW6xSQrSD4jsjj1U3zbYIhdUI0FJVMIk9D2IngVWZuZpmCUzM85UOpx1KeKhrV+xxg/YABL4kl09v+0wWZymhHOhMxc6sw8jMFRzonbCUv3/MGbpSlOGtvSwdg9BeG5QGmfpIog5FGFAQJN7rFzLgYtjF0M8P7MOqdhnj4NkVJkXtT36RIfYnZ7Y+crB4H+LoIKE+fBrZCwdx9oNf+42/eYgSDr+vSdwuD0HEGWWhUGedZnpgzAT9GRZH/OjWr1RqICR7yqS7Km2zrHiwkhAvjFCHIK+dNiMnwczn0CbwyrkRd/9VLKJC1p8NIK3PNv+Z53q2AK0hhOkCqdE/et0qCM0YrZLTVz3yI8ImfQ8uFkDpfwHC4IiB5eJNjUZargkjYtYDnGVSQYodv7Pwv1/V/DS81eZxHf4RxESH6UJRvFTX5IgTNq/hrApw5Dz/TUoERr4fYh+14WSSDOIf4n9D2sk/9JCEINi5ydhEiweIZv5AoNynNX24nvBFbRGiqIwnFxjgGu5DWhGJJtL2FkWrFyDo0b/mLHCmEWyH3eIhCGpJC366x3cWJ7aRH+bbaH0na0PxYraOiBZnWgOg4MPrKzfrfTWha0FCYBZJHhknfuvM0tngTF5+mV1gSu6OQkvupV90e18ar2SIRsEFGZTeEAA1Wqdl4QhW1rwMABxLzp4aYXV94oK6WuQ/WW8tvzoyAOydtgswmgow74ZH5cBBbxkfxGe6FZnNJih6e7Gbpk3yy2M2DxnV4f9o3NJxC4kHEK4AvKUIY9DGdadzEUr0rIjyT0y0ASMXqUgS0ijjVe72o7ivcPgnf+Y4x+qzM X-OriginatorOrg: seco.com X-MS-Exchange-CrossTenant-Network-Message-Id: 388d8260-e62f-4e08-6fe0-08d8dcf3194c X-MS-Exchange-CrossTenant-AuthSource: DB7PR03MB4523.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Mar 2021 20:46:33.3817 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: bebe97c3-6438-442e-ade3-ff17aa50e733 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: r+9TTibfl0b3qsay6UtUdxVn09SfKYH5RWmwfpOxz69GiL/4TX93xIpFOWyMcKGE/3w4sErRxlRfrNTesG8nDw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBAPR03MB6408 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 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.102.4 at phobos.denx.de X-Virus-Status: Clean This adds a test for the gpio-sysinfo driver. Signed-off-by: Sean Anderson Reviewed-by: Simon Glass --- arch/sandbox/dts/test.dts | 7 ++++ test/dm/Makefile | 1 + test/dm/sysinfo-gpio.c | 69 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 77 insertions(+) create mode 100644 test/dm/sysinfo-gpio.c diff --git a/arch/sandbox/dts/test.dts b/arch/sandbox/dts/test.dts index e95f4631bf..6137061d7a 100644 --- a/arch/sandbox/dts/test.dts +++ b/arch/sandbox/dts/test.dts @@ -1340,6 +1340,13 @@ compatible = "sandbox,sysinfo-sandbox"; }; + sysinfo-gpio { + compatible = "gpio-sysinfo"; + gpios = <&gpio_a 15>, <&gpio_a 16>, <&gpio_a 17>; + revisions = <19>, <5>; + names = "rev_a", "foo"; + }; + some_regmapped-bus { #address-cells = <0x1>; #size-cells = <0x1>; diff --git a/test/dm/Makefile b/test/dm/Makefile index e70e50f402..2ba81ee76b 100644 --- a/test/dm/Makefile +++ b/test/dm/Makefile @@ -93,5 +93,6 @@ obj-$(CONFIG_SCMI_FIRMWARE) += scmi.o ifneq ($(CONFIG_PINMUX),) obj-$(CONFIG_PINCONF) += pinmux.o endif +obj-$(CONFIG_SYSINFO_GPIO) += sysinfo-gpio.o endif endif # !SPL diff --git a/test/dm/sysinfo-gpio.c b/test/dm/sysinfo-gpio.c new file mode 100644 index 0000000000..a700352ff8 --- /dev/null +++ b/test/dm/sysinfo-gpio.c @@ -0,0 +1,69 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright (C) 2021 Sean Anderson + */ + +#include +#include +#include +#include +#include +#include +#include +#include + +static int dm_test_sysinfo_gpio(struct unit_test_state *uts) +{ + char buf[64]; + int val; + struct udevice *sysinfo, *gpio; + + ut_assertok(uclass_get_device_by_name(UCLASS_SYSINFO, "sysinfo-gpio", + &sysinfo)); + ut_assertok(uclass_get_device_by_name(UCLASS_GPIO, "base-gpios", &gpio)); + + /* + * Set up pins: pull-up (1), pull-down (0) and floating (2). This should + * result in digits 2 0 1, i.e. 2 * 9 + 1 * 3 = 19 + */ + sandbox_gpio_set_flags(gpio, 15, GPIOD_EXT_PULL_UP); + sandbox_gpio_set_flags(gpio, 16, GPIOD_EXT_PULL_DOWN); + sandbox_gpio_set_flags(gpio, 17, 0); + ut_assertok(sysinfo_detect(sysinfo)); + ut_assertok(sysinfo_get_int(sysinfo, SYSINFO_ID_REVISION, &val)); + ut_asserteq(19, val); + ut_assertok(sysinfo_get_str(sysinfo, SYSINFO_ID_REVISION, sizeof(buf), + buf)); + ut_asserteq_str("rev_a", buf); + + /* + * Set up pins: floating (2), pull-up (1) and pull-down (0). This should + * result in digits 0 1 2, i.e. 1 * 3 + 2 = 5 + */ + sandbox_gpio_set_flags(gpio, 15, 0); + sandbox_gpio_set_flags(gpio, 16, GPIOD_EXT_PULL_UP); + sandbox_gpio_set_flags(gpio, 17, GPIOD_EXT_PULL_DOWN); + ut_assertok(sysinfo_detect(sysinfo)); + ut_assertok(sysinfo_get_int(sysinfo, SYSINFO_ID_REVISION, &val)); + ut_asserteq(5, val); + ut_assertok(sysinfo_get_str(sysinfo, SYSINFO_ID_REVISION, sizeof(buf), + buf)); + ut_asserteq_str("foo", buf); + + /* + * Set up pins: floating (2), pull-up (1) and pull-down (0). This should + * result in digits 1 2 0, i.e. 1 * 9 + 2 * 3 = 15 + */ + sandbox_gpio_set_flags(gpio, 15, GPIOD_EXT_PULL_DOWN); + sandbox_gpio_set_flags(gpio, 16, 0); + sandbox_gpio_set_flags(gpio, 17, GPIOD_EXT_PULL_UP); + ut_assertok(sysinfo_detect(sysinfo)); + ut_assertok(sysinfo_get_int(sysinfo, SYSINFO_ID_REVISION, &val)); + ut_asserteq(15, val); + ut_assertok(sysinfo_get_str(sysinfo, SYSINFO_ID_REVISION, sizeof(buf), + buf)); + ut_asserteq_str("unknown", buf); + + return 0; +} +DM_TEST(dm_test_sysinfo_gpio, UT_TESTF_SCAN_PDATA | UT_TESTF_SCAN_FDT);