Skip to content

Commit

Permalink
clk: meson: remove special gp0 lock loop
Browse files Browse the repository at this point in the history
After testing, it appears that the gxl (and axg) does not require the
special locking/reset loop which was initially added for it.

All the values present in the gxl table can locked with the simple lock
checking loop.

The change switches the gxl and axg gp0 back to the simple lock checking
loop and removes the code no longer required.

Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
  • Loading branch information
Jerome Brunet authored and Neil Armstrong committed Mar 13, 2018
1 parent 117863e commit c178b00
Show file tree
Hide file tree
Showing 4 changed files with 1 addition and 15 deletions.
1 change: 0 additions & 1 deletion drivers/clk/meson/axg.c
Original file line number Diff line number Diff line change
Expand Up @@ -231,7 +231,6 @@ static struct clk_regmap axg_gp0_pll = {
.table = axg_gp0_pll_rate_table,
.init_regs = axg_gp0_init_regs,
.init_count = ARRAY_SIZE(axg_gp0_init_regs),
.flags = CLK_MESON_PLL_LOCK_LOOP_RST,
},
.hw.init = &(struct clk_init_data){
.name = "gp0_pll",
Expand Down
12 changes: 1 addition & 11 deletions drivers/clk/meson/clk-pll.c
Original file line number Diff line number Diff line change
Expand Up @@ -121,19 +121,9 @@ static int meson_clk_pll_wait_lock(struct clk_hw *hw)
{
struct clk_regmap *clk = to_clk_regmap(hw);
struct meson_clk_pll_data *pll = meson_clk_pll_data(clk);
int delay = pll->flags & CLK_MESON_PLL_LOCK_LOOP_RST ?
100 : 24000000;
int delay = 24000000;

do {
/* Specific wait loop for GXL/GXM GP0 PLL */
if (pll->flags & CLK_MESON_PLL_LOCK_LOOP_RST) {
/* Procedure taken from the vendor kernel */
meson_parm_write(clk->map, &pll->rst, 1);
udelay(10);
meson_parm_write(clk->map, &pll->rst, 0);
mdelay(1);
}

/* Is the clock locked now ? */
if (meson_parm_read(clk->map, &pll->l))
return 0;
Expand Down
2 changes: 0 additions & 2 deletions drivers/clk/meson/clkc.h
Original file line number Diff line number Diff line change
Expand Up @@ -82,8 +82,6 @@ struct pll_rate_table {
.frac = (_frac), \
} \

#define CLK_MESON_PLL_LOCK_LOOP_RST BIT(0)

struct meson_clk_pll_data {
struct parm m;
struct parm n;
Expand Down
1 change: 0 additions & 1 deletion drivers/clk/meson/gxbb.c
Original file line number Diff line number Diff line change
Expand Up @@ -475,7 +475,6 @@ static struct clk_regmap gxl_gp0_pll = {
.table = gxl_gp0_pll_rate_table,
.init_regs = gxl_gp0_init_regs,
.init_count = ARRAY_SIZE(gxl_gp0_init_regs),
.flags = CLK_MESON_PLL_LOCK_LOOP_RST,
},
.hw.init = &(struct clk_init_data){
.name = "gp0_pll",
Expand Down

0 comments on commit c178b00

Please sign in to comment.