* [PATCH 1/2] ARM: S3C2443: introduce soc_is_s3c2443 macro
@ 2012-11-26 8:40 Alexander Varnin
2012-11-26 8:40 ` [PATCH 2/2] ARM: S3C2443: Workaround for 2443 EXTINT error Alexander Varnin
2012-11-26 9:02 ` [PATCH 1/2] ARM: S3C2443: introduce soc_is_s3c2443 macro Heiko Stübner
0 siblings, 2 replies; 5+ messages in thread
From: Alexander Varnin @ 2012-11-26 8:40 UTC (permalink / raw)
To: linux-samsung-soc, kgene, heiko; +Cc: Alexander Varnin
Signed-off-by: Alexander Varnin <fenixk19@mail.ru>
---
arch/arm/plat-samsung/include/plat/cpu.h | 10 ++++++++++
1 files changed, 10 insertions(+), 0 deletions(-)
diff --git a/arch/arm/plat-samsung/include/plat/cpu.h b/arch/arm/plat-samsung/include/plat/cpu.h
index ace4451..613f492 100644
--- a/arch/arm/plat-samsung/include/plat/cpu.h
+++ b/arch/arm/plat-samsung/include/plat/cpu.h
@@ -23,6 +23,9 @@ extern unsigned long samsung_cpu_id;
#define S3C24XX_CPU_ID 0x32400000
#define S3C24XX_CPU_MASK 0xFFF00000
+#define S3C2443_CPU_ID 0x32443001
+#define S3C2443_CPU_MASK 0xFFFFFFFF
+
#define S3C6400_CPU_ID 0x36400000
#define S3C6410_CPU_ID 0x36410000
#define S3C64XX_CPU_MASK 0xFFFFF000
@@ -52,6 +55,7 @@ static inline int is_samsung_##name(void) \
}
IS_SAMSUNG_CPU(s3c24xx, S3C24XX_CPU_ID, S3C24XX_CPU_MASK)
+IS_SAMSUNG_CPU(s3c2443, S3C2443_CPU_ID, S3C2443_CPU_MASK)
IS_SAMSUNG_CPU(s3c6400, S3C6400_CPU_ID, S3C64XX_CPU_MASK)
IS_SAMSUNG_CPU(s3c6410, S3C6410_CPU_ID, S3C64XX_CPU_MASK)
IS_SAMSUNG_CPU(s5p6440, S5P6440_CPU_ID, S5P64XX_CPU_MASK)
@@ -72,6 +76,12 @@ IS_SAMSUNG_CPU(exynos5250, EXYNOS5250_SOC_ID, EXYNOS5_SOC_MASK)
# define soc_is_s3c24xx() 0
#endif
+#if defined(CONFIG_CPU_S3C2443)
+# define soc_is_s3c2443() is_samsung_s3c2443()
+#else
+# define soc_is_s3c2443() 0
+#endif
+
#if defined(CONFIG_CPU_S3C6400) || defined(CONFIG_CPU_S3C6410)
# define soc_is_s3c64xx() (is_samsung_s3c6400() || is_samsung_s3c6410())
#else
--
1.7.2.5
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 2/2] ARM: S3C2443: Workaround for 2443 EXTINT error
2012-11-26 8:40 [PATCH 1/2] ARM: S3C2443: introduce soc_is_s3c2443 macro Alexander Varnin
@ 2012-11-26 8:40 ` Alexander Varnin
2012-11-26 8:44 ` Alexander Varnin
2012-11-26 9:02 ` [PATCH 1/2] ARM: S3C2443: introduce soc_is_s3c2443 macro Heiko Stübner
1 sibling, 1 reply; 5+ messages in thread
From: Alexander Varnin @ 2012-11-26 8:40 UTC (permalink / raw)
To: linux-samsung-soc, kgene, heiko; +Cc: Alexander Varnin
S3C2443 CPU has a problem with incorrect reading from EXTINTn
registers. So s3c_irqext_type function wrongly modifies them.
So add special check to s3c_irqext_type, to handle this case.
Signed-off-by: Alexander Varnin <fenixk19@mail.ru>
---
arch/arm/plat-s3c24xx/irq.c | 15 +++++++++++++++
1 files changed, 15 insertions(+), 0 deletions(-)
diff --git a/arch/arm/plat-s3c24xx/irq.c b/arch/arm/plat-s3c24xx/irq.c
index fe57bbb..bb36fc9 100644
--- a/arch/arm/plat-s3c24xx/irq.c
+++ b/arch/arm/plat-s3c24xx/irq.c
@@ -219,6 +219,21 @@ s3c_irqext_type(struct irq_data *data, unsigned int type)
}
value = __raw_readl(extint_reg);
+
+ if( (samsung_cpu_id & 0xfffff) == 0x43001) //Hack for 2443 error workaround
+ {
+ int i;
+ int fixed = 0;
+ if(extint_reg == S3C24XX_EXTINT1 || extint_reg == S3C24XX_EXTINT2)
+ for(i=0; i<7;i++)
+ fixed |= (((value >> ((7-i)*4+1)) & 7) | ((value >> ((7-i)*4-3)) & 8)) << i*4;
+ else
+ for(i=0; i<7;i++)
+ fixed |= ( (value >> (7-i)*4) & 0xf ) << i*4;
+ fixed |= (((value>>1) & 7) | ((value<<3) & 8)) << 27;
+ value = fixed;
+ }
+
value = (value & ~(7 << extint_offset)) | (newvalue << extint_offset);
__raw_writel(value, extint_reg);
--
1.7.2.5
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 1/2] ARM: S3C2443: introduce soc_is_s3c2443 macro
@ 2012-11-26 8:44 Alexander Varnin
0 siblings, 0 replies; 5+ messages in thread
From: Alexander Varnin @ 2012-11-26 8:44 UTC (permalink / raw)
To: linux-samsung-soc, kgene, heiko; +Cc: Alexander Varnin
Signed-off-by: Alexander Varnin <fenixk19@mail.ru>
---
arch/arm/plat-samsung/include/plat/cpu.h | 10 ++++++++++
1 files changed, 10 insertions(+), 0 deletions(-)
diff --git a/arch/arm/plat-samsung/include/plat/cpu.h b/arch/arm/plat-samsung/include/plat/cpu.h
index ace4451..613f492 100644
--- a/arch/arm/plat-samsung/include/plat/cpu.h
+++ b/arch/arm/plat-samsung/include/plat/cpu.h
@@ -23,6 +23,9 @@ extern unsigned long samsung_cpu_id;
#define S3C24XX_CPU_ID 0x32400000
#define S3C24XX_CPU_MASK 0xFFF00000
+#define S3C2443_CPU_ID 0x32443001
+#define S3C2443_CPU_MASK 0xFFFFFFFF
+
#define S3C6400_CPU_ID 0x36400000
#define S3C6410_CPU_ID 0x36410000
#define S3C64XX_CPU_MASK 0xFFFFF000
@@ -52,6 +55,7 @@ static inline int is_samsung_##name(void) \
}
IS_SAMSUNG_CPU(s3c24xx, S3C24XX_CPU_ID, S3C24XX_CPU_MASK)
+IS_SAMSUNG_CPU(s3c2443, S3C2443_CPU_ID, S3C2443_CPU_MASK)
IS_SAMSUNG_CPU(s3c6400, S3C6400_CPU_ID, S3C64XX_CPU_MASK)
IS_SAMSUNG_CPU(s3c6410, S3C6410_CPU_ID, S3C64XX_CPU_MASK)
IS_SAMSUNG_CPU(s5p6440, S5P6440_CPU_ID, S5P64XX_CPU_MASK)
@@ -72,6 +76,12 @@ IS_SAMSUNG_CPU(exynos5250, EXYNOS5250_SOC_ID, EXYNOS5_SOC_MASK)
# define soc_is_s3c24xx() 0
#endif
+#if defined(CONFIG_CPU_S3C2443)
+# define soc_is_s3c2443() is_samsung_s3c2443()
+#else
+# define soc_is_s3c2443() 0
+#endif
+
#if defined(CONFIG_CPU_S3C6400) || defined(CONFIG_CPU_S3C6410)
# define soc_is_s3c64xx() (is_samsung_s3c6400() || is_samsung_s3c6410())
#else
--
1.7.2.5
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH 2/2] ARM: S3C2443: Workaround for 2443 EXTINT error
2012-11-26 8:40 ` [PATCH 2/2] ARM: S3C2443: Workaround for 2443 EXTINT error Alexander Varnin
@ 2012-11-26 8:44 ` Alexander Varnin
0 siblings, 0 replies; 5+ messages in thread
From: Alexander Varnin @ 2012-11-26 8:44 UTC (permalink / raw)
To: Alexander Varnin; +Cc: linux-samsung-soc, kgene, heiko
Sorry, an old version.
26.11.2012 12:40, Alexander Varnin пишет:
> S3C2443 CPU has a problem with incorrect reading from EXTINTn
> registers. So s3c_irqext_type function wrongly modifies them.
> So add special check to s3c_irqext_type, to handle this case.
>
> Signed-off-by: Alexander Varnin <fenixk19@mail.ru>
> ---
> arch/arm/plat-s3c24xx/irq.c | 15 +++++++++++++++
> 1 files changed, 15 insertions(+), 0 deletions(-)
>
> diff --git a/arch/arm/plat-s3c24xx/irq.c b/arch/arm/plat-s3c24xx/irq.c
> index fe57bbb..bb36fc9 100644
> --- a/arch/arm/plat-s3c24xx/irq.c
> +++ b/arch/arm/plat-s3c24xx/irq.c
> @@ -219,6 +219,21 @@ s3c_irqext_type(struct irq_data *data, unsigned int type)
> }
>
> value = __raw_readl(extint_reg);
> +
> + if( (samsung_cpu_id & 0xfffff) == 0x43001) //Hack for 2443 error workaround
> + {
> + int i;
> + int fixed = 0;
> + if(extint_reg == S3C24XX_EXTINT1 || extint_reg == S3C24XX_EXTINT2)
> + for(i=0; i<7;i++)
> + fixed |= (((value >> ((7-i)*4+1)) & 7) | ((value >> ((7-i)*4-3)) & 8)) << i*4;
> + else
> + for(i=0; i<7;i++)
> + fixed |= ( (value >> (7-i)*4) & 0xf ) << i*4;
> + fixed |= (((value>>1) & 7) | ((value<<3) & 8)) << 27;
> + value = fixed;
> + }
> +
> value = (value & ~(7 << extint_offset)) | (newvalue << extint_offset);
> __raw_writel(value, extint_reg);
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 1/2] ARM: S3C2443: introduce soc_is_s3c2443 macro
2012-11-26 8:40 [PATCH 1/2] ARM: S3C2443: introduce soc_is_s3c2443 macro Alexander Varnin
2012-11-26 8:40 ` [PATCH 2/2] ARM: S3C2443: Workaround for 2443 EXTINT error Alexander Varnin
@ 2012-11-26 9:02 ` Heiko Stübner
1 sibling, 0 replies; 5+ messages in thread
From: Heiko Stübner @ 2012-11-26 9:02 UTC (permalink / raw)
To: Alexander Varnin; +Cc: linux-samsung-soc, kgene
Am Montag, 26. November 2012, 09:40:02 schrieb Alexander Varnin:
> Signed-off-by: Alexander Varnin <fenixk19@mail.ru>
Acked-by: Heiko Stuebner <heiko@sntech.de>
> ---
> arch/arm/plat-samsung/include/plat/cpu.h | 10 ++++++++++
> 1 files changed, 10 insertions(+), 0 deletions(-)
>
> diff --git a/arch/arm/plat-samsung/include/plat/cpu.h
> b/arch/arm/plat-samsung/include/plat/cpu.h index ace4451..613f492 100644
> --- a/arch/arm/plat-samsung/include/plat/cpu.h
> +++ b/arch/arm/plat-samsung/include/plat/cpu.h
> @@ -23,6 +23,9 @@ extern unsigned long samsung_cpu_id;
> #define S3C24XX_CPU_ID 0x32400000
> #define S3C24XX_CPU_MASK 0xFFF00000
>
> +#define S3C2443_CPU_ID 0x32443001
> +#define S3C2443_CPU_MASK 0xFFFFFFFF
> +
> #define S3C6400_CPU_ID 0x36400000
> #define S3C6410_CPU_ID 0x36410000
> #define S3C64XX_CPU_MASK 0xFFFFF000
> @@ -52,6 +55,7 @@ static inline int is_samsung_##name(void) \
> }
>
> IS_SAMSUNG_CPU(s3c24xx, S3C24XX_CPU_ID, S3C24XX_CPU_MASK)
> +IS_SAMSUNG_CPU(s3c2443, S3C2443_CPU_ID, S3C2443_CPU_MASK)
> IS_SAMSUNG_CPU(s3c6400, S3C6400_CPU_ID, S3C64XX_CPU_MASK)
> IS_SAMSUNG_CPU(s3c6410, S3C6410_CPU_ID, S3C64XX_CPU_MASK)
> IS_SAMSUNG_CPU(s5p6440, S5P6440_CPU_ID, S5P64XX_CPU_MASK)
> @@ -72,6 +76,12 @@ IS_SAMSUNG_CPU(exynos5250, EXYNOS5250_SOC_ID,
> EXYNOS5_SOC_MASK) # define soc_is_s3c24xx() 0
> #endif
>
> +#if defined(CONFIG_CPU_S3C2443)
> +# define soc_is_s3c2443() is_samsung_s3c2443()
> +#else
> +# define soc_is_s3c2443() 0
> +#endif
> +
> #if defined(CONFIG_CPU_S3C6400) || defined(CONFIG_CPU_S3C6410)
> # define soc_is_s3c64xx() (is_samsung_s3c6400() || is_samsung_s3c6410())
> #else
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2012-11-26 9:02 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-11-26 8:40 [PATCH 1/2] ARM: S3C2443: introduce soc_is_s3c2443 macro Alexander Varnin
2012-11-26 8:40 ` [PATCH 2/2] ARM: S3C2443: Workaround for 2443 EXTINT error Alexander Varnin
2012-11-26 8:44 ` Alexander Varnin
2012-11-26 9:02 ` [PATCH 1/2] ARM: S3C2443: introduce soc_is_s3c2443 macro Heiko Stübner
-- strict thread matches above, loose matches on Subject: below --
2012-11-26 8:44 Alexander Varnin
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.