summaryrefslogtreecommitdiff
path: root/firmware
diff options
context:
space:
mode:
authorAmaury Pouly <amaury.pouly@gmail.com>2013-06-16 17:56:10 +0200
committerAmaury Pouly <amaury.pouly@gmail.com>2013-06-16 18:21:48 +0200
commit96b1d02b057164d4e521d7e9aa50ee5e1223008a (patch)
tree24783034c863c27e42dae5638b24239a804dd5cc /firmware
parenta759242b559cab9c2cd02bf0888945edfd146ac0 (diff)
downloadrockbox-96b1d02b057164d4e521d7e9aa50ee5e1223008a.tar.gz
rockbox-96b1d02b057164d4e521d7e9aa50ee5e1223008a.zip
imx233: rewrite digctl using new register headers
Change-Id: I910a09e07b9f5a82bb6cb150739fcebc942cb7c1
Diffstat (limited to 'firmware')
-rw-r--r--firmware/target/arm/imx233/system-imx233.c22
-rw-r--r--firmware/target/arm/imx233/system-target.h29
2 files changed, 12 insertions, 39 deletions
diff --git a/firmware/target/arm/imx233/system-imx233.c b/firmware/target/arm/imx233/system-imx233.c
index 3bf6ebb0f7..8d705264bd 100644
--- a/firmware/target/arm/imx233/system-imx233.c
+++ b/firmware/target/arm/imx233/system-imx233.c
@@ -167,12 +167,8 @@ void udelay(unsigned us)
167 167
168void imx233_digctl_set_arm_cache_timings(unsigned timings) 168void imx233_digctl_set_arm_cache_timings(unsigned timings)
169{ 169{
170 HW_DIGCTL_ARMCACHE = 170 HW_DIGCTL_ARMCACHE = BF_OR5(DIGCTL_ARMCACHE, ITAG_SS(timings),
171 timings << HW_DIGCTL_ARMCACHE__ITAG_SS_BP | 171 DTAG_SS(timings), CACHE_SS(timings), DRTY_SS(timings), VALID_SS(timings));
172 timings << HW_DIGCTL_ARMCACHE__DTAG_SS_BP |
173 timings << HW_DIGCTL_ARMCACHE__CACHE_SS_BP |
174 timings << HW_DIGCTL_ARMCACHE__DRTY_SS_BP |
175 timings << HW_DIGCTL_ARMCACHE__VALID_SS_BP;
176} 172}
177 173
178#ifdef HAVE_ADJUSTABLE_CPU_FREQ 174#ifdef HAVE_ADJUSTABLE_CPU_FREQ
@@ -264,21 +260,23 @@ void set_cpu_frequency(long frequency)
264void imx233_enable_usb_controller(bool enable) 260void imx233_enable_usb_controller(bool enable)
265{ 261{
266 if(enable) 262 if(enable)
267 __REG_CLR(HW_DIGCTL_CTRL) = HW_DIGCTL_CTRL__USB_CLKGATE; 263 BF_CLR(DIGCTL_CTRL, USB_CLKGATE);
268 else 264 else
269 __REG_SET(HW_DIGCTL_CTRL) = HW_DIGCTL_CTRL__USB_CLKGATE; 265 BF_SET(DIGCTL_CTRL, USB_CLKGATE);
270} 266}
271 267
272void imx233_enable_usb_phy(bool enable) 268void imx233_enable_usb_phy(bool enable)
273{ 269{
274 if(enable) 270 if(enable)
275 { 271 {
276 __REG_CLR(HW_USBPHY_CTRL) = __BLOCK_CLKGATE | __BLOCK_SFTRST; 272 BF_CLR(USBPHY_CTRL, SFTRST);
277 __REG_CLR(HW_USBPHY_PWD) = HW_USBPHY_PWD__ALL; 273 BF_CLR(USBPHY_CTRL, CLKGATE);
274 HW_USBPHY_PWD_CLR = 0xffffffff;
278 } 275 }
279 else 276 else
280 { 277 {
281 __REG_SET(HW_USBPHY_PWD) = HW_USBPHY_PWD__ALL; 278 HW_USBPHY_PWD_SET = 0xffffffff;
282 __REG_SET(HW_USBPHY_CTRL) = __BLOCK_CLKGATE | __BLOCK_SFTRST; 279 BF_SET(USBPHY_CTRL, SFTRST);
280 BF_SET(USBPHY_CTRL, CLKGATE);
283 } 281 }
284} 282}
diff --git a/firmware/target/arm/imx233/system-target.h b/firmware/target/arm/imx233/system-target.h
index c6073a9ae3..407369af7e 100644
--- a/firmware/target/arm/imx233/system-target.h
+++ b/firmware/target/arm/imx233/system-target.h
@@ -28,33 +28,8 @@
28#include "icoll-imx233.h" 28#include "icoll-imx233.h"
29#include "clock-target.h" /* CPUFREQ_* are defined here */ 29#include "clock-target.h" /* CPUFREQ_* are defined here */
30 30
31/* Digital control */ 31#include "regs/regs-digctl.h"
32#define HW_DIGCTL_BASE 0x8001C000 32#include "regs/regs-usbphy.h"
33#define HW_DIGCTL_CTRL (*(volatile uint32_t *)(HW_DIGCTL_BASE + 0))
34#define HW_DIGCTL_CTRL__USB_CLKGATE (1 << 2)
35
36#define HW_DIGCTL_HCLKCOUNT (*(volatile uint32_t *)(HW_DIGCTL_BASE + 0x20))
37
38#define HW_DIGCTL_MICROSECONDS (*(volatile uint32_t *)(HW_DIGCTL_BASE + 0xC0))
39
40#define HW_DIGCTL_ARMCACHE (*(volatile uint32_t *)(HW_DIGCTL_BASE + 0x2b0))
41#define HW_DIGCTL_ARMCACHE__ITAG_SS_BP 0
42#define HW_DIGCTL_ARMCACHE__ITAG_SS_BM (3 << 0)
43#define HW_DIGCTL_ARMCACHE__DTAG_SS_BP 4
44#define HW_DIGCTL_ARMCACHE__DTAG_SS_BM (3 << 4)
45#define HW_DIGCTL_ARMCACHE__CACHE_SS_BP 8
46#define HW_DIGCTL_ARMCACHE__CACHE_SS_BM (3 << 8)
47#define HW_DIGCTL_ARMCACHE__DRTY_SS_BP 12
48#define HW_DIGCTL_ARMCACHE__DRTY_SS_BM (3 << 12)
49#define HW_DIGCTL_ARMCACHE__VALID_SS_BP 16
50#define HW_DIGCTL_ARMCACHE__VALID_SS_BM (3 << 16)
51
52/* USB Phy */
53#define HW_USBPHY_BASE 0x8007C000
54#define HW_USBPHY_PWD (*(volatile uint32_t *)(HW_USBPHY_BASE + 0))
55#define HW_USBPHY_PWD__ALL (7 << 10 | 0xf << 17)
56
57#define HW_USBPHY_CTRL (*(volatile uint32_t *)(HW_USBPHY_BASE + 0x30))
58 33
59/** 34/**
60 * Absolute maximum CPU speed: 454.74 MHz 35 * Absolute maximum CPU speed: 454.74 MHz