Re: Problem using S3C2416's HSSPI

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Am Montag, 1. Oktober 2012, 21:40:35 schrieb Sylwester Nawrocki:
> On 10/01/2012 09:18 PM, Heiko Stübner wrote:
> > Hi José,
> > 
> > Am Montag, 1. Oktober 2012, 19:32:15 schrieb José Miguel Gonçalves:
> >> I'm trying to use the HSSPI controller on a S3C2416 based board but I'm
> >> having some problems.
> >> 
> >> I've added "&s3c64xx_device_spi0" to my array of platform devices and
> >> added a call to s3c64xx_spi0_set_platdata(NULL, 0, 1) before
> >> platform_add_devices(). When the kernel starts I see the following
> >> error:
> >> 
> >> s3c64xx-spi s3c6410-spi.0: Unable to acquire clock 'spi'
> >> s3c64xx-spi: probe of s3c6410-spi.0 failed with error -2
> > 
> > what kernel version do you use?
> > 
> > I.e. the clock support for the s3c64xx-spi on s3c2443 and s3c2416 was
> > added through [1] in march - so it's not this old.
> 
> In this commit
> 
> commit a5238e360b715e9a1bb39d7d3537f78cc9e9e286
> Author: Thomas Abraham <thomas.abraham@xxxxxxxxxx>
> Date:   Fri Jul 13 07:15:14 2012 +0900
> 
>     spi: s3c64xx: move controller information into driver data
> 
>     Platform data is used to specify controller hardware specific
> information such as the tx/rx fifo level mask and bit offset of rx fifo
> level. Such information is not suitable to be supplied from device tree.
> Instead, it can be moved into the driver data and removed from platform
> data.
> 
>     Signed-off-by: Thomas Abraham <thomas.abraham@xxxxxxxxxx>
>     Acked-by: Jaswinder Singh <jaswinder.singh@xxxxxxxxxx>
>     Acked-by: Grant Likely <grant.likely@xxxxxxxxxxxx>
>     Signed-off-by: Kukjin Kim <kgene.kim@xxxxxxxxxxx>
> 
> All "s3c64xx-spi.0" devname fields that you added were replaced with
> "s3c24xx-spi.0". I wonder if that's not the reason clk_get(..., "spi");
> fails in the spi-s3c64xx driver used on mach-s3c24xx. But it of course
> depends on the kernel version, we need to first clarify that.
> 
> diff --git a/arch/arm/mach-s3c24xx/common-s3c2443.c
> b/arch/arm/mach-s3c24xx/common-s3c2443.c index aeeb2be..aeb4a24 100644
> --- a/arch/arm/mach-s3c24xx/common-s3c2443.c
> +++ b/arch/arm/mach-s3c24xx/common-s3c2443.c
> @@ -559,7 +559,7 @@ static struct clk hsmmc1_clk = {
> 
>  static struct clk hsspi_clk = {
>         .name           = "spi",
> -       .devname        = "s3c64xx-spi.0",
> +       .devname        = "s3c2443-spi.0",
>         .parent         = &clk_p,
>         .enable         = s3c2443_clkcon_enable_p,
>         .ctrlbit        = S3C2443_PCLKCON_HSSPI,
> @@ -633,7 +633,7 @@ static struct clk_lookup s3c2443_clk_lookup[] = {
>         CLKDEV_INIT(NULL, "clk_uart_baud2", &clk_p),
>         CLKDEV_INIT(NULL, "clk_uart_baud3", &clk_esys_uart.clk),
>         CLKDEV_INIT("s3c-sdhci.1", "mmc_busclk.0", &hsmmc1_clk),
> -       CLKDEV_INIT("s3c64xx-spi.0", "spi_busclk0", &hsspi_clk),
> +       CLKDEV_INIT("s3c2443-spi.0", "spi_busclk0", &hsspi_clk),
>  };

ahaa ... that's the cause. As far as I was able to determine, in the patchset 
only the clocks were renamed and the different device names introduced.

The spi devices did not get a function to set the name, like for the rtc, adc 
and nand. The devices are named s3c6410-spi by default, so it seems only the 
s3c64xx machines should have a working spi currently.

I'm working on a patch to fix this for all Samsung arches.


Heiko
--
To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux SoC Development]     [Linux Rockchip Development]     [Linux USB Development]     [Video for Linux]     [Linux Audio Users]     [Linux SCSI]     [Yosemite News]

  Powered by Linux