[Armadillo:09036] Re: Armadillo-460 でSPI使用設定について

Yamamoto email@hidden
2013年 7月 14日 (日) 15:56:23 JST


Yamamotoです。

On Sun, 14 Jul 2013 13:21:54 +0900 (JST)
"Yasuhisa Nakamura" <email@hidden> wrote:

> Yamamotoさん、
> 中村です。
> 
> 別な理由なのですが、私も先週ほぼ同じことをA460でやっていました。
> [Armadillo:05589]で始まるスレッドでの竹之下さんの解説の通りですので、
> Yamamotoさんとやっていることはは同じだと思います。

後で確認してみます。

> 
> 私の場合、spidevの設定を入れてもYamamotoさんのようなエラーには
> ならないのですが、気になったので、ソースをちょっと見てみました。
> 
> ブート時のメッセージで、
> 
> >> >>>> SCSI subsystem initialized
> >> >>>> mxc_spi: probe of mxc_spi.0 failed with error -22        <== エラーになっている
> >> >>>> CSPI: mxc_spi-2 probed
> 
> エラー番号(EINVAL)は表示されてますが、
> その理由が何も表示されていません。
> 
> drivers/spiの下にあるmxc_spi.cのprobe関連を見てみると、
> メッセージなしでエラーreturnする箇所は限られてます。
> 
> たとえば、
> static int mxc_spi_probe(struct platform_device *pdev)
> {
>         ...
>         mxc_platform_info = (struct mxc_spi_master *)pdev->dev.platform_data;
>         if (!mxc_platform_info) {
>                 dev_err(&pdev->dev, "can't get the platform data for CSPI\n");
>                 return -EINVAL;
>         }
>         ...
> 
> この部分でEINVALになったのならば、
>   "can't get the platform data for CSPI"
> というメッセージが表示されるはずですね。
> 
> 試に、この関数mxc_spi_probe()の入り口で強制的に
>      return -EINVAL;
> をやってみたところ、Yamamotoさんと同じエラー表示、
>   mxc_spi: probe of mxc_spi.0 failed with error -22
> になりましたので、この関数の下で問題が発生しているのでは
> ないかと思います(絶対にこの下、とは言い切れませんが)。
> #竹之下さんも同じことを言ってましたね。
> 
> ソースから、エラーメッセージがないままEINVALで戻っている場所を
> 探せればいいのですが、ソースを追っただけでは簡単には見つからない
> と思います。
> 
> そこで力技になってしまいますが(エラーが再現できる環境でないと
> これの方法は使えませんのでYamamotoさんにやってもらうしかない)、
> printk()やdev_xxx()を使って、通過したところを追いかけてみては
> どうでしょうか?
> 
> たとえば、
> static int mxc_spi_probe(struct platform_device *pdev)
> の入り口に、
>   dev_info(&pdev->dev, "xxxxx hoge xxxx\n");
> というコードを入れると、起動時に
>   SCSI subsystem initialized
>   mxc_spi mxc_spi.0: xxxxx hoge xxxx     <----- これ!
>   CSPI: mxc_spi-0 probed
> のように表示されます。
> 
> printk()を使うなら、こんな感じです。
>   printk(KERN_INFO "xxxxx hoge xxxxx\n");
> 
> こういったものを
>   spi.c
>   mxc_spi.c
>   spidev.c
> などに適当にあたりを付けて、ちりばめてみます。

これも確かめてみます。
printfでは試したのですが、使用できない事を思い出して確認をどうしようか保留にしていたところです。
printkとかは使ったことがなかったので、てっきり独自関数と思い込んでました・・・

> 
> -- 
> なかむら
> 
> [Armadillo:09034]で Yamamoto さんは書きました:
> > Yamamotoです。
> >
> > 長い間確認が出来ませんでした。
> >
> > 一つ解ったのは、下記のパッチをあてなければ初期化は成功しました。
> >> ----------------------------------------------------------------------------------------
> >>   +++ b/arch/arm/mach-mx25/armadillo400.c
> >>   @@ -553,6 +553,12 @@ static struct mxc_spi_master armadillo400_spi1_data = {
> >>     };
> >>     static struct spi_board_info armadillo400_spi1_board_info[] __initdata = {
> >>   +       {
> >>   +               .modalias = "spidev",
> >>   +               .max_speed_hz = 1000000,
> >>   +               .bus_num = 1,
> >>   +               .chip_select = 0,
> >>   +       },
> >>     };
> >>     #endif
> >> ----------------------------------------------------------------------------------------
> 
> (途中省略 -- nakamura)
> 
> >> (2013/06/22 13:11), Yamamoto wrote:
> >> > Yamamotoです。
> >> >
> >> > On Fri, 21 Jun 2013 22:13:24 +0900
> >> > Koyo Takenoshita <email@hidden> wrote:
> >> >
> >> >> 竹之下です。
> >> >>
> >> >>> 結線図を見たのですが、CSPI1_RDYとCSPI1_SS1が繋がっていません。
> >> >>> CSPI1_SS1は使用しない設定をmenuconfigで出来ますが、CSPI1_RDYが繋がっていないとど
> >> >>> うなるのでしょうか?
> >> >> RDY 信号はつながって無くても大丈夫です。
> >> >>
> >> >>>> mxc_spi: probe of mxc_spi.0 failed with error -22        <== エラーになっている
> >> >>>> CSPI: mxc_spi-2 probed
> >> >> 問題としては、ここですね。
> >> >>
> >> >> -22というのは、-EINVAL です。
> >> >>
> >> >> mxc_spi.0(CSPI1)は、エラーになっていて、
> >> >> mxc-spi-2(CSPI3)はエラーになっていません。
> >> >
> >> >   mxc-spi-2(CSPI3)は、元の設定のままになっているので大丈夫と思いますし、現状は使用しないので良いので
> >> > すが。
> >> >
> >> >>
> >> >> probeに失敗していると言っているので、
> >> >> linux-2.6.26-at/drivers/spi/mxc_spi.c::mxc_spi_probe()
> >> >> のどこかで、-EINAVL となっているのだと思います。
> 
> (途中省略 -- nakamura)
> 
> >> >>>> SCSI subsystem initialized
> >> >>>> mxc_spi: probe of mxc_spi.0 failed with error -22        <== エラーになっている
> >> >>>> CSPI: mxc_spi-2 probed
> >> >>>> usbcore: registered new interface driver usbfs
> >> >>>> usbcore: registered new interface driver hub
> >> >>>> usbcore: registered new device driver usb
> 
> (以下省略 -- nakamur)
> 
> 
> _______________________________________________
> armadillo mailing list
> email@hidden
> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo

(^_^)v(^_^)/~(^_^)v(^_^)/~
     山本 伸夫
   email@hidden
(^_^)/~(^_^)v(^_^)/~(^_^)v




armadillo メーリングリストの案内