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 X-Spam-Level: X-Spam-Status: No, score=-15.3 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,MSGID_FROM_MTA_HEADER,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id C274DC4338F for ; Mon, 9 Aug 2021 16:41:32 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id AD1CF60F38 for ; Mon, 9 Aug 2021 16:41:31 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org AD1CF60F38 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=seco.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=lists.denx.de Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 68D3B82916; Mon, 9 Aug 2021 18:41:29 +0200 (CEST) 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="aU15MEl4"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id A6C8482916; Mon, 9 Aug 2021 18:41:27 +0200 (CEST) Received: from EUR02-HE1-obe.outbound.protection.outlook.com (mail-he1eur02on0602.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe05::602]) (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 43381821F0 for ; Mon, 9 Aug 2021 18:41:24 +0200 (CEST) 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=gbTxIkbL0oZTWj2cRE1KcX6iqjgG5hh6wKuyGwAEE8V83OgooCyInf49EFdtdNz7Uf/EbG94JfNfXA1AZ6zKORvxbnVp4V0145/mGmlajANnwYoA2hXrLrEcfjLHXOXuMfWB3LeviP/67yb28nOVlKOk7rstwAARbkcl55hkkcZixOETWEjq+tBjkYKA5KJ032gk8rfddtA/wcdFoMwRy9slvK5qm3c60jLlcJq8UUlvO/wvpk/iD+CGXi1TgzKJe94pikcReJH6MDOxYB00uYwM46Cx12Or5SuIJQEWe5sxxw8Eu6rvkhV0i/TJdLWBCQCkxQLnrOA9nMYBecSEdA== 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=y9CyU7KiFIsKKIZLH7QWRtFK9C5KU84PQKO29dwBgJo=; b=ONtpmzKcK0bL1iZUh0l9rrgMhouOZNDSQDJT+D+irNBOgh59dpHyxc0m2pZKsbCfi52gDXwFTxXXX4EpAqf9i06fK8eGLCWTWxDBJq9L3S5mSfDZwfwdIioCwRBRfQtxbgXf7wXVfpCmok0CJ1moZYV1CNYvhU5wBayzm6KaQKMSQxelgUqRZmztrTrWlgyYAVPU3vYQF6u0/xHRp697p5a9ecKHOOZ6ymMJO6scnRkcLI9piOSoik0ItFGnp8LtHp0O0+2Y00J+kVa76aVk4/rRfD7GzulCyRY/kSlLlku10AZ4q4dStVuhdD0+7AIFODTL7LfcfnFdg/3+xI6l8g== 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=y9CyU7KiFIsKKIZLH7QWRtFK9C5KU84PQKO29dwBgJo=; b=aU15MEl4Ksvl3AdufqsNwVtGlnjURFp7qNuRb1t9fSMOKbnQRbXsqbydoK668y4SLtup+psVCR1ARYxBjPkdb4O08DvGot3i82oec9Br0wdkG/5m0dCWjv1u4DXCgdQ+pON4SU5DciXp5OPcScBCSmFGMn4EOLWDwqk7/xrprvM= Authentication-Results: konsulko.com; dkim=none (message not signed) header.d=none;konsulko.com; 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.4394.19; Mon, 9 Aug 2021 16:41:22 +0000 Received: from DB7PR03MB4523.eurprd03.prod.outlook.com ([fe80::dc6c:815b:2062:d1f1]) by DB7PR03MB4523.eurprd03.prod.outlook.com ([fe80::dc6c:815b:2062:d1f1%7]) with mapi id 15.20.4394.023; Mon, 9 Aug 2021 16:41:22 +0000 Subject: Re: [PATCH 09/12] clk: Rename clk_get_by_driver_info() To: Simon Glass , U-Boot Mailing List Cc: Tom Rini References: <20210807132413.3513724-1-sjg@chromium.org> <20210807132413.3513724-10-sjg@chromium.org> From: Sean Anderson Message-ID: Date: Mon, 9 Aug 2021 12:41:17 -0400 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 In-Reply-To: <20210807132413.3513724-10-sjg@chromium.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-ClientProxiedBy: MN2PR10CA0009.namprd10.prod.outlook.com (2603:10b6:208:120::22) To DB7PR03MB4523.eurprd03.prod.outlook.com (2603:10a6:10:19::27) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from [172.27.1.65] (50.195.82.171) by MN2PR10CA0009.namprd10.prod.outlook.com (2603:10b6:208:120::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4394.16 via Frontend Transport; Mon, 9 Aug 2021 16:41:21 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: b54d3386-050b-495f-caed-08d95b548518 X-MS-TrafficTypeDiagnostic: DBAPR03MB6408: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:4125; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: NFWVQxz7TLff00ssaVpCpeO4/4oMURk0y2p6Zio1COUZ8Dm/zzaa1dRdDb5sH+i6sI93LXzum0V/gku2xfGV2NBZXZM3UqrsnUMZf5HtgxGur3Y5CMPbBA+M8Tm9fHDjQRqHbNvNmgbjD2vyb74+uV9p32YH6mX+YKjF0DL1XO5bL5L2UwtwNxXk6SEl9HHJ3lUz4d/lF+4rEyxNj4U8TpkvfSlY8p/g7GPw3oCuaZsaFgRyBpdWBtQZEI1JadMjC6YfIVk+5D1dJ5WNCw7smijRgQgES/3KCkts2qGadehw6RKTt0BNKqbL0CX84z26iB/1nfTYx5Qb/1linlu/9zxgJQ4fUi0HG3XMV6jLJOQNJnMeaUwf8t7AkDk7RtrV7TeM+6q1tJhx9UawAoaqJJd7Awd0uf9wXB7X7H0IM3JnEO2mAu8D/Kjp36vs3wNZSrIDAFJuu/hX8KmReQ9CrWQ6+fQyAgQFhIUyGq/gCNXX37AGgwiXkJhv8MI/3sHitNoAR0OoCobmHBCWA9+7B8bCK63hWuFzJ31sVrZywRp+bd/OOBUEu0z5VucSBil29IaxVEzPjgjYW/3nmyaIslCp6PTkjiF9B/nm9ug21MP6JI+RF09jU7RUqDmroiv0cQKLZEE1vcCzAtqk95/mzooXa7SUTjjZ0LyvwovJ2gk53v05OMOH1e3rj5TE28KbVbWnTXA7VdnZ4Yn89kKzNrVyzHKBisSZcdM5l238OaYHPdrZKXeg8YaPzIO7NyuYlxYjQCU+whOQTFTEVmx8rw== 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:(136003)(396003)(366004)(376002)(346002)(39830400003)(4326008)(6486002)(5660300002)(6666004)(52116002)(83380400001)(38350700002)(38100700002)(44832011)(31686004)(478600001)(26005)(31696002)(2906002)(8676002)(66476007)(66946007)(956004)(66556008)(186003)(53546011)(86362001)(2616005)(316002)(16576012)(110136005)(8936002)(36756003)(43740500002)(45980500001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?b2RrYXlNMVg4eTdBb2w1UGx5dWRiUHhNL0RvQ3JiWXA1bTYybkxkUDRNd2Zh?= =?utf-8?B?RFdXWHo4cjlEZjY0a1NhQklrcUwvcUNBTmo2cEY1QUwxNXBQR1BlWTB4clVZ?= =?utf-8?B?YWQwdWVERzlUTVVkQTB6MENzTTEzNHlIVG1BbUZLOVlVcHI5QVd0MlAxVUJO?= =?utf-8?B?MmFCMnhRMllQcFRRcDNZeWtWTy80YzY2L2FwSDBUZzA0YUlJdENndWtaU1Qz?= =?utf-8?B?cGtQQXNPZVQrM2dxRXNzMmJpMmxQS1VOdEZwTGJPUDZJd2tmWnRBYU51cTBa?= =?utf-8?B?SHFienVlWW5YVTR2cHp3ejRhdEJiSDJPRHBpYjJNWk10SktoaGRCRml6VERh?= =?utf-8?B?WlFWdVk1MTRVQXR3c0VxcU51b2p1ZC9vU2JwMHRNOHlKbmJRUFBzM0NVb2hD?= =?utf-8?B?ZEsydEttMFFrVDlKMmxWSGxIYm5YbUt1cEdzMjVDcC9kenhpV3FZVUVrRW1a?= =?utf-8?B?Z1d5bUpZeUhSVVhGalo2N2hrQkV1ZksvaTRCZXJRRVVucEMwY3ZaMloveVZa?= =?utf-8?B?N2p2Tm1WdUg5V3lOTndsV2hxdVVua0tsbXJEVWdSd1RHenZ4Z2RlTjByM0Zp?= =?utf-8?B?eVp6ZEhRT2pTSTNFYVlRd01OMVJvd3hJeXppSUxHSDR2TXZQZzdLWklsRHlp?= =?utf-8?B?a2I4OFZ4ODBNNU5nTzhxMGhoR21wck1HQlIyQjFiSWlnWHBUSUJVelFINGxo?= =?utf-8?B?dGhXcnRGMDgrcE9abWI3TTNlYkM5a05JeVZ2MU9sQnB2cHBtdGpFSHBLQ2NO?= =?utf-8?B?SDM1NTZYSlJRZnZGVGlveVBjbE9mbXRkcWJCRnZocjk4aGVJYXI0bEFLMUFE?= =?utf-8?B?N3J4OFdtSTlydXF6YlNhSnV3UnVIeENRWXlrcXJYMkkzNkU1blMvMDBzUnQy?= =?utf-8?B?dE5ubzZXejBIK3gwRDZkZzh4alI4Z3VyczVobGU4N1ViS0VDWDI3b1d1ZWFI?= =?utf-8?B?dTZBcDV3UjQ5a1JhdjdXRVVHOWZpNlJ2K3l1UjdNTUxDdmxNdTc1Z2ZUSFd0?= =?utf-8?B?S1liQVJDYUtRa2M3cytMSDZobkRCdmhQNm1uTnFGRDJ6R2RORkZjb05BTTNt?= =?utf-8?B?cS9Xb1FYQ3N2QUwwb2NIZEI5a1J6eEdJR2JEdWVibEJla29DUWYvcml5QUc5?= =?utf-8?B?SjlscnRralVwUEF6Q0FhOHZFZEFsdlU0UFpDRFh1MFVtZG9IaWxvMUtCSlpl?= =?utf-8?B?ck5IUEhLRk5Tai8reHV1eHRTejZORHN5Z2RlbXBmOTBJYzZIbGc5QWxNRzNL?= =?utf-8?B?dW9VVUg1MzNtcGE0SnI3YXY5VGF4MXl3SlB3RkwrNHJjK29JdDB3M2lKMUZn?= =?utf-8?B?ZS9TSXl5d2NqMEdtaEpqS3FaVDExWkFvS0FOK3ZrdGFrbDF4TU5KbVBaclND?= =?utf-8?B?a3RpdWwwWk1xS3RYNHpDM2ZCbkhEZFc4ajlML0U3VDVNYzVFZERpaVdHaHYw?= =?utf-8?B?V1plbkgzRnI1ck1UZWZUWmN1eUFiK0F1THBMZ2ZleDN2ZmxJQ1dPd3ZvOGZY?= =?utf-8?B?cUZQZVNENnpsbkZwd2pFeHl3akphelhqVUgzYWJFbVFRajR0SFo3cTV6K1Yx?= =?utf-8?B?ZndVdUlFR2U1VHBwb0Nqenl1VWdJNlArTmdKOSt4MjNKTmJDQ3g0VnpIM1pK?= =?utf-8?B?eTVJcDZmaGcxc0JBNG5nbW1iWFNSZUt1OWZKQzJ3NWZHbkUxWEpmeCt1YnRP?= =?utf-8?B?d1R6ZU4xc21VbmlDS0JWa2hCaVdnd3hERktjZ2VCM0lzazlXRnJBWnFGRWRH?= =?utf-8?Q?TFWaRKtCe8mkfllDxGJjdTmP69zHfxzdTgP/hXn?= X-OriginatorOrg: seco.com X-MS-Exchange-CrossTenant-Network-Message-Id: b54d3386-050b-495f-caed-08d95b548518 X-MS-Exchange-CrossTenant-AuthSource: DB7PR03MB4523.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Aug 2021 16:41:22.0479 (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: +A2oA0AulVu3vCs7lzDAlvTWgyndtj1wglKIjOY4jYaGWPpW/pnuWC0KYrL2zYheMc0YbAzX0tJbF7dZ8xg6fw== 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.103.2 at phobos.denx.de X-Virus-Status: Clean On 8/7/21 9:24 AM, Simon Glass wrote: > This is actually a misnomer now, since the phandle info may contain > a driver_info index or a udevice index. Rename it to use the word > 'phandle', which seems more accurate. Add a comment while we are here. > > Also add a test for this function. > > Signed-off-by: Simon Glass > --- > > drivers/clk/clk-uclass.c | 7 +++---- > drivers/mmc/ftsdc010_mci.c | 2 +- > drivers/mmc/rockchip_dw_mmc.c | 2 +- > drivers/mmc/rockchip_sdhci.c | 2 +- > drivers/ram/rockchip/sdram_rk3399.c | 2 +- > drivers/spi/rk_spi.c | 2 +- > include/clk.h | 31 ++++++++++++++++++++++++++--- > test/dm/of_platdata.c | 19 ++++++++++++++++++ > 8 files changed, 55 insertions(+), 12 deletions(-) > > diff --git a/drivers/clk/clk-uclass.c b/drivers/clk/clk-uclass.c > index 7b1ea076afd..493018b33eb 100644 > --- a/drivers/clk/clk-uclass.c > +++ b/drivers/clk/clk-uclass.c > @@ -36,8 +36,8 @@ struct clk *dev_get_clk_ptr(struct udevice *dev) > } > > #if CONFIG_IS_ENABLED(OF_PLATDATA) > -int clk_get_by_driver_info(struct udevice *dev, struct phandle_1_arg *cells, > - struct clk *clk) > +int clk_get_by_phandle(struct udevice *dev, const struct phandle_1_arg *cells, > + struct clk *clk) > { > int ret; > > @@ -413,6 +413,7 @@ int clk_get_by_name(struct udevice *dev, const char *name, struct clk *clk) > > return clk_get_by_index(dev, index, clk); > } > +#endif /* OF_REAL */ > > int clk_get_by_name_nodev(ofnode node, const char *name, struct clk *clk) > { > @@ -465,8 +466,6 @@ int clk_release_all(struct clk *clk, int count) > return 0; > } > > -#endif /* OF_REAL */ > - > int clk_request(struct udevice *dev, struct clk *clk) > { > const struct clk_ops *ops; > diff --git a/drivers/mmc/ftsdc010_mci.c b/drivers/mmc/ftsdc010_mci.c > index b8cafeb0431..570d54cf9d8 100644 > --- a/drivers/mmc/ftsdc010_mci.c > +++ b/drivers/mmc/ftsdc010_mci.c > @@ -433,7 +433,7 @@ static int ftsdc010_mmc_probe(struct udevice *dev) > chip->priv = dev; > chip->dev_index = 1; > memcpy(priv->minmax, dtplat->clock_freq_min_max, sizeof(priv->minmax)); > - ret = clk_get_by_driver_info(dev, dtplat->clocks, &priv->clk); > + ret = clk_get_by_phandle(dev, dtplat->clocks, &priv->clk); > if (ret < 0) > return ret; > #endif > diff --git a/drivers/mmc/rockchip_dw_mmc.c b/drivers/mmc/rockchip_dw_mmc.c > index 855c0e7af52..7f8dea1e343 100644 > --- a/drivers/mmc/rockchip_dw_mmc.c > +++ b/drivers/mmc/rockchip_dw_mmc.c > @@ -123,7 +123,7 @@ static int rockchip_dwmmc_probe(struct udevice *dev) > priv->minmax[0] = 400000; /* 400 kHz */ > priv->minmax[1] = dtplat->max_frequency; > > - ret = clk_get_by_driver_info(dev, dtplat->clocks, &priv->clk); > + ret = clk_get_by_phandle(dev, dtplat->clocks, &priv->clk); > if (ret < 0) > return ret; > #else > diff --git a/drivers/mmc/rockchip_sdhci.c b/drivers/mmc/rockchip_sdhci.c > index 93e58c2d3f1..a6ee7143953 100644 > --- a/drivers/mmc/rockchip_sdhci.c > +++ b/drivers/mmc/rockchip_sdhci.c > @@ -46,7 +46,7 @@ static int arasan_sdhci_probe(struct udevice *dev) > host->name = dev->name; > host->ioaddr = map_sysmem(dtplat->reg[0], dtplat->reg[1]); > max_frequency = dtplat->max_frequency; > - ret = clk_get_by_driver_info(dev, dtplat->clocks, &clk); > + ret = clk_get_by_phandle(dev, dtplat->clocks, &clk); > #else > max_frequency = dev_read_u32_default(dev, "max-frequency", 0); > ret = clk_get_by_index(dev, 0, &clk); > diff --git a/drivers/ram/rockchip/sdram_rk3399.c b/drivers/ram/rockchip/sdram_rk3399.c > index ce33fbbd7a6..c0a06dcaed0 100644 > --- a/drivers/ram/rockchip/sdram_rk3399.c > +++ b/drivers/ram/rockchip/sdram_rk3399.c > @@ -3107,7 +3107,7 @@ static int rk3399_dmc_init(struct udevice *dev) > priv->cic, priv->pmugrf, priv->pmusgrf, priv->pmucru, priv->pmu); > > #if CONFIG_IS_ENABLED(OF_PLATDATA) > - ret = clk_get_by_driver_info(dev, dtplat->clocks, &priv->ddr_clk); > + ret = clk_get_by_phandle(dev, dtplat->clocks, &priv->ddr_clk); > #else > ret = clk_get_by_index(dev, 0, &priv->ddr_clk); > #endif > diff --git a/drivers/spi/rk_spi.c b/drivers/spi/rk_spi.c > index 8309a5301f2..cb80be77ae9 100644 > --- a/drivers/spi/rk_spi.c > +++ b/drivers/spi/rk_spi.c > @@ -183,7 +183,7 @@ static int conv_of_plat(struct udevice *dev) > > plat->base = dtplat->reg[0]; > plat->frequency = 20000000; > - ret = clk_get_by_driver_info(dev, dtplat->clocks, &priv->clk); > + ret = clk_get_by_phandle(dev, dtplat->clocks, &priv->clk); > if (ret < 0) > return ret; > > diff --git a/include/clk.h b/include/clk.h > index f34401f48ee..a928879b122 100644 > --- a/include/clk.h > +++ b/include/clk.h > @@ -89,11 +89,36 @@ struct clk_bulk { > > #if CONFIG_IS_ENABLED(OF_CONTROL) && CONFIG_IS_ENABLED(CLK) > struct phandle_1_arg; > -int clk_get_by_driver_info(struct udevice *dev, > - struct phandle_1_arg *cells, struct clk *clk); > +/** > + * clk_get_by_phandle() - Get a clock by its phandle information (of-platadata) > + * > + * This function is used when of-platdata is enabled. > + * > + * This looks up a clock using the phandle info. With dtoc, each phandle in the > + * 'clocks' property is transformed into an idx representing the device. For > + * example: > + * > + * clocks = <&dpll_mpu_ck 23>; > + * > + * might result in: > + * > + * .clocks = {1, {23}},}, One too many closing braces? > + * > + * indicating that the clock is udevice idx 1 in dt-plat.c with an argument of > + * 23. This function can return a valid clock given the above information. In > + * this example it would return a clock containing the 'dpll_mpu_ck' device and > + * the clock ID 23. > + * > + * @dev: Device containing the phandle > + * @cells: Phandle info > + * @clock: A pointer to a clock struct to initialise > + * @return 0 if OK, or a negative error code. > + */ > +int clk_get_by_phandle(struct udevice *dev, const struct phandle_1_arg *cells, > + struct clk *clk); > > /** > - * clk_get_by_index - Get/request a clock by integer index. > + * clk_get_by_index() - Get/request a clock by integer index. > * > * This looks up and requests a clock. The index is relative to the client > * device; each device is assumed to have n clocks associated with it somehow, > diff --git a/test/dm/of_platdata.c b/test/dm/of_platdata.c > index 0463cf0b433..c4a2d114104 100644 > --- a/test/dm/of_platdata.c > +++ b/test/dm/of_platdata.c > @@ -1,6 +1,7 @@ > // SPDX-License-Identifier: GPL-2.0+ > > #include > +#include > #include > #include > #include > @@ -222,3 +223,21 @@ static int dm_test_of_plat_parent(struct unit_test_state *uts) > } > DM_TEST(dm_test_of_plat_parent, UT_TESTF_SCAN_PDATA); > #endif > + > +/* Test clocks with of-platdata */ > +static int dm_test_of_plat_clk(struct unit_test_state *uts) > +{ > + struct dtd_sandbox_clk_test *plat; > + struct udevice *dev; > + struct clk clk; > + > + ut_assertok(uclass_first_device_err(UCLASS_MISC, &dev)); > + ut_asserteq_str("sandbox_clk_test", dev->name); > + plat = dev_get_plat(dev); > + > + ut_assertok(clk_get_by_phandle(dev, &plat->clocks[0], &clk)); > + ut_asserteq_str("sandbox_fixed_clock", clk.dev->name); > + > + return 0; > +} > +DM_TEST(dm_test_of_plat_clk, UT_TESTF_SCAN_PDATA); >