diff options
author | Rajan Vaja <rajan.vaja@xilinx.com> | 2020-03-12 22:31:38 +0100 |
---|---|---|
committer | Stephen Boyd <sboyd@kernel.org> | 2020-05-27 02:59:10 +0200 |
commit | e605fa9c4a0c1218e5604b42bef59de0a3a4f813 (patch) | |
tree | 381cbd7ab9843b29673fb9fb496a834d50c8652d /drivers/clk/zynqmp | |
parent | clk: zynqmp: fix memory leak in zynqmp_register_clocks (diff) | |
download | linux-e605fa9c4a0c1218e5604b42bef59de0a3a4f813.tar.xz linux-e605fa9c4a0c1218e5604b42bef59de0a3a4f813.zip |
clk: zynqmp: Add support for custom type flags
Store extra custom type flags received from firmware.
Signed-off-by: Rajan Vaja <rajan.vaja@xilinx.com>
Signed-off-by: Tejas Patel <tejas.patel@xilinx.com>
Signed-off-by: Jolly Shah <jolly.shah@xilinx.com>
Link: https://lkml.kernel.org/r/1584048699-24186-2-git-send-email-jolly.shah@xilinx.com
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
Diffstat (limited to 'drivers/clk/zynqmp')
-rw-r--r-- | drivers/clk/zynqmp/clk-zynqmp.h | 1 | ||||
-rw-r--r-- | drivers/clk/zynqmp/clkc.c | 4 |
2 files changed, 5 insertions, 0 deletions
diff --git a/drivers/clk/zynqmp/clk-zynqmp.h b/drivers/clk/zynqmp/clk-zynqmp.h index fec9a15c8786..5beeb41b29fa 100644 --- a/drivers/clk/zynqmp/clk-zynqmp.h +++ b/drivers/clk/zynqmp/clk-zynqmp.h @@ -30,6 +30,7 @@ struct clock_topology { u32 type; u32 flag; u32 type_flag; + u8 custom_type_flag; }; struct clk_hw *zynqmp_clk_register_pll(const char *name, u32 clk_id, diff --git a/drivers/clk/zynqmp/clkc.c b/drivers/clk/zynqmp/clkc.c index e8b2cf205377..bfc1e7dd0f58 100644 --- a/drivers/clk/zynqmp/clkc.c +++ b/drivers/clk/zynqmp/clkc.c @@ -84,6 +84,7 @@ struct name_resp { struct topology_resp { #define CLK_TOPOLOGY_TYPE GENMASK(3, 0) +#define CLK_TOPOLOGY_CUSTOM_TYPE_FLAGS GENMASK(7, 4) #define CLK_TOPOLOGY_FLAGS GENMASK(23, 8) #define CLK_TOPOLOGY_TYPE_FLAGS GENMASK(31, 24) u32 topology[CLK_GET_TOPOLOGY_RESP_WORDS]; @@ -396,6 +397,9 @@ static int __zynqmp_clock_get_topology(struct clock_topology *topology, topology[*nnodes].type_flag = FIELD_GET(CLK_TOPOLOGY_TYPE_FLAGS, response->topology[i]); + topology[*nnodes].custom_type_flag = + FIELD_GET(CLK_TOPOLOGY_CUSTOM_TYPE_FLAGS, + response->topology[i]); (*nnodes)++; } |