Commit ed733003 authored by Heiner Kallweit's avatar Heiner Kallweit Committed by Thierry Reding
Browse files

pwm: meson: switch to using struct clk_parent_data for mux parents



We'll use struct clk_parent_data for mux/div/gate initialization in the
follow-up patches. As a first step switch the mux from using
parent_names to clk_parent_data.

Suggested-by: default avatarMartin Blumenstingl <martin.blumenstingl@googlemail.com>
Reviewed-by: default avatarMartin Blumenstingl <martin.blumenstingl@googlemail.com>
Tested-by: default avatarMartin Blumenstingl <martin.blumenstingl@googlemail.com>
Signed-off-by: default avatarHeiner Kallweit <hkallweit1@gmail.com>
Signed-off-by: default avatarThierry Reding <thierry.reding@gmail.com>
parent bafa23b6
Loading
Loading
Loading
Loading
+9 −2
Original line number Diff line number Diff line
@@ -61,6 +61,7 @@
#define MISC_A_EN		BIT(0)

#define MESON_NUM_PWMS		2
#define MESON_MAX_MUX_PARENTS	4

static struct meson_pwm_channel_data {
	u8		reg_offset;
@@ -477,21 +478,27 @@ MODULE_DEVICE_TABLE(of, meson_pwm_matches);

static int meson_pwm_init_channels(struct meson_pwm *meson)
{
	struct clk_parent_data mux_parent_data[MESON_MAX_MUX_PARENTS] = {};
	struct device *dev = meson->chip.dev;
	struct clk_init_data init;
	unsigned int i;
	char name[255];
	int err;

	for (i = 0; i < meson->data->num_parents; i++) {
		mux_parent_data[i].index = -1;
		mux_parent_data[i].name = meson->data->parent_names[i];
	}

	for (i = 0; i < meson->chip.npwm; i++) {
		struct meson_pwm_channel *channel = &meson->channels[i];
		struct clk_init_data init = {};

		snprintf(name, sizeof(name), "%s#mux%u", dev_name(dev), i);

		init.name = name;
		init.ops = &clk_mux_ops;
		init.flags = 0;
		init.parent_names = meson->data->parent_names;
		init.parent_data = mux_parent_data;
		init.num_parents = meson->data->num_parents;

		channel->mux.reg = meson->base + REG_MISC_AB;