S3C2416: Enable IIS and HSSPI clocks
Subsystems (3)
v2 cover S3C2416: Enable IIS and HSSPI clocks
S3C2416/2450 (probably S3C2443 too) can use the newer style kernel-drivers made for S3C64xx and above for their I2S and HS-SPI controllers.
So as a first step in this direction, these patches add their respective clocks.
The I2S clocks were simply moved from S3C2443 to s3c2443-clock.c as they are identical on all 3 platforms.
The same is true for the HSSPI pclk which is added to s3c2443-clock.c, as it was not defined at all yet.
The HSSPI sclk is different between 2443 and 2416 and is therefore added to mach-s3c2416/clock.c
Changes since v1:
fix missing static
cleanup hsspi clk-sources
remove collision between hsspi pclk and sclk on s3c2443
Heiko Stuebner (4):
S3C2443: Move i2s clock definitions to common code
S3C2443: Define constant for HSSPI pclk
S3C2416: Add HSSPI clock sourced from EPLL
S3C2443: Add hsspi-clock from pclk and rename unused S3C2443 hsspi
sclk
.../mach-s3c2410/include/mach/regs-s3c2443-clock.h | 1 + arch/arm/mach-s3c2416/clock.c | 28 ++++++++++ arch/arm/mach-s3c2443/clock.c | 55 +------------------ arch/arm/plat-s3c24xx/s3c2443-clock.c | 58 ++++++++++++++++++++ 4 files changed, 88 insertions(+), 54 deletions(-)
Signature · 1 line
1.7.2.3
PATCH v2 1/4 S3C2443: Move i2s clock definitions to common code
S3C2416/S3C2450 use the same clocks for their i2s blocks and can therefore reuse the existing ones.
---
Changes since v1: added missing static
arch/arm/mach-s3c2443/clock.c | 53 --------------------------------- arch/arm/plat-s3c24xx/s3c2443-clock.c | 53 +++++++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+), 53 deletions(-)
arch/arm/mach-s3c2443/clock.c +0 -53
@@ -57,10 +57,6 @@/* clock selections */ -static struct clk clk_i2s_ext = { - .name ="i2s-ext" , -}; -/* armdiv * * this clock is sourced from msysclk and can have a number of
@@ -235,48 +231,6 @@ static struct clk clk_hsmmc = { }, }; -/* i2s_eplldiv -* -* This clock is the output from the I2S divisor of ESYSCLK, and is separate -* from the mux that comes after it (cannot merge into one single clock) -*/ - -static struct clksrc_clk clk_i2s_eplldiv = { - .clk = { - .name ="i2s-eplldiv" , - .parent = &clk_esysclk.clk, - }, - .reg_div = { .reg =S3C2443_CLKDIV1 , .size =4 , .shift =12 , }, -}; - -/* i2s-ref -* -* i2s bus reference clock, selectable from external, esysclk or epllref -* -* Note, this used to be two clocks, but was compressed into one. -*/ - -struct clk *clk_i2s_srclist[] = { - [0 ] = &clk_i2s_eplldiv.clk, - [1 ] = &clk_i2s_ext, - [2 ] = &clk_epllref.clk, - [3 ] = &clk_epllref.clk, -}; - -static struct clksrc_clk clk_i2s = { - .clk = { - .name ="i2s-if" , - .ctrlbit =S3C2443_SCLKCON_I2SCLK , - .enable = s3c2443_clkcon_enable_s, - - }, - .sources = &(struct clksrc_sources ) { - .sources = clk_i2s_srclist, - .nr_sources =ARRAY_SIZE (clk_i2s_srclist), - }, - .reg_src = { .reg =S3C2443_CLKSRC , .size =2 , .shift =14 }, -}; -/* standard clock definitions */ static struct clk init_clocks_off[] = {
@@ -286,11 +240,6 @@ static struct clk init_clocks_off[] = { .enable = s3c2443_clkcon_enable_p, .ctrlbit = S3C2443_PCLKCON_SDI, }, { - .name = "iis", - .parent = &clk_p, - .enable = s3c2443_clkcon_enable_p, - .ctrlbit = S3C2443_PCLKCON_IIS, - }, { .name = "spi", .devname = "s3c2410-spi.0", .parent = &clk_p,
@@ -312,8 +261,6 @@ static struct clk init_clocks[] = {static struct clksrc_clk *clksrcs[]__initdata = { &clk_arm, - &clk_i2s_eplldiv, - &clk_i2s, &clk_hsspi, &clk_hsmmc_div, };
arch/arm/plat-s3c24xx/s3c2443-clock.c +53 -0
68 lines not on this page · raw message
Signature · 1 line
1.7.2.3
PATCH v2 2/4 S3C2443: Define constant for HSSPI pclk
In reply to Heiko StübnerIt's the same clock for 2443/2416/2450.
--- .../mach-s3c2410/include/mach/regs-s3c2443-clock.h | 1 + 1 files changed, 1 insertions(+), 0 deletions(-)
arch/arm/mach-s3c2410/include/mach/regs-s3c2443-clock.h +1 -0
@@ -102,6 +102,7 @@#define S3C2443_PCLKCON_UART3 (1<<3)#define S3C2443_PCLKCON_IIC (1<<4)#define S3C2443_PCLKCON_SDI (1<<5) +#define S3C2443_PCLKCON_HSSPI (1<<6)#define S3C2443_PCLKCON_ADC (1<<7)#define S3C2443_PCLKCON_AC97 (1<<8)#define S3C2443_PCLKCON_IIS (1<<9)
Signature · 1 line
1.7.2.3
PATCH v2 3/4 S3C2416: Add HSSPI clock sourced from EPLL
In reply to Heiko StübnerThis clock is special to the S3C2416/2450 SoCs.
---
Changes since v1: move hsspi sources array
arch/arm/mach-s3c2416/clock.c | 28 ++++++++++++++++++++++++++++ 1 files changed, 28 insertions(+), 0 deletions(-)
arch/arm/mach-s3c2416/clock.c +28 -0
@@ -38,6 +38,32 @@ static unsigned int armdiv[8] = { [7] = 8, }; +static struct clksrc_clk hsspi_eplldiv = { + .clk = { + .name ="hsspi-eplldiv" , + .parent = &clk_esysclk.clk, + .ctrlbit = (1 <<14 ), + .enable = s3c2443_clkcon_enable_s, + }, + .reg_div = { .reg =S3C2443_CLKDIV1 , .size =2 , .shift =24 }, +}; + +static struct clk *hsspi_sources[] = { + [0 ] = &hsspi_eplldiv.clk, + [1 ] =NULL ,/* to fix */ +}; + +static struct clksrc_clk hsspi_mux = { + .clk = { + .name ="hsspi-if" , + }, + .sources = &(struct clksrc_sources ) { + .sources = hsspi_sources, + .nr_sources =ARRAY_SIZE (hsspi_sources), + }, + .reg_src = { .reg =S3C2443_CLKSRC , .size =1 , .shift =18 }, +}; +static struct clksrc_clk hsmmc_div[] = { [0 ] = { .clk = {
@@ -114,6 +140,8 @@ void __init_or_cpufreq s3c2416_setup_clocks(void)static struct clksrc_clk *clksrcs[]__initdata = { + &hsspi_eplldiv, + &hsspi_mux, &hsmmc_div[0 ], &hsmmc_div[1 ], &hsmmc_mux[0 ],
Signature · 1 line
1.7.2.3
PATCH v2 4/4 S3C2443: Add hsspi-clock from pclk and rename unused S3C2443 hsspi sclk
In reply to Heiko StübnerThis clock is common to S3C2443/2416/2450.
---
Changes since v1: rename s3c2443 hsspi sclk (until now unused)
arch/arm/mach-s3c2443/clock.c | 2 +- arch/arm/plat-s3c24xx/s3c2443-clock.c | 5 +++++ 2 files changed, 6 insertions(+), 1 deletions(-)
arch/arm/mach-s3c2443/clock.c +1 -1
@@ -169,7 +169,7 @@ static struct clksrc_clk clk_arm = {static struct clksrc_clk clk_hsspi = { .clk = { - .name ="hsspi" , + .name ="hsspi-if" , .parent = &clk_esysclk.clk, .ctrlbit =S3C2443_SCLKCON_HSSPICLK , .enable = s3c2443_clkcon_enable_s,
arch/arm/plat-s3c24xx/s3c2443-clock.c +5 -0
@@ -259,6 +259,11 @@ static struct clk init_clocks_off[] = { .enable = s3c2443_clkcon_enable_p, .ctrlbit = S3C2443_PCLKCON_IIS, }, { + .name = "hsspi", + .parent = &clk_p, + .enable = s3c2443_clkcon_enable_p, + .ctrlbit = S3C2443_PCLKCON_HSSPI, + }, { .name = "adc", .parent = &clk_p, .enable = s3c2443_clkcon_enable_p,
Signature · 1 line
1.7.2.3
v2 cover S3C2416: Enable IIS and HSSPI clocks
In reply to Heiko StübnerAm Sonntag, 28. August 2011, 20:06:31 schrieb Heiko St?bner:
Quoted 6 lines
S3C2416/2450 (probably S3C2443 too) can use the newer style kernel-drivers made for S3C64xx and above for their I2S and HS-SPI controllers.
So as a first step in this direction, these patches add their respective clocks.
ping? Any comments?
Thanks
Heiko
v2 cover S3C2416: Enable IIS and HSSPI clocks
Quoted 10 lines · Heiko St?bner
Am Sonntag, 28. August 2011, 20:06:31 schrieb Heiko St?bner:
Quoted 6 lines
S3C2416/2450 (probably S3C2443 too) can use the newer style kernel-drivers made for S3C64xx and above for their I2S and HS-SPI controllers.
So as a first step in this direction, these patches add their respective clocks.
ping? Any comments?
Hi Heiko,
Sorry for late response...came back from Korean traditional holiday :) I will be back on this in this weekend.
Thanks.
Best regards,
Kgene.
--
Kukjin Kim <[email protected]>, Senior Engineer, SW Solution Development Team, Samsung Electronics Co., Ltd.
v2 cover S3C2416: Enable IIS and HSSPI clocks
Am Donnerstag 15 September 2011, 10:49:15 schrieben Sie:
Quoted 9 lines
Quoted 8 lines · Heiko St?bner
Am Sonntag, 28. August 2011, 20:06:31 schrieb Heiko St?bner:
Quoted 6 lines
S3C2416/2450 (probably S3C2443 too) can use the newer style kernel-drivers made for S3C64xx and above for their I2S and HS-SPI controllers.
So as a first step in this direction, these patches add their respective clocks.
Quoted 6 lines
Quoted 1 line
ping? Any comments?
Hi Heiko,
Sorry for late response...came back from Korean traditional holiday :) I will be back on this in this weekend.
Hi Kgene,
another ping, as I'd really like to get this off my back :-)
Thanks
Heiko