Re: How to use SC18IS602 driver ?

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

 



On Mon, Oct 01, 2012 at 01:41:00PM -0500, Bruce Parker wrote:
>  
> 
> > -----Original Message-----
> > From: Guenter Roeck [mailto:linux@xxxxxxxxxxxx] 
> > Sent: Monday, October 01, 2012 12:19 PM
> > To: Bruce Parker
> > Cc: lm-sensors@xxxxxxxxxxxxxx
> > Subject: Re: How to use SC18IS602 driver ?
> > 
> > On Mon, Oct 01, 2012 at 09:03:15AM -0500, Bruce Parker wrote:
> > 
> > [ ... ]
> > 
> > > 
> > > Ok...got i2cdetect installed and below is result:
> > > # i2cdetect 0
> > > WARNING! This program can confuse your I2C bus, cause data loss and
> > > worse!
> > > I will probe file /dev/i2c-0.
> > > I will probe address range 0x03-0x77.
> > > Continue? [Y/n] y
> > >      0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
> > > 00:          -- -- -- -- -- -- -- -- -- -- -- -- --
> > > 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
> > > 20: UU UU UU UU UU UU UU UU UU -- -- -- -- -- -- --
> > > 30: -- 31 -- -- -- -- -- UU -- -- -- -- -- -- -- --
> > > 40: -- -- -- -- -- -- -- -- -- -- -- -- UU -- -- --
> > > 50: UU UU UU UU UU UU UU -- -- -- -- -- -- -- -- --
> > > 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
> > > 70: -- -- -- -- -- -- -- --
> > > I2C-SPI bridge is at addr 28, so it appears to be detected. 
> > > 
> > > Below is my entry in device tree, but I do not see anything 
> > special in
> > > /dev/mtd*
> > >                                 spi: spi@28 {
> > >                                         compatible = 
> > "nxp,sc18is602";
> > >                                         #address-cells = <1>;
> > >                                         #size-cells = <0>;
> > >                                         reg = <0x28>;
> > >                                         m25p80@0 {
> > >                                                 
> > #address-cells = <1>;
> > >                                                 #size-cells = <1>;
> > >                                                 compatible =
> > > "fsl,espi-flash";
> > >                                                 linux,modalias =
> > > "m25p80";
> > >                                                 spi-max-frequency =
> > > <25000000>;
> > >                                                 modal = "s25sl064a";
> > >                                                 reg = <0>;
> > >                                                 mode = <0>;
> > > 
> > >                                                 partition@0 {
> > >                                                     reg = <0x0
> > > 0x00080000>;
> > >                                                     label = "Test
> > > Image";
> > >                                                     read-only;
> > >                                                 };
> > >                                         };
> > >                                 };
> > 
> > I don't know much about devicetree instantiation, but the one 
> > example I found
> > for  m25p80 looks a bit different and much simpler.
> > 
> > 	flash: m25p80@0 {
> >         	compatible = "sst,sst25vf016b";
> > 		spi-max-frequency = <20000000>;
> > 		reg = <0>;
> > 	};
> > 
> Ok, tried your example in my device tree and it definitely changed
> something. Unfortunately, the kernel crashed during booting as shown
> below. But I guess it does imply it was trying to instantiate the
> device, where previous device tree didn't seem to be doing anything for
> the SPI. Do you know how I could try to instantiate the device outside
> of a device tree?
> 

I typically use the new_device ABI I introduced for that purpose:
	https://patchwork.kernel.org/patch/1426841/
Unfortunately, it was not accepted upstream, to some degree because no one
besides me supported it. It does not support creating partitions, but you
should be able to create a simple device with a single partition.

> Unable to handle kernel paging request for instruction fetch
> Faulting instruction address: 0x00000000
> Oops: Kernel access of bad area, sig: 11 [#1]
> PowerPC 44x Platform
> Modules linked in:
> NIP: 00000000 LR: 8022dcb4 CTR: 00000000
> REGS: 9f8a5ec0 TRAP: 0400   Not tainted  (3.4.0-tanisys-sx2-25227)
> MSR: 00029000 <CE,EE,ME>  CR: 22000022  XER: 20000000
> TASK = ef8fd5e0[1039] 'spi0' THREAD: 9f8a4000
> GPR00: 00000000 9f8a5f70 ef8fd5e0 ef8cf400 ef8fd5e0 ffff5762 ffffffff
> ffd23940
> GPR08: 00000001 00000000 ef8cf524 ef8cf524 22002022 10220170 7fff2500
> 7ffe122c
> GPR16: 7ffe1250 00000000 7ffed388 034f2c0f 03000040 7ff31f70 80000010
> 0000000e
> GPR24: 00000000 7ff31e90 00000e80 80047c38 ef8cf504 00029000 ef8cf504
> ef8cf400
> NIP [00000000]   (null)
> LR [8022dcb4] spi_pump_messages+0x108/0x160
> Call Trace:
> [9f8a5f70] [7ff31e90] 0x7ff31e90 (unreliable)
> [9f8a5f90] [80047ba0] kthread_worker_fn+0x98/0x130
> [9f8a5fb0] [80047cbc] kthread+0x84/0x88
> [9f8a5ff0] [8000b390] kernel_thread+0x4c/0x68
> Instruction dump:
> XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
> XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
> ---[ end trace f360c06729bfcc7f ]---

Odd, that suggests that something was not initialized properly. No idea what is
going on, though.

Guenter

> > > 
> > > 
> > > # ls /dev/mtd*
> > > /dev/mtd0        /dev/mtd6        /dev/mtdblock2   /dev/mtdr12
> > > /dev/mtd1        /dev/mtd7        /dev/mtdblock3   /dev/mtdr13
> > > /dev/mtd10       /dev/mtd8        /dev/mtdblock4   /dev/mtdr14
> > > /dev/mtd11       /dev/mtd9        /dev/mtdblock5   /dev/mtdr15
> > > /dev/mtd12       /dev/mtdblock0   /dev/mtdblock6   /dev/mtdr2
> > > /dev/mtd13       /dev/mtdblock1   /dev/mtdblock7   /dev/mtdr3
> > > /dev/mtd14       /dev/mtdblock10  /dev/mtdblock8   /dev/mtdr4
> > > /dev/mtd15       /dev/mtdblock11  /dev/mtdblock9   /dev/mtdr5
> > > /dev/mtd2        /dev/mtdblock12  /dev/mtdr0       /dev/mtdr6
> > > /dev/mtd3        /dev/mtdblock13  /dev/mtdr1       /dev/mtdr7
> > > /dev/mtd4        /dev/mtdblock14  /dev/mtdr10      /dev/mtdr8
> > > /dev/mtd5        /dev/mtdblock15  /dev/mtdr11      /dev/mtdr9
> > > 
> > Since you do see a whole lot of mtd devices, did you try to 
> > access any of those ?
> > 
> > Also, what is the output of /proc/mtd ? That should give you 
> > a mapping from
> > the partition label to the actual mtd device if the partition 
> > was created.
> > 
> > Thanks,
> > Guenter
> > 
> Forgot to include this before but /proc/mtd shows nothing even though
> all those files are there.
> # cat /proc/mtd
> dev:    size   erasesize  name
> #
> 
> Bruce...
> 

_______________________________________________
lm-sensors mailing list
lm-sensors@xxxxxxxxxxxxxx
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors


[Index of Archives]     [Linux Kernel]     [Linux Hardware Monitoring]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux