Commit d744f881 authored by Romain Goyet's avatar Romain Goyet Committed by Tony Lindgren

[PATCH] ARM: OMAP: Add basic cpu support for OMAP330 processor

Add basic 330 cpu support. 330 is handled as 15xx.
parent c9c0b33b
...@@ -27,6 +27,7 @@ struct omap_id { ...@@ -27,6 +27,7 @@ struct omap_id {
/* Register values to detect the OMAP version */ /* Register values to detect the OMAP version */
static struct omap_id omap_ids[] __initdata = { static struct omap_id omap_ids[] __initdata = {
{ .jtag_id = 0xb574, .die_rev = 0x2, .omap_id = 0x03310315, .type = 0x03100000},
{ .jtag_id = 0x355f, .die_rev = 0x0, .omap_id = 0x03320000, .type = 0x07300100}, { .jtag_id = 0x355f, .die_rev = 0x0, .omap_id = 0x03320000, .type = 0x07300100},
{ .jtag_id = 0xb55f, .die_rev = 0x0, .omap_id = 0x03320000, .type = 0x07300300}, { .jtag_id = 0xb55f, .die_rev = 0x0, .omap_id = 0x03320000, .type = 0x07300300},
{ .jtag_id = 0xb470, .die_rev = 0x0, .omap_id = 0x03310100, .type = 0x15100000}, { .jtag_id = 0xb470, .die_rev = 0x0, .omap_id = 0x03310100, .type = 0x15100000},
...@@ -164,6 +165,7 @@ void __init omap_check_revision(void) ...@@ -164,6 +165,7 @@ void __init omap_check_revision(void)
case 0x07: case 0x07:
system_rev |= 0x07; system_rev |= 0x07;
break; break;
case 0x03:
case 0x15: case 0x15:
system_rev |= 0x15; system_rev |= 0x15;
break; break;
......
...@@ -152,6 +152,10 @@ static struct omap_irq_bank omap1510_irq_banks[] = { ...@@ -152,6 +152,10 @@ static struct omap_irq_bank omap1510_irq_banks[] = {
{ .base_reg = OMAP_IH1_BASE, .trigger_map = 0xb3febfff }, { .base_reg = OMAP_IH1_BASE, .trigger_map = 0xb3febfff },
{ .base_reg = OMAP_IH2_BASE, .trigger_map = 0xffbfffed }, { .base_reg = OMAP_IH2_BASE, .trigger_map = 0xffbfffed },
}; };
static struct omap_irq_bank omap310_irq_banks[] = {
{ .base_reg = OMAP_IH1_BASE, .trigger_map = 0xb3faefc3 },
{ .base_reg = OMAP_IH2_BASE, .trigger_map = 0x65b3c061 },
};
#endif #endif
#if defined(CONFIG_ARCH_OMAP16XX) #if defined(CONFIG_ARCH_OMAP16XX)
...@@ -186,6 +190,10 @@ void __init omap_init_irq(void) ...@@ -186,6 +190,10 @@ void __init omap_init_irq(void)
irq_banks = omap1510_irq_banks; irq_banks = omap1510_irq_banks;
irq_bank_count = ARRAY_SIZE(omap1510_irq_banks); irq_bank_count = ARRAY_SIZE(omap1510_irq_banks);
} }
if (cpu_is_omap310()) {
irq_banks = omap310_irq_banks;
irq_bank_count = ARRAY_SIZE(omap310_irq_banks);
}
#endif #endif
#if defined(CONFIG_ARCH_OMAP16XX) #if defined(CONFIG_ARCH_OMAP16XX)
if (cpu_is_omap16xx()) { if (cpu_is_omap16xx()) {
......
...@@ -1158,7 +1158,7 @@ int __init clk_init(void) ...@@ -1158,7 +1158,7 @@ int __init clk_init(void)
omap_early_clk_reset(); omap_early_clk_reset();
for (clkp = onchip_clks; clkp < onchip_clks+ARRAY_SIZE(onchip_clks); clkp++) { for (clkp = onchip_clks; clkp < onchip_clks+ARRAY_SIZE(onchip_clks); clkp++) {
if (((*clkp)->flags &CLOCK_IN_OMAP1510) && cpu_is_omap1510()) { if (((*clkp)->flags &CLOCK_IN_OMAP1510) && cpu_is_omap15xx()) {
clk_register(*clkp); clk_register(*clkp);
continue; continue;
} }
...@@ -1269,7 +1269,7 @@ int __init clk_init(void) ...@@ -1269,7 +1269,7 @@ int __init clk_init(void)
clk_use(&armxor_ck); clk_use(&armxor_ck);
clk_use(&armtim_ck); clk_use(&armtim_ck);
if (cpu_is_omap1510()) if (cpu_is_omap15xx())
clk_enable(&arm_gpio_ck); clk_enable(&arm_gpio_ck);
return 0; return 0;
......
...@@ -42,6 +42,8 @@ void __init omap_detect_sram(void) ...@@ -42,6 +42,8 @@ void __init omap_detect_sram(void)
omap_sram_base = OMAP1_SRAM_BASE; omap_sram_base = OMAP1_SRAM_BASE;
if (cpu_is_omap730()) if (cpu_is_omap730())
omap_sram_size = 0x30000;
else if (cpu_is_omap730())
omap_sram_size = 0x32000; omap_sram_size = 0x32000;
else if (cpu_is_omap1510()) else if (cpu_is_omap1510())
omap_sram_size = 0x80000; omap_sram_size = 0x80000;
......
...@@ -79,7 +79,7 @@ extern unsigned int system_rev; ...@@ -79,7 +79,7 @@ extern unsigned int system_rev;
* Macros to group OMAP into cpu classes. * Macros to group OMAP into cpu classes.
* These can be used in most places. * These can be used in most places.
* cpu_is_omap7xx(): True for OMAP730 * cpu_is_omap7xx(): True for OMAP730
* cpu_is_omap15xx(): True for OMAP1510 and OMAP5910 * cpu_is_omap15xx(): True for OMAP1510, OMAP5910 and OMAP310
* cpu_is_omap16xx(): True for OMAP1610, OMAP5912 and OMAP1710 * cpu_is_omap16xx(): True for OMAP1610, OMAP5912 and OMAP1710
* cpu_is_omap24xx(): True for OMAP2420 * cpu_is_omap24xx(): True for OMAP2420
*/ */
...@@ -136,6 +136,7 @@ IS_OMAP_CLASS(24xx, 0x24) ...@@ -136,6 +136,7 @@ IS_OMAP_CLASS(24xx, 0x24)
/* /*
* Macros to detect individual cpu types. * Macros to detect individual cpu types.
* These are only rarely needed. * These are only rarely needed.
* cpu_is_omap330(): True for OMAP330
* cpu_is_omap730(): True for OMAP730 * cpu_is_omap730(): True for OMAP730
* cpu_is_omap1510(): True for OMAP1510 * cpu_is_omap1510(): True for OMAP1510
* cpu_is_omap1610(): True for OMAP1610 * cpu_is_omap1610(): True for OMAP1610
...@@ -153,6 +154,7 @@ static inline int is_omap ##type (void) \ ...@@ -153,6 +154,7 @@ static inline int is_omap ##type (void) \
return (GET_OMAP_TYPE == (id)) ? 1 : 0; \ return (GET_OMAP_TYPE == (id)) ? 1 : 0; \
} }
IS_OMAP_TYPE(310, 0x0310)
IS_OMAP_TYPE(730, 0x0730) IS_OMAP_TYPE(730, 0x0730)
IS_OMAP_TYPE(1510, 0x1510) IS_OMAP_TYPE(1510, 0x1510)
IS_OMAP_TYPE(1610, 0x1610) IS_OMAP_TYPE(1610, 0x1610)
...@@ -162,6 +164,7 @@ IS_OMAP_TYPE(1621, 0x1621) ...@@ -162,6 +164,7 @@ IS_OMAP_TYPE(1621, 0x1621)
IS_OMAP_TYPE(1710, 0x1710) IS_OMAP_TYPE(1710, 0x1710)
IS_OMAP_TYPE(2420, 0x2420) IS_OMAP_TYPE(2420, 0x2420)
#define cpu_is_omap310() 0
#define cpu_is_omap730() 0 #define cpu_is_omap730() 0
#define cpu_is_omap1510() 0 #define cpu_is_omap1510() 0
#define cpu_is_omap1610() 0 #define cpu_is_omap1610() 0
...@@ -176,25 +179,24 @@ IS_OMAP_TYPE(2420, 0x2420) ...@@ -176,25 +179,24 @@ IS_OMAP_TYPE(2420, 0x2420)
# undef cpu_is_omap730 # undef cpu_is_omap730
# define cpu_is_omap730() is_omap730() # define cpu_is_omap730() is_omap730()
# endif # endif
# if defined(CONFIG_ARCH_OMAP1510)
# undef cpu_is_omap1510
# define cpu_is_omap1510() is_omap1510()
# endif
#else #else
# if defined(CONFIG_ARCH_OMAP730) # if defined(CONFIG_ARCH_OMAP730)
# undef cpu_is_omap730 # undef cpu_is_omap730
# define cpu_is_omap730() 1 # define cpu_is_omap730() 1
# endif # endif
# if defined(CONFIG_ARCH_OMAP1510)
# undef cpu_is_omap1510
# define cpu_is_omap1510() 1
# endif
#endif #endif
/* /*
* Whether we have MULTI_OMAP1 or not, we still need to distinguish * Whether we have MULTI_OMAP1 or not, we still need to distinguish
* between 1611B/5912 and 1710. * between 330 vs. 1510 and 1611B/5912 vs. 1710.
*/ */
#if defined(CONFIG_ARCH_OMAP1510)
# undef cpu_is_omap310
# undef cpu_is_omap1510
# define cpu_is_omap310() is_omap310()
# define cpu_is_omap1510() is_omap1510()
#endif
#if defined(CONFIG_ARCH_OMAP16XX) #if defined(CONFIG_ARCH_OMAP16XX)
# undef cpu_is_omap1610 # undef cpu_is_omap1610
# undef cpu_is_omap1611 # undef cpu_is_omap1611
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment