|
@@ -1,5 +1,5 @@
|
|
|
/*
|
|
|
- * Copyright (c) 2013, The Linux Foundation. All rights reserved.
|
|
|
+ * Copyright (c) 2013, 2018, The Linux Foundation. All rights reserved.
|
|
|
*
|
|
|
* This software is licensed under the terms of the GNU General Public
|
|
|
* License version 2, as published by the Free Software Foundation, and
|
|
@@ -42,6 +42,7 @@
|
|
|
#define CFG_MODE_SHIFT 12
|
|
|
#define CFG_MODE_MASK (0x3 << CFG_MODE_SHIFT)
|
|
|
#define CFG_MODE_DUAL_EDGE (0x2 << CFG_MODE_SHIFT)
|
|
|
+#define CFG_HW_CLK_CTRL_MASK BIT(20)
|
|
|
|
|
|
#define M_REG 0x8
|
|
|
#define N_REG 0xc
|
|
@@ -276,7 +277,7 @@ static int clk_rcg2_configure(struct clk_rcg2 *rcg, const struct freq_tbl *f)
|
|
|
}
|
|
|
|
|
|
mask = BIT(rcg->hid_width) - 1;
|
|
|
- mask |= CFG_SRC_SEL_MASK | CFG_MODE_MASK;
|
|
|
+ mask |= CFG_SRC_SEL_MASK | CFG_MODE_MASK | CFG_HW_CLK_CTRL_MASK;
|
|
|
cfg = f->pre_div << CFG_SRC_DIV_SHIFT;
|
|
|
cfg |= rcg->parent_map[index].cfg << CFG_SRC_SEL_SHIFT;
|
|
|
if (rcg->mnd_width && f->n && (f->m != f->n))
|