summaryrefslogtreecommitdiffstats
path: root/firmware/target/arm/imx233/clkctrl-imx233.h
diff options
context:
space:
mode:
authorAmaury Pouly <amaury.pouly@gmail.com>2013-06-16 20:08:49 +0200
committerAmaury Pouly <amaury.pouly@gmail.com>2013-06-17 00:29:24 +0200
commitf5ac658d160d11880c2affa9c5b669404c4fe207 (patch)
tree120f5e132430ea032d12d765fc6f407c020a908e /firmware/target/arm/imx233/clkctrl-imx233.h
parent84fc327aeb7be91e611520bb058a6c8d318401c3 (diff)
downloadrockbox-f5ac658d160d11880c2affa9c5b669404c4fe207.tar.gz
rockbox-f5ac658d160d11880c2affa9c5b669404c4fe207.tar.bz2
rockbox-f5ac658d160d11880c2affa9c5b669404c4fe207.zip
imx233: normalise clkctrl
The clkctrl functions were becoming a mess. Normalise the names, get rid of the xtal derived as special case and use the same interface. Change-Id: Ib954a8d30a6bd691914b5e0d97774ec9fc560c50
Diffstat (limited to 'firmware/target/arm/imx233/clkctrl-imx233.h')
-rw-r--r--firmware/target/arm/imx233/clkctrl-imx233.h76
1 files changed, 21 insertions, 55 deletions
diff --git a/firmware/target/arm/imx233/clkctrl-imx233.h b/firmware/target/arm/imx233/clkctrl-imx233.h
index a15adb367e..ddd8bc9221 100644
--- a/firmware/target/arm/imx233/clkctrl-imx233.h
+++ b/firmware/target/arm/imx233/clkctrl-imx233.h
@@ -50,67 +50,33 @@ enum imx233_clock_t
CLK_XTAL, /* freq */
CLK_EMI, /* freq, div, frac, bypass */
CLK_XBUS, /* freq, div */
+ CLK_FILT, /* enable */
+ CLK_DRI, /* enable */
+ CLK_PWM, /* enable */
+ CLK_TIMROT, /* enable */
+ CLK_UART, /* enable */
};
-enum imx233_xtal_clk_t
-{
- XTAL_FILT = 1 << 30,
- XTAL_DRI = 1 << 28,
- XTAL_TIMROT = 1 << 26,
- XTAM_PWM = 1 << 29,
-};
-
-/* Auto-Slow monitoring */
-enum imx233_as_monitor_t
-{
- AS_NONE = 0, /* Do not monitor any activity */
- AS_CPU_INSTR = 1 << 21, /* Monitor CPU instruction access to AHB */
- AS_CPU_DATA = 1 << 22, /* Monitor CPU data access to AHB */
- AS_TRAFFIC = 1 << 23, /* Monitor AHB master activity */
- AS_TRAFFIC_JAM = 1 << 24, /* Monitor AHB masters (>=3) activity */
- AS_APBXDMA = 1 << 25, /* Monitor APBX DMA activity */
- AS_APBHDMA = 1 << 26, /* Monitor APBH DMA activity */
- AS_PXP = 1 << 27, /* Monitor PXP activity */
- AS_DCP = 1 << 28, /* Monitor DCP activity */
- AS_ALL = 0xff << 21, /* Monitor all activity */
-};
-
-enum imx233_as_div_t
-{
- AS_DIV_1 = 0,
- AS_DIV_2 = 1,
- AS_DIV_4 = 2,
- AS_DIV_8 = 3,
- AS_DIV_16 = 4,
- AS_DIV_32 = 5
-};
-
-/* can use a mask of clocks */
-void imx233_clkctrl_enable_xtal(enum imx233_xtal_clk_t xtal_clk, bool enable);
-void imx233_clkctrl_is_xtal_enabled(enum imx233_xtal_clk_t xtal_clk, bool enable);
+void imx233_clkctrl_init(void);
/* only use it for non-fractional clocks (ie not for IO) */
-void imx233_clkctrl_enable_clock(enum imx233_clock_t clk, bool enable);
-bool imx233_clkctrl_is_clock_enabled(enum imx233_clock_t cl);
-void imx233_clkctrl_set_clock_divisor(enum imx233_clock_t clk, int div);
-int imx233_clkctrl_get_clock_divisor(enum imx233_clock_t clk);
+void imx233_clkctrl_enable(enum imx233_clock_t clk, bool enable);
+bool imx233_clkctrl_is_enabled(enum imx233_clock_t cl);
+void imx233_clkctrl_set_div(enum imx233_clock_t clk, int div);
+int imx233_clkctrl_get_div(enum imx233_clock_t clk);
/* call with fracdiv=0 to disable it */
-void imx233_clkctrl_set_fractional_divisor(enum imx233_clock_t clk, int fracdiv);
+void imx233_clkctrl_set_frac_div(enum imx233_clock_t clk, int fracdiv);
/* 0 means fractional dividor disable */
-int imx233_clkctrl_get_fractional_divisor(enum imx233_clock_t clk);
-void imx233_clkctrl_set_bypass_pll(enum imx233_clock_t clk, bool bypass);
-bool imx233_clkctrl_get_bypass_pll(enum imx233_clock_t clk);
-void imx233_clkctrl_enable_usb_pll(bool enable);
-bool imx233_clkctrl_is_usb_pll_enabled(void);
-unsigned imx233_clkctrl_get_clock_freq(enum imx233_clock_t clk);
-
-bool imx233_clkctrl_is_emi_sync_enabled(void);
-
-void imx233_clkctrl_set_auto_slow_divisor(enum imx233_as_div_t div);
-enum imx233_as_div_t imx233_clkctrl_get_auto_slow_divisor(void);
+int imx233_clkctrl_get_frac_div(enum imx233_clock_t clk);
+void imx233_clkctrl_set_bypass(enum imx233_clock_t clk, bool bypass);
+bool imx233_clkctrl_get_bypass(enum imx233_clock_t clk);
+void imx233_clkctrl_enable_usb(bool enable);
+bool imx233_clkctrl_is_usb_enabled(void);
+/* returns frequency in KHz */
+unsigned imx233_clkctrl_get_freq(enum imx233_clock_t clk);
+/* auto-slow stuff */
+void imx233_clkctrl_set_auto_slow_div(unsigned div);
+unsigned imx233_clkctrl_get_auto_slow_div(void);
void imx233_clkctrl_enable_auto_slow(bool enable);
bool imx233_clkctrl_is_auto_slow_enabled(void);
-/* can use a mask of clocks */
-void imx233_clkctrl_enable_auto_slow_monitor(enum imx233_as_monitor_t monitor, bool enable);
-bool imx233_clkctrl_is_auto_slow_monitor_enabled(enum imx233_as_monitor_t monitor);
#endif /* CLKCTRL_IMX233_H */