Skip to content

Commit

Permalink
clk: mediatek: clk-mtk: Add dummy clock ops
Browse files Browse the repository at this point in the history
In order to migrate some (few) old clock drivers to the common
mtk_clk_simple_probe() function, add dummy clock ops to be able
to insert a dummy clock with ID 0 at the beginning of the list.

Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Reviewed-by: Miles Chen <miles.chen@mediatek.com>
Reviewed-by: Chen-Yu Tsai <wenst@chromium.org>
Tested-by: Miles Chen <miles.chen@mediatek.com>
Link: https://lore.kernel.org/r/20230120092053.182923-8-angelogioacchino.delregno@collabora.com
Tested-by: Mingming Su <mingming.su@mediatek.com>
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
  • Loading branch information
AngeloGioacchino Del Regno authored and Stephen Boyd committed Jan 31, 2023
1 parent d3d6bd5 commit b8eb108
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 0 deletions.
16 changes: 16 additions & 0 deletions drivers/clk/mediatek/clk-mtk.c
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,22 @@
#include "clk-mtk.h"
#include "clk-gate.h"

const struct mtk_gate_regs cg_regs_dummy = { 0, 0, 0 };
EXPORT_SYMBOL_GPL(cg_regs_dummy);

static int mtk_clk_dummy_enable(struct clk_hw *hw)
{
return 0;
}

static void mtk_clk_dummy_disable(struct clk_hw *hw) { }

const struct clk_ops mtk_clk_dummy_ops = {
.enable = mtk_clk_dummy_enable,
.disable = mtk_clk_dummy_disable,
};
EXPORT_SYMBOL_GPL(mtk_clk_dummy_ops);

static void mtk_init_clk_data(struct clk_hw_onecell_data *clk_data,
unsigned int clk_num)
{
Expand Down
19 changes: 19 additions & 0 deletions drivers/clk/mediatek/clk-mtk.h
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,25 @@

struct platform_device;

/*
* We need the clock IDs to start from zero but to maintain devicetree
* backwards compatibility we can't change bindings to start from zero.
* Only a few platforms are affected, so we solve issues given by the
* commonized MTK clocks probe function(s) by adding a dummy clock at
* the beginning where needed.
*/
#define CLK_DUMMY 0

extern const struct clk_ops mtk_clk_dummy_ops;
extern const struct mtk_gate_regs cg_regs_dummy;

#define GATE_DUMMY(_id, _name) { \
.id = _id, \
.name = _name, \
.regs = &cg_regs_dummy, \
.ops = &mtk_clk_dummy_ops, \
}

struct mtk_fixed_clk {
int id;
const char *name;
Expand Down

0 comments on commit b8eb108

Please sign in to comment.