clk: tegra: allow variable sized muxes
Tegra124 extended the mux by 1bit to allow for more PLL sources. Signed-off-by: Lucas Stach <dev@lynxeye.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
This commit is contained in:
parent
8d9cbe17d3
commit
d95bb6f81f
|
@ -21,6 +21,7 @@
|
||||||
#include <malloc.h>
|
#include <malloc.h>
|
||||||
#include <linux/clk.h>
|
#include <linux/clk.h>
|
||||||
#include <linux/err.h>
|
#include <linux/err.h>
|
||||||
|
#include <linux/log2.h>
|
||||||
|
|
||||||
#include "clk.h"
|
#include "clk.h"
|
||||||
|
|
||||||
|
@ -113,6 +114,7 @@ static struct clk *_tegra_clk_register_periph(const char *name,
|
||||||
{
|
{
|
||||||
struct tegra_clk_periph *periph;
|
struct tegra_clk_periph *periph;
|
||||||
int ret, gate_offs, rst_offs;
|
int ret, gate_offs, rst_offs;
|
||||||
|
u8 mux_size = order_base_2(num_parents);
|
||||||
|
|
||||||
periph = kzalloc(sizeof(*periph), GFP_KERNEL);
|
periph = kzalloc(sizeof(*periph), GFP_KERNEL);
|
||||||
if (!periph) {
|
if (!periph) {
|
||||||
|
@ -121,8 +123,8 @@ static struct clk *_tegra_clk_register_periph(const char *name,
|
||||||
goto out_periph;
|
goto out_periph;
|
||||||
}
|
}
|
||||||
|
|
||||||
periph->mux = clk_mux_alloc(NULL, clk_base + reg_offset, 30, 2,
|
periph->mux = clk_mux_alloc(NULL, clk_base + reg_offset, 32 - mux_size,
|
||||||
parent_names, num_parents, 0);
|
mux_size, parent_names, num_parents, 0);
|
||||||
if (!periph->mux)
|
if (!periph->mux)
|
||||||
goto out_mux;
|
goto out_mux;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue