clk: Add test managed clk provider/consumer APIs

Unit tests are more ergonomic and simpler to understand if they don't
have to hoist a bunch of code into the test harness init and exit
functions. Add some test managed wrappers for the clk APIs so that clk
unit tests can write more code in the actual test and less code in the
harness.

Only add APIs that are used for now. More wrappers can be added in the
future as necessary.

Cc: Brendan Higgins <brendan.higgins@linux.dev>
Cc: David Gow <davidgow@google.com>
Cc: Rae Moar <rmoar@google.com>
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
Link: https://lore.kernel.org/r/20240718210513.3801024-7-sboyd@kernel.org
This commit is contained in:
Stephen Boyd
2024-07-18 14:05:05 -07:00
parent 5ac7973032
commit d690bd11e8
5 changed files with 255 additions and 0 deletions

28
include/kunit/clk.h Normal file
View File

@@ -0,0 +1,28 @@
/* SPDX-License-Identifier: GPL-2.0 */
#ifndef _CLK_KUNIT_H
#define _CLK_KUNIT_H
struct clk;
struct clk_hw;
struct device;
struct device_node;
struct kunit;
struct clk *
clk_get_kunit(struct kunit *test, struct device *dev, const char *con_id);
struct clk *
of_clk_get_kunit(struct kunit *test, struct device_node *np, int index);
struct clk *
clk_hw_get_clk_kunit(struct kunit *test, struct clk_hw *hw, const char *con_id);
struct clk *
clk_hw_get_clk_prepared_enabled_kunit(struct kunit *test, struct clk_hw *hw,
const char *con_id);
int clk_prepare_enable_kunit(struct kunit *test, struct clk *clk);
int clk_hw_register_kunit(struct kunit *test, struct device *dev, struct clk_hw *hw);
int of_clk_hw_register_kunit(struct kunit *test, struct device_node *node,
struct clk_hw *hw);
#endif