diff options
| author | Amaury Pouly <pamaury@rockbox.org> | 2011-10-18 22:00:50 +0000 |
|---|---|---|
| committer | Amaury Pouly <pamaury@rockbox.org> | 2011-10-18 22:00:50 +0000 |
| commit | d0e8c35862d977aa328a45889a17cab4b6f85878 (patch) | |
| tree | 038aef4de2fea3a668bb8f9dc0ef6d45c4de097a | |
| parent | 0b3347e47f8b6a1d81b4d6cf83178a017db5b1f0 (diff) | |
| download | rockbox-d0e8c35862d977aa328a45889a17cab4b6f85878.zip rockbox-d0e8c35862d977aa328a45889a17cab4b6f85878.tar.gz rockbox-d0e8c35862d977aa328a45889a17cab4b6f85878.tar.bz2 rockbox-d0e8c35862d977aa328a45889a17cab4b6f85878.tar.xz | |
imx233/fuze+: move to a more generic xtal derived clock enabling function, fix timrot accordingly
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30793 a1c6a512-1295-4272-9138-f99709370657
| -rw-r--r-- | firmware/target/arm/imx233/clkctrl-imx233.c | 6 | ||||
| -rw-r--r-- | firmware/target/arm/imx233/clkctrl-imx233.h | 12 | ||||
| -rw-r--r-- | firmware/target/arm/imx233/timrot-imx233.c | 2 |
3 files changed, 15 insertions, 5 deletions
diff --git a/firmware/target/arm/imx233/clkctrl-imx233.c b/firmware/target/arm/imx233/clkctrl-imx233.c index 976a9f9..31fccd3 100644 --- a/firmware/target/arm/imx233/clkctrl-imx233.c +++ b/firmware/target/arm/imx233/clkctrl-imx233.c @@ -23,12 +23,12 @@ #define __CLK_CLKGATE (1 << 31) #define __CLK_BUSY (1 << 29) -void imx233_enable_timrot_xtal_clk32k(bool enable) +void imx233_enable_xtal_clock(enum imx233_xtal_clkt_t xtal_clk, bool enable) { if(enable) - __REG_CLR(HW_CLKCTRL_XTAL) = HW_CLKCTRL_XTAL__TIMROT_CLK32K_GATE; + __REG_CLR(HW_CLKCTRL_XTAL) = xtal_clk; else - __REG_SET(HW_CLKCTRL_XTAL) = HW_CLKCTRL_XTAL__TIMROT_CLK32K_GATE; + __REG_SET(HW_CLKCTRL_XTAL) = xtal_clk; } void imx233_enable_clock(enum imx233_clock_t clk, bool enable) diff --git a/firmware/target/arm/imx233/clkctrl-imx233.h b/firmware/target/arm/imx233/clkctrl-imx233.h index 7aa4f71..e59f954 100644 --- a/firmware/target/arm/imx233/clkctrl-imx233.h +++ b/firmware/target/arm/imx233/clkctrl-imx233.h @@ -50,6 +50,8 @@ #define HW_CLKCTRL_XTAL (*(volatile uint32_t *)(HW_CLKCTRL_BASE + 0x50)) #define HW_CLKCTRL_XTAL__TIMROT_CLK32K_GATE (1 << 26) +#define HW_CLKCTRL_XTAL__DRI_CLK24M_GATE (1 << 28) +#define HW_CLKCTRL_XTAL__FILT_CLK24M_GATE (1 << 30) #define HW_CLKCTRL_PIX (*(volatile uint32_t *)(HW_CLKCTRL_BASE + 0x60)) #define HW_CLKCTRL_PIX__DIV_BM 0xfff @@ -84,7 +86,15 @@ enum imx233_clock_t CLK_AHB /* div */ }; -void imx233_enable_timrot_xtal_clk32k(bool enable); +enum imx233_xtal_clkt_t +{ + XTAL_FILT = 1 << 30, + XTAL_DRI = 1 << 28, + XTAL_TIMROT = 1 << 26, +}; + +/* can use a mask of clocks */ +void imx233_enable_xtal_clock(enum imx233_xtal_clkt_t xtal_clk, bool enable); /* only use it for non-fractional clocks (ie not for IO) */ void imx233_enable_clock(enum imx233_clock_t clk, bool enable); void imx233_set_clock_divisor(enum imx233_clock_t clk, int div); diff --git a/firmware/target/arm/imx233/timrot-imx233.c b/firmware/target/arm/imx233/timrot-imx233.c index 0790d62..b7cf588 100644 --- a/firmware/target/arm/imx233/timrot-imx233.c +++ b/firmware/target/arm/imx233/timrot-imx233.c @@ -75,5 +75,5 @@ void imx233_timrot_init(void) { imx233_reset_block(&HW_TIMROT_ROTCTRL); /* enable xtal path to timrot */ - imx233_enable_timrot_xtal_clk32k(true); + imx233_enable_xtal_clock(XTAL_TIMROT, true); } |