clk: mux: Add support for specifying parents via DT/pointers
authorStephen Boyd <sboyd@kernel.org>
Fri, 30 Aug 2019 15:09:21 +0000 (08:09 -0700)
committerStephen Boyd <sboyd@kernel.org>
Tue, 7 Jan 2020 07:10:05 +0000 (23:10 -0800)
commit9611b3aacc1c1af7cb96d35ca5f1e55fdd44f697
tree53ace3d3ed2421ad7607bc69c1c66f1ade6e78ee
parent728e3096741a50cb04f3a4d713001a7fd48acc17
clk: mux: Add support for specifying parents via DT/pointers

After commit fc0c209c147f ("clk: Allow parents to be specified without
string names") we can use DT or direct clk_hw pointers to specify
parents. Create a generic function that shouldn't be used very often to
encode the multitude of ways of registering a mux clk with different
parent information. Then add a bunch of wrapper macros that only pass
down what needs to be passed down to the generic function to support
this with less arguments.

Note: the msm drm driver passes an anonymous array through the macro
which seems to confuse my compiler. Adding a parenthesis around the
whole thing at the call site seems to fix it but it must be wrong. Maybe
it's better to split this patch and pick out the array bits there?

Cc: Rob Clark <robdclark@gmail.com>
Cc: Sean Paul <sean@poorly.run>
Cc: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
Link: https://lkml.kernel.org/r/20190830150923.259497-11-sboyd@kernel.org
drivers/clk/clk-mux.c
drivers/gpu/drm/msm/dsi/pll/dsi_pll_10nm.c
drivers/gpu/drm/msm/dsi/pll/dsi_pll_28nm.c
include/linux/clk-provider.h