diff options
Diffstat (limited to 'firmware')
-rw-r--r-- | firmware/target/arm/ata-nand-telechips.c | 2 | ||||
-rw-r--r-- | firmware/target/arm/tcc77x/iaudio7/lcd-iaudio7.c | 2 | ||||
-rw-r--r-- | firmware/target/arm/tcc77x/system-target.h | 13 |
3 files changed, 15 insertions, 2 deletions
diff --git a/firmware/target/arm/ata-nand-telechips.c b/firmware/target/arm/ata-nand-telechips.c index 7250211eb9..4875ea6dc0 100644 --- a/firmware/target/arm/ata-nand-telechips.c +++ b/firmware/target/arm/ata-nand-telechips.c | |||
@@ -900,7 +900,7 @@ int nand_init(void) | |||
900 | mutex_init(&ata_mtx); | 900 | mutex_init(&ata_mtx); |
901 | 901 | ||
902 | #ifdef CPU_TCC77X | 902 | #ifdef CPU_TCC77X |
903 | CSCFG2 = 0x318a8010; | 903 | CSCFG2 = 0x018a8010 | tcc77x_cscfg_bw(TCC77X_CSCFG_BW8); |
904 | 904 | ||
905 | GPIOC_FUNC &= ~(CS_GPIO_BIT | WE_GPIO_BIT); | 905 | GPIOC_FUNC &= ~(CS_GPIO_BIT | WE_GPIO_BIT); |
906 | GPIOC_FUNC |= 0x1; | 906 | GPIOC_FUNC |= 0x1; |
diff --git a/firmware/target/arm/tcc77x/iaudio7/lcd-iaudio7.c b/firmware/target/arm/tcc77x/iaudio7/lcd-iaudio7.c index ef7e1ec140..6da0d2c083 100644 --- a/firmware/target/arm/tcc77x/iaudio7/lcd-iaudio7.c +++ b/firmware/target/arm/tcc77x/iaudio7/lcd-iaudio7.c | |||
@@ -128,7 +128,7 @@ static void _display_on(void) | |||
128 | void lcd_init_device(void) | 128 | void lcd_init_device(void) |
129 | { | 129 | { |
130 | /* Configure external memory banks */ | 130 | /* Configure external memory banks */ |
131 | CSCFG1 = 0x2d500023 | (((MCFG >> 11) & 1) << 28); | 131 | CSCFG1 = 0x0d500023 | tcc77x_cscfg_bw(TCC77X_CSCFG_BW16); |
132 | 132 | ||
133 | /* may be reset */ | 133 | /* may be reset */ |
134 | GPIOA |= 0x8000; | 134 | GPIOA |= 0x8000; |
diff --git a/firmware/target/arm/tcc77x/system-target.h b/firmware/target/arm/tcc77x/system-target.h index 55dd52ef47..beeeac05c6 100644 --- a/firmware/target/arm/tcc77x/system-target.h +++ b/firmware/target/arm/tcc77x/system-target.h | |||
@@ -43,4 +43,17 @@ static inline void udelay(unsigned usecs) | |||
43 | while (TIME_BEFORE(USEC_TIMER, stop)); | 43 | while (TIME_BEFORE(USEC_TIMER, stop)); |
44 | } | 44 | } |
45 | 45 | ||
46 | |||
47 | #define TCC77X_CSCFG_BW8 0 | ||
48 | #define TCC77X_CSCFG_BW16 1 | ||
49 | |||
50 | /* Due to hardware bug or "feature" this hack is needed to set bus width bits */ | ||
51 | static inline | ||
52 | unsigned long tcc77x_cscfg_bw(int bw) { | ||
53 | if (bw == TCC77X_CSCFG_BW8) | ||
54 | return (((MCFG >> 11) & 3) ^ 3) << 28; | ||
55 | else | ||
56 | return (((MCFG >> 11) & 3) ^ 2) << 28; | ||
57 | } | ||
58 | |||
46 | #endif /* SYSTEM_TARGET_H */ | 59 | #endif /* SYSTEM_TARGET_H */ |