* MAX1236 with smbus (CS5536 ACB0)
@ 2008-10-13 1:20 Andreas Seidler
[not found] ` <48F2A270.8060307-bXdiauyh1GQ7K2kJdssfr+TW4wlIGRCZ@public.gmane.org>
0 siblings, 1 reply; 14+ messages in thread
From: Andreas Seidler @ 2008-10-13 1:20 UTC (permalink / raw)
To: i2c-GZX6beZjE8VD60Wz+7aTrA
I want to connect a MAX1236 (ADC) [1] to a I2C/SMBus in a
PC-Engines/ALIX board to monitor some voltages.
This board have a AMD geode CPU with an an I2C companion (scx200_acb.c).
> Installed I2C busses:
> i2c-0 smbus CS5536 ACB0
> root@OpenWrt:/# i2cdetect -F 0
> Functionalities implemented by /dev/i2c-0:
> I2C no
> SMBus Quick Command yes
> SMBus Send Byte yes
> SMBus Receive Byte yes
> SMBus Write Byte yes
> SMBus Read Byte yes
> SMBus Write Word yes
> SMBus Read Word yes
> SMBus Process Call no
> SMBus Block Write no
> SMBus Block Read no
> SMBus Block Process Call no
> SMBus PEC no
> I2C Block Write yes
> I2C Block Read yes
> root@OpenWrt:/# i2cdetect -y 0
> 0 1 2 3 4 5 6 7 8 9 a b c d e f
> 00: -- -- -- -- -- -- -- -- -- -- -- -- --
> 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
> 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
> 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
> 40: -- -- -- -- -- -- -- -- -- -- -- -- 4c -- -- --
> 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
> 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
> 70: -- -- -- -- -- -- -- --
but i cant access the MAX1236 on slave address 0x34.
(0x4c is the onbard LM90)
Does "I2C no" means the CS5536 is a plain smbus without i2c support?
Regards
Andreas
_______________________________________________
i2c mailing list
i2c-GZX6beZjE8VD60Wz+7aTrA@public.gmane.org
http://lists.lm-sensors.org/mailman/listinfo/i2c
^ permalink raw reply [flat|nested] 14+ messages in thread[parent not found: <48F2A270.8060307-bXdiauyh1GQ7K2kJdssfr+TW4wlIGRCZ@public.gmane.org>]
* Re: MAX1236 with smbus (CS5536 ACB0) [not found] ` <48F2A270.8060307-bXdiauyh1GQ7K2kJdssfr+TW4wlIGRCZ@public.gmane.org> @ 2008-10-13 7:25 ` Jean Delvare [not found] ` <20081013092548.3d58a320-ig7AzVSIIG7kN2dkZ6Wm7A@public.gmane.org> 0 siblings, 1 reply; 14+ messages in thread From: Jean Delvare @ 2008-10-13 7:25 UTC (permalink / raw) To: Andreas Seidler; +Cc: i2c-GZX6beZjE8VD60Wz+7aTrA Hi Andreas, On Mon, 13 Oct 2008 03:20:48 +0200, Andreas Seidler wrote: > I want to connect a MAX1236 (ADC) [1] to a I2C/SMBus in a > PC-Engines/ALIX board to monitor some voltages. > This board have a AMD geode CPU with an an I2C companion (scx200_acb.c). > > > Installed I2C busses: > > i2c-0 smbus CS5536 ACB0 > > root@OpenWrt:/# i2cdetect -F 0 > > Functionalities implemented by /dev/i2c-0: > > I2C no > > SMBus Quick Command yes > > SMBus Send Byte yes > > SMBus Receive Byte yes > > SMBus Write Byte yes > > SMBus Read Byte yes > > SMBus Write Word yes > > SMBus Read Word yes > > SMBus Process Call no > > SMBus Block Write no > > SMBus Block Read no > > SMBus Block Process Call no > > SMBus PEC no > > I2C Block Write yes > > I2C Block Read yes > > root@OpenWrt:/# i2cdetect -y 0 > > 0 1 2 3 4 5 6 7 8 9 a b c d e f > > 00: -- -- -- -- -- -- -- -- -- -- -- -- -- > > 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- > > 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- > > 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- > > 40: -- -- -- -- -- -- -- -- -- -- -- -- 4c -- -- -- > > 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- > > 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- > > 70: -- -- -- -- -- -- -- -- > > but i cant access the MAX1236 on slave address 0x34. > (0x4c is the onbard LM90) Maybe it's not wired properly? If it is wired properly, then another possibility is that the MAX1236 is doing clock stretching beyond what the CS5536 supports... > Does "I2C no" means the CS5536 is a plain smbus without i2c support? Yes and no. It means that the scx200_acb driver runs the CS5536 in SMBus mode without plain I2C support. But there is also the scx200_i2c driver (which I would love to see go away in favor of i2c-gpio but that's another story) which can use the same pins as GPIO to do plain I2C. If I read the MAX1236 datasheet properly, it uses transactions which aren't part of the SMBus set, so you may need to use the scx200_i2c driver, depending on what exactly you need to do with the MAX1236. There are still a few SMBus transactions which should work though, and that may be enough. -- Jean Delvare _______________________________________________ i2c mailing list i2c-GZX6beZjE8VD60Wz+7aTrA@public.gmane.org http://lists.lm-sensors.org/mailman/listinfo/i2c ^ permalink raw reply [flat|nested] 14+ messages in thread
[parent not found: <20081013092548.3d58a320-ig7AzVSIIG7kN2dkZ6Wm7A@public.gmane.org>]
* Re: MAX1236 with smbus (CS5536 ACB0) [not found] ` <20081013092548.3d58a320-ig7AzVSIIG7kN2dkZ6Wm7A@public.gmane.org> @ 2008-10-13 11:11 ` Jonathan Cameron [not found] ` <48F32CE9.8000109-KWPb1pKIrIJaa/9Udqfwiw@public.gmane.org> 2008-10-15 1:01 ` Andreas Seidler 1 sibling, 1 reply; 14+ messages in thread From: Jonathan Cameron @ 2008-10-13 11:11 UTC (permalink / raw) To: Jean Delvare; +Cc: i2c-GZX6beZjE8VD60Wz+7aTrA >>> root@OpenWrt:/# i2cdetect -y 0 >>> 0 1 2 3 4 5 6 7 8 9 a b c d e f >>> 00: -- -- -- -- -- -- -- -- -- -- -- -- -- >>> 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- >>> 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- >>> 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- >>> 40: -- -- -- -- -- -- -- -- -- -- -- -- 4c -- -- -- >>> 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- >>> 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- >>> 70: -- -- -- -- -- -- -- -- >> but i cant access the MAX1236 on slave address 0x34. >> (0x4c is the onbard LM90) > > Maybe it's not wired properly? > > If it is wired properly, then another possibility is that the MAX1236 > is doing clock stretching beyond what the CS5536 supports... > >> Does "I2C no" means the CS5536 is a plain smbus without i2c support? > > Yes and no. It means that the scx200_acb driver runs the CS5536 in > SMBus mode without plain I2C support. But there is also the scx200_i2c > driver (which I would love to see go away in favor of i2c-gpio but > that's another story) which can use the same pins as GPIO to do plain > I2C. If I read the MAX1236 datasheet properly, it uses transactions > which aren't part of the SMBus set, so you may need to use the > scx200_i2c driver, depending on what exactly you need to do with the > MAX1236. There are still a few SMBus transactions which should work > though, and that may be enough. Hi, A driver that should work with this chip is part of the iio subsystem, so I have a fair bit of familiarity (though only via 1238 rather than this exact model) Done a bit of digging around and my original test code was #include <fcntl.h> #include "i2c-dev.h" int main(int argc, char* argv[]) { struct i2c_smbus_ioctl_data arg; union i2c_smbus_data data; int adaptor_nr=atoi(argv[1]); //check this char filename[20]; sprintf(filename,"/dev/i2c-%d",adaptor_nr); int file; if((file = open(filename, O_RDWR))<0) { printf("could not open /dev/i2c-%u\n", adaptor_nr); exit(-1); } if(ioctl(file,I2C_SLAVE, 0x34) < 0) { printf("could not set slave address \n"); return -1; } arg.size = I2C_SMBUS_BYTE; arg.read_write = I2C_SMBUS_WRITE; arg.command = I2C_SMBUS_BYTE; data.byte = 8; arg.data = &data; char buf[2] = {0x79, 0x92}; write(file, buf,2); int i; for(i = 0; i < 20; i++) { read(file,buf,2); unsigned int a =0; a = (buf[0] & 0xF) << 8 | buf[1] ; printf("reading %u\n",a); sleep(1); } } No idea why I did it without using the smbus_write commands though. The iio driver is i2c_transfers I'm afraid. as for i2c detect, I've just blugeoned it into building for the pxa271 board I'm using and it picks up a max1239 just fine. Good luck! Jonathan _______________________________________________ i2c mailing list i2c-GZX6beZjE8VD60Wz+7aTrA@public.gmane.org http://lists.lm-sensors.org/mailman/listinfo/i2c ^ permalink raw reply [flat|nested] 14+ messages in thread
[parent not found: <48F32CE9.8000109-KWPb1pKIrIJaa/9Udqfwiw@public.gmane.org>]
* Re: MAX1236 with smbus (CS5536 ACB0) [not found] ` <48F32CE9.8000109-KWPb1pKIrIJaa/9Udqfwiw@public.gmane.org> @ 2008-10-15 1:13 ` Andreas Seidler 2008-10-15 11:10 ` Jonathan Cameron 0 siblings, 1 reply; 14+ messages in thread From: Andreas Seidler @ 2008-10-15 1:13 UTC (permalink / raw) To: i2c-GZX6beZjE8VD60Wz+7aTrA Jonathan Cameron schrieb: > A driver that should work with this chip is part of the > iio subsystem, so I have a fair bit of familiarity (though > only via 1238 rather than this exact model) I found this subsystem too and its promising, but it depends on RTC with periodic Interupts - and most of embedded hardware lacks of such RTCs. is it possible to attach a ds1307 for this reason? > Done a bit of digging around and my original test code was > > #include <fcntl.h> > > #include "i2c-dev.h" > > int main(int argc, char* argv[]) > { > > struct i2c_smbus_ioctl_data arg; > union i2c_smbus_data data; > int adaptor_nr=atoi(argv[1]); //check this > char filename[20]; > sprintf(filename,"/dev/i2c-%d",adaptor_nr); > > int file; > if((file = open(filename, O_RDWR))<0) > { > printf("could not open /dev/i2c-%u\n", adaptor_nr); > exit(-1); > } > if(ioctl(file,I2C_SLAVE, 0x34) < 0) > { > printf("could not set slave address \n"); > return -1; > } > > arg.size = I2C_SMBUS_BYTE; > arg.read_write = I2C_SMBUS_WRITE; > arg.command = I2C_SMBUS_BYTE; > > data.byte = 8; > arg.data = &data; > > char buf[2] = {0x79, 0x92}; > write(file, buf,2); > int i; > for(i = 0; i < 20; i++) > { > read(file,buf,2); > > unsigned int a =0; > a = (buf[0] & 0xF) << 8 | buf[1] ; > printf("reading %u\n",a); > > sleep(1); > } > > } > > No idea why I did it without using the smbus_write commands > though. The iio driver is i2c_transfers I'm afraid. > > as for i2c detect, I've just blugeoned it into building for > the pxa271 board I'm using and it picks up a max1239 just fine. can i access the ringbuffer of this driver via sysfs or how userspace side should work? Regards Andreas _______________________________________________ i2c mailing list i2c-GZX6beZjE8VD60Wz+7aTrA@public.gmane.org http://lists.lm-sensors.org/mailman/listinfo/i2c ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: MAX1236 with smbus (CS5536 ACB0) 2008-10-15 1:13 ` Andreas Seidler @ 2008-10-15 11:10 ` Jonathan Cameron [not found] ` <48F5CF88.2030500-KWPb1pKIrIJaa/9Udqfwiw@public.gmane.org> 0 siblings, 1 reply; 14+ messages in thread From: Jonathan Cameron @ 2008-10-15 11:10 UTC (permalink / raw) To: Andreas Seidler; +Cc: i2c-GZX6beZjE8VD60Wz+7aTrA Andreas Seidler wrote: > Jonathan Cameron schrieb: >> A driver that should work with this chip is part of the >> iio subsystem, so I have a fair bit of familiarity (though >> only via 1238 rather than this exact model) > > I found this subsystem too and its promising, but it depends on RTC with > periodic Interupts - and most of embedded hardware lacks of such RTCs. In current code periodic interrupts are only required if you want to use a polled ring buffer. This is now a Kconfig option and if you turn it off you'll still have sysfs type interfaces for reading directly from the device. A direct chrdev access to 'scan' the device is on the todo list, but isn't there yet. Hopefully (after fighting with git this afternoon) I should shortly have a repository up so its easier for people to get the current code and to send patches against it. Jonathan > > is it possible to attach a ds1307 for this reason? You could, but I'd imagine this is unnecessary. The reason for using periodic interrupts from an rtc as an initial means of performing periodic sampling was that I had one to hand (pxa27x) and was being lazy. There are lots of other ways of achieving a similar result not requiring specialist hardware and at least one other option will need to be available before the code is ready to go into mainline. Jonathan > >> Done a bit of digging around and my original test code was >> >> #include <fcntl.h> >> >> #include "i2c-dev.h" >> >> int main(int argc, char* argv[]) >> { >> >> struct i2c_smbus_ioctl_data arg; >> union i2c_smbus_data data; >> int adaptor_nr=atoi(argv[1]); //check this >> char filename[20]; >> sprintf(filename,"/dev/i2c-%d",adaptor_nr); >> >> int file; >> if((file = open(filename, O_RDWR))<0) >> { >> printf("could not open /dev/i2c-%u\n", adaptor_nr); >> exit(-1); >> } >> if(ioctl(file,I2C_SLAVE, 0x34) < 0) >> { >> printf("could not set slave address \n"); >> return -1; >> } >> >> arg.size = I2C_SMBUS_BYTE; >> arg.read_write = I2C_SMBUS_WRITE; >> arg.command = I2C_SMBUS_BYTE; >> >> data.byte = 8; >> arg.data = &data; >> >> char buf[2] = {0x79, 0x92}; >> write(file, buf,2); >> int i; >> for(i = 0; i < 20; i++) >> { >> read(file,buf,2); >> >> unsigned int a =0; >> a = (buf[0] & 0xF) << 8 | buf[1] ; >> printf("reading %u\n",a); >> >> sleep(1); >> } >> >> } >> >> No idea why I did it without using the smbus_write commands >> though. The iio driver is i2c_transfers I'm afraid. >> >> as for i2c detect, I've just blugeoned it into building for >> the pxa271 board I'm using and it picks up a max1239 just fine. > > can i access the ringbuffer of this driver via sysfs or how userspace side > should work? > > > Regards > Andreas > > > _______________________________________________ > i2c mailing list > i2c-GZX6beZjE8VD60Wz+7aTrA@public.gmane.org > http://lists.lm-sensors.org/mailman/listinfo/i2c > _______________________________________________ i2c mailing list i2c-GZX6beZjE8VD60Wz+7aTrA@public.gmane.org http://lists.lm-sensors.org/mailman/listinfo/i2c ^ permalink raw reply [flat|nested] 14+ messages in thread
[parent not found: <48F5CF88.2030500-KWPb1pKIrIJaa/9Udqfwiw@public.gmane.org>]
* Re: MAX1236 with smbus (CS5536 ACB0) [not found] ` <48F5CF88.2030500-KWPb1pKIrIJaa/9Udqfwiw@public.gmane.org> @ 2008-10-15 13:06 ` Andreas Seidler 2008-10-15 15:14 ` Jonathan Cameron 0 siblings, 1 reply; 14+ messages in thread From: Andreas Seidler @ 2008-10-15 13:06 UTC (permalink / raw) To: i2c-GZX6beZjE8VD60Wz+7aTrA Jonathan Cameron schrieb: > Andreas Seidler wrote: >> Jonathan Cameron schrieb: >>> A driver that should work with this chip is part of the >>> iio subsystem, so I have a fair bit of familiarity (though >>> only via 1238 rather than this exact model) >> I found this subsystem too and its promising, but it depends on RTC with >> periodic Interupts - and most of embedded hardware lacks of such RTCs. > In current code periodic interrupts are only required if you want to use > a polled ring buffer. This is now a Kconfig option and if you turn it off > you'll still have sysfs type interfaces for reading directly from the > device. if i disable "timer support within iio" and RTC-support in kernel i get ERROR: "rtc_irq_set_state" [drivers/industrialio/industrialio.ko] undefined! ERROR: "rtc_class_open" [drivers/industrialio/industrialio.ko] undefined! ERROR: "rtc_irq_unregister" [drivers/industrialio/industrialio.ko] undefined! ERROR: "rtc_irq_register" [drivers/industrialio/industrialio.ko] undefined! ERROR: "rtc_irq_set_freq" [drivers/industrialio/industrialio.ko] undefined! ERROR: "rtc_class_close" [drivers/industrialio/industrialio.ko] undefined! my .config: CONFIG_INDUSTRIALIO=m CONFIG_INDUSTRIALIO_PTIMER_BOARDINFO=y CONFIG_IIO_RING_BUFFER=y # CONFIG_IIO_TIMERS is not set CONFIG_IIO_SW_RING=m # # Accelerometers # CONFIG_LIS3L02DQ=m # # Analog to digital convertors # CONFIG_MAX1363=m # # Inertial Measurement Units # # CONFIG_ADIS16350 is not set or do i get something wrong? > A direct chrdev access to 'scan' the device is on the todo list, > but isn't there yet. > > Hopefully (after fighting with git this afternoon) I should shortly have > a repository up so its easier for people to get the current code and to > send patches against it. sounds good! Regards Andreas _______________________________________________ i2c mailing list i2c-GZX6beZjE8VD60Wz+7aTrA@public.gmane.org http://lists.lm-sensors.org/mailman/listinfo/i2c ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: MAX1236 with smbus (CS5536 ACB0) 2008-10-15 13:06 ` Andreas Seidler @ 2008-10-15 15:14 ` Jonathan Cameron [not found] ` <48F608E7.9040309-KWPb1pKIrIJaa/9Udqfwiw@public.gmane.org> 0 siblings, 1 reply; 14+ messages in thread From: Jonathan Cameron @ 2008-10-15 15:14 UTC (permalink / raw) To: Andreas Seidler; +Cc: i2c-GZX6beZjE8VD60Wz+7aTrA Andreas Seidler wrote: > > if i disable "timer support within iio" and RTC-support in kernel i get > ERROR: "rtc_irq_set_state" [drivers/industrialio/industrialio.ko] undefined! > ERROR: "rtc_class_open" [drivers/industrialio/industrialio.ko] undefined! > ERROR: "rtc_irq_unregister" [drivers/industrialio/industrialio.ko] undefined! > ERROR: "rtc_irq_register" [drivers/industrialio/industrialio.ko] undefined! > ERROR: "rtc_irq_set_freq" [drivers/industrialio/industrialio.ko] undefined! > ERROR: "rtc_class_close" [drivers/industrialio/industrialio.ko] undefined! > As I'm a bit pushed for time today, there is a temporary git repos at git://www.srcf.ucam.org/jic23-git with an iio-devel branch that is the current state of the industrialio subsystem (complete with bug fix for the compile bug you found!) As the subsystem is still in somewhat of a state of flux the git history is a bit bare (only one commit and that includes all the drivers etc) Feel free to have a play. I've compile tested this set no x86 but not arm as yet, so weird stuff may occur ;) ^ permalink raw reply [flat|nested] 14+ messages in thread
[parent not found: <48F608E7.9040309-KWPb1pKIrIJaa/9Udqfwiw@public.gmane.org>]
* Re: MAX1236 with smbus (CS5536 ACB0) [not found] ` <48F608E7.9040309-KWPb1pKIrIJaa/9Udqfwiw@public.gmane.org> @ 2008-10-15 17:23 ` Andreas Seidler 0 siblings, 0 replies; 14+ messages in thread From: Andreas Seidler @ 2008-10-15 17:23 UTC (permalink / raw) To: i2c-GZX6beZjE8VD60Wz+7aTrA Jonathan Cameron schrieb: > Andreas Seidler wrote: > >> if i disable "timer support within iio" and RTC-support in kernel i get >> ERROR: "rtc_irq_set_state" [drivers/industrialio/industrialio.ko] undefined! >> ERROR: "rtc_class_open" [drivers/industrialio/industrialio.ko] undefined! >> ERROR: "rtc_irq_unregister" [drivers/industrialio/industrialio.ko] undefined! >> ERROR: "rtc_irq_register" [drivers/industrialio/industrialio.ko] undefined! >> ERROR: "rtc_irq_set_freq" [drivers/industrialio/industrialio.ko] undefined! >> ERROR: "rtc_class_close" [drivers/industrialio/industrialio.ko] undefined! >> > > As I'm a bit pushed for time today, there is a temporary git repos at > > git://www.srcf.ucam.org/jic23-git > > with an iio-devel branch that is the current state of the industrialio subsystem > (complete with bug fix for the compile bug you found!) thank you - i cloned your repo but i dont find the expected ./drivers/industrialio subdir in your kernel tree...? > As the subsystem is still in somewhat of a state of flux the git history is a bit > bare (only one commit and that includes all the drivers etc) > > Feel free to have a play. I've compile tested this set no x86 but not arm > as yet, so weird stuff may occur ;) Regards Andreas _______________________________________________ i2c mailing list i2c-GZX6beZjE8VD60Wz+7aTrA@public.gmane.org http://lists.lm-sensors.org/mailman/listinfo/i2c ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: MAX1236 with smbus (CS5536 ACB0) [not found] ` <20081013092548.3d58a320-ig7AzVSIIG7kN2dkZ6Wm7A@public.gmane.org> 2008-10-13 11:11 ` Jonathan Cameron @ 2008-10-15 1:01 ` Andreas Seidler 2008-10-15 8:17 ` Jean Delvare 2008-10-28 20:27 ` Michelle Konzack 1 sibling, 2 replies; 14+ messages in thread From: Andreas Seidler @ 2008-10-15 1:01 UTC (permalink / raw) To: i2c-GZX6beZjE8VD60Wz+7aTrA Jean Delvare schrieb: > Hi Andreas, > > On Mon, 13 Oct 2008 03:20:48 +0200, Andreas Seidler wrote: >> I want to connect a MAX1236 (ADC) [1] to a I2C/SMBus in a >> PC-Engines/ALIX board to monitor some voltages. >> This board have a AMD geode CPU with an an I2C companion (scx200_acb.c). >> >>[...] >> but i cant access the MAX1236 on slave address 0x34. >> (0x4c is the onbard LM90) > > Maybe it's not wired properly? I can access this ADC wired to a i2c-ibm_iic (build-in IBM PPC_P405) > If it is wired properly, then another possibility is that the MAX1236 > is doing clock stretching beyond what the CS5536 supports... and this is my second problem: i cant read the A/D-converted values from userspace (eg. with i2cget) without spezial code or kernel module? >> Does "I2C no" means the CS5536 is a plain smbus without i2c support? > > Yes and no. It means that the scx200_acb driver runs the CS5536 in > SMBus mode without plain I2C support. But there is also the scx200_i2c > driver (which I would love to see go away in favor of i2c-gpio but > that's another story) which can use the same pins as GPIO to do plain > I2C. Thank you for this info! Know i found "the story" in this thread too (http://lkml.org/lkml/2007/4/14/59) with more infos. now i tested scx200_i2c: root@OpenWrt:/# insmod scx200_gpio scx200_gpio: no SCx200 gpio present root@OpenWrt:/# insmod scx200_i2c scx200_i2c: no SCx200 gpio pins available (i hope thats no problem of the openwrt-distro...) are SCx200 GPIO pins supported by i2c_gpio? (http://lkml.org/lkml/2007/4/19/22) should it work with my Geode/LX800 companion? > If I read the MAX1236 datasheet properly, it uses transactions > which aren't part of the SMBus set, so you may need to use the > scx200_i2c driver, depending on what exactly you need to do with the > MAX1236. I only want to monitor some voltages in my wind-/solarpower system and draw some nice charts - nothing spezial. Regards Andreas _______________________________________________ i2c mailing list i2c-GZX6beZjE8VD60Wz+7aTrA@public.gmane.org http://lists.lm-sensors.org/mailman/listinfo/i2c ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: MAX1236 with smbus (CS5536 ACB0) 2008-10-15 1:01 ` Andreas Seidler @ 2008-10-15 8:17 ` Jean Delvare [not found] ` <20081015101736.34e1c11e-ig7AzVSIIG7kN2dkZ6Wm7A@public.gmane.org> 2008-10-28 20:27 ` Michelle Konzack 1 sibling, 1 reply; 14+ messages in thread From: Jean Delvare @ 2008-10-15 8:17 UTC (permalink / raw) To: Andreas Seidler; +Cc: Jordan Crouse, i2c-GZX6beZjE8VD60Wz+7aTrA Hi Andreas, On Wed, 15 Oct 2008 03:01:56 +0200, Andreas Seidler wrote: > Jean Delvare schrieb: > > Hi Andreas, > > > > On Mon, 13 Oct 2008 03:20:48 +0200, Andreas Seidler wrote: > >> I want to connect a MAX1236 (ADC) [1] to a I2C/SMBus in a > >> PC-Engines/ALIX board to monitor some voltages. > >> This board have a AMD geode CPU with an an I2C companion (scx200_acb.c). > >> > >>[...] > >> but i cant access the MAX1236 on slave address 0x34. > >> (0x4c is the onbard LM90) > > > > Maybe it's not wired properly? > > I can access this ADC wired to a i2c-ibm_iic (build-in IBM PPC_P405) That's not the question. Maybe the chip was wired properly on that system and not on the CS5563 system. You can also try i2cdetect -r and see if it makes a difference. > > If it is wired properly, then another possibility is that the MAX1236 > > is doing clock stretching beyond what the CS5536 supports... > > and this is my second problem: i cant read the A/D-converted values from > userspace (eg. with i2cget) without spezial code or kernel module? I'm not sure if i2cget can work with this device. The transactions used by the MAX1236 are raw reads and writes which aren't too SMBus-friendly, but it you don't care too much about performance, i2cget may still work depending on how you read the datasheet. I suggest that you give it a try on the IBM PPC system where you know the chip is properly wired. i2cget 0 0x34 0x81 w should give you the raw value of the 1st ADC channel. You'll have to byte-swap it because SMBus specifies that words go on the wire LSB first. i2cget 0 0x34 0x83 w should give the value of the 2nd ADC channel, and so on. Check the datasheet for details on the configuration byte format. > >> Does "I2C no" means the CS5536 is a plain smbus without i2c support? > > > > Yes and no. It means that the scx200_acb driver runs the CS5536 in > > SMBus mode without plain I2C support. But there is also the scx200_i2c > > driver (which I would love to see go away in favor of i2c-gpio but > > that's another story) which can use the same pins as GPIO to do plain > > I2C. > > Thank you for this info! > Know i found "the story" in this thread too (http://lkml.org/lkml/2007/4/14/59) > with more infos. > > now i tested scx200_i2c: > root@OpenWrt:/# insmod scx200_gpio > scx200_gpio: no SCx200 gpio present > root@OpenWrt:/# insmod scx200_i2c > scx200_i2c: no SCx200 gpio pins available > > (i hope thats no problem of the openwrt-distro...) Hmm, I think I incorrectly assumed that scx200_i2c supported the same devices as scx200_acb, but probably the former only supports the SCx200 CPUs and not the CS553x companion chips, sorry. > are SCx200 GPIO pins supported by i2c_gpio? > (http://lkml.org/lkml/2007/4/19/22) > > should it work with my Geode/LX800 companion? Last time I checked the answer was no, I don't know if things have changed since then. > > If I read the MAX1236 datasheet properly, it uses transactions > > which aren't part of the SMBus set, so you may need to use the > > scx200_i2c driver, depending on what exactly you need to do with the > > MAX1236. > > I only want to monitor some voltages in my wind-/solarpower system and draw some > nice charts - nothing spezial. "Special" doesn't mean anything, as it depends on what you consider to be the normal thing in the first place. -- Jean Delvare _______________________________________________ i2c mailing list i2c-GZX6beZjE8VD60Wz+7aTrA@public.gmane.org http://lists.lm-sensors.org/mailman/listinfo/i2c ^ permalink raw reply [flat|nested] 14+ messages in thread
[parent not found: <20081015101736.34e1c11e-ig7AzVSIIG7kN2dkZ6Wm7A@public.gmane.org>]
* Re: MAX1236 with smbus (CS5536 ACB0) [not found] ` <20081015101736.34e1c11e-ig7AzVSIIG7kN2dkZ6Wm7A@public.gmane.org> @ 2008-10-16 18:12 ` Andreas Seidler 2008-10-16 18:29 ` Marco Costa 2008-10-16 21:25 ` Jordan Crouse 1 sibling, 1 reply; 14+ messages in thread From: Andreas Seidler @ 2008-10-16 18:12 UTC (permalink / raw) To: i2c-GZX6beZjE8VD60Wz+7aTrA Jean Delvare schrieb: > On Wed, 15 Oct 2008 03:01:56 +0200, Andreas Seidler wrote: >> I can access this ADC wired to a i2c-ibm_iic (build-in IBM PPC_P405) > > That's not the question. Maybe the chip was wired properly on that > system and not on the CS5563 system. > > You can also try i2cdetect -r and see if it makes a difference. I'm afraid not. >>> If it is wired properly, then another possibility is that the MAX1236 >>> is doing clock stretching beyond what the CS5536 supports... >> and this is my second problem: i cant read the A/D-converted values from >> userspace (eg. with i2cget) without spezial code or kernel module? > > I'm not sure if i2cget can work with this device. The transactions used > by the MAX1236 are raw reads and writes which aren't too > SMBus-friendly, but it you don't care too much about performance, > i2cget may still work depending on how you read the datasheet. I > suggest that you give it a try on the IBM PPC system where you know the > chip is properly wired. > > i2cget 0 0x34 0x81 w > > should give you the raw value of the 1st ADC channel. You'll have to > byte-swap it because SMBus specifies that words go on the wire LSB > first. good to know about the byte-swap with smbus! btw:I played around with this ADC on my i2c-ibm_iic: root@OpenWrt:/# i2cget -y 0 0x34 0x21 w i get this values of channel 0: OV: 0x00f0 (11110000) 1,6V: 0xaef5 (1010111011110101) 3,2V: 0x5efb (101110111111011) but how to get the converted 12 bit value? Regards Andreas _______________________________________________ i2c mailing list i2c-GZX6beZjE8VD60Wz+7aTrA@public.gmane.org http://lists.lm-sensors.org/mailman/listinfo/i2c ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: MAX1236 with smbus (CS5536 ACB0) 2008-10-16 18:12 ` Andreas Seidler @ 2008-10-16 18:29 ` Marco Costa 0 siblings, 0 replies; 14+ messages in thread From: Marco Costa @ 2008-10-16 18:29 UTC (permalink / raw) To: i2c-GZX6beZjE8VD60Wz+7aTrA Hi, Sorry to intrude, but it seems that it is byte swapped. > i get this values of channel 0: > > OV: 0x00f0 (11110000) Correct: 0xF000 & ~0xF000 = 0x0000 > 1,6V: 0xaef5 (1010111011110101) Correct: 0xf5ae & ~0xF000 = 0x05ae > 3,2V: 0x5efb (101110111111011) Correct: 0xfb5e & ~0xF000 = 0x0b5e the second value is almost 2x the first, as I would expect Regards, Marco Costa _______________________________________________ i2c mailing list i2c-GZX6beZjE8VD60Wz+7aTrA@public.gmane.org http://lists.lm-sensors.org/mailman/listinfo/i2c ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: MAX1236 with smbus (CS5536 ACB0) [not found] ` <20081015101736.34e1c11e-ig7AzVSIIG7kN2dkZ6Wm7A@public.gmane.org> 2008-10-16 18:12 ` Andreas Seidler @ 2008-10-16 21:25 ` Jordan Crouse 1 sibling, 0 replies; 14+ messages in thread From: Jordan Crouse @ 2008-10-16 21:25 UTC (permalink / raw) To: Jean Delvare; +Cc: i2c-GZX6beZjE8VD60Wz+7aTrA On 15/10/08 10:17 +0200, Jean Delvare wrote: > Hi Andreas, > > On Wed, 15 Oct 2008 03:01:56 +0200, Andreas Seidler wrote: > > Jean Delvare schrieb: > > > Hi Andreas, > > > > > > On Mon, 13 Oct 2008 03:20:48 +0200, Andreas Seidler wrote: > > >> I want to connect a MAX1236 (ADC) [1] to a I2C/SMBus in a > > >> PC-Engines/ALIX board to monitor some voltages. > > >> This board have a AMD geode CPU with an an I2C companion (scx200_acb.c). > > >> > > >>[...] > > >> but i cant access the MAX1236 on slave address 0x34. > > >> (0x4c is the onbard LM90) > > > > > > Maybe it's not wired properly? > > > > I can access this ADC wired to a i2c-ibm_iic (build-in IBM PPC_P405) > > That's not the question. Maybe the chip was wired properly on that > system and not on the CS5563 system. > > You can also try i2cdetect -r and see if it makes a difference. > > > > If it is wired properly, then another possibility is that the MAX1236 > > > is doing clock stretching beyond what the CS5536 supports... Its possible, but that would be a first - I haven't yet seen a well behaving chip that the 5536 can't understand. > > and this is my second problem: i cant read the A/D-converted values from > > userspace (eg. with i2cget) without spezial code or kernel module? > > I'm not sure if i2cget can work with this device. The transactions used > by the MAX1236 are raw reads and writes which aren't too > SMBus-friendly, but it you don't care too much about performance, > i2cget may still work depending on how you read the datasheet. I > suggest that you give it a try on the IBM PPC system where you know the > chip is properly wired. > > i2cget 0 0x34 0x81 w > > should give you the raw value of the 1st ADC channel. You'll have to > byte-swap it because SMBus specifies that words go on the wire LSB > first. > > i2cget 0 0x34 0x83 w > > should give the value of the 2nd ADC channel, and so on. Check the > datasheet for details on the configuration byte format. > > > >> Does "I2C no" means the CS5536 is a plain smbus without i2c support? > > > > > > Yes and no. It means that the scx200_acb driver runs the CS5536 in > > > SMBus mode without plain I2C support. But there is also the scx200_i2c > > > driver (which I would love to see go away in favor of i2c-gpio but > > > that's another story) which can use the same pins as GPIO to do plain > > > I2C. > > Thank you for this info! > > Know i found "the story" in this thread too (http://lkml.org/lkml/2007/4/14/59) > > with more infos. > > > > now i tested scx200_i2c: > > root@OpenWrt:/# insmod scx200_gpio > > scx200_gpio: no SCx200 gpio present > > root@OpenWrt:/# insmod scx200_i2c > > scx200_i2c: no SCx200 gpio pins available > > > > (i hope thats no problem of the openwrt-distro...) > > Hmm, I think I incorrectly assumed that scx200_i2c supported the same > devices as scx200_acb, but probably the former only supports the SCx200 > CPUs and not the CS553x companion chips, sorry. I think thats right. > > are SCx200 GPIO pins supported by i2c_gpio? > > (http://lkml.org/lkml/2007/4/19/22) > > > > should it work with my Geode/LX800 companion? > > Last time I checked the answer was no, I don't know if things have > changed since then. No - I don't think this will work. Not because it can't, but because nobody has made the code changes. Access to the GPIO pins is trivial, so typically one would be able to make this go pretty quickly. Jordan -- Jordan Crouse Systems Software Development Engineer Advanced Micro Devices, Inc. _______________________________________________ i2c mailing list i2c-GZX6beZjE8VD60Wz+7aTrA@public.gmane.org http://lists.lm-sensors.org/mailman/listinfo/i2c ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: MAX1236 with smbus (CS5536 ACB0) 2008-10-15 1:01 ` Andreas Seidler 2008-10-15 8:17 ` Jean Delvare @ 2008-10-28 20:27 ` Michelle Konzack 1 sibling, 0 replies; 14+ messages in thread From: Michelle Konzack @ 2008-10-28 20:27 UTC (permalink / raw) To: i2c-GZX6beZjE8VD60Wz+7aTrA [-- Attachment #1.1: Type: text/plain, Size: 1365 bytes --] Hallo Andreas und Hello *, Am 2008-10-15 03:01:56, schrieb Andreas Seidler: > I only want to monitor some voltages in my wind-/solarpower system and draw some > nice charts - nothing spezial. Why not use a much more cheaper Dallas 1-Wire chip DS2450 Quad A/D Converter with user programmable input range (2.56V/5.12V) resolution (1 to 16 bits) and alarm I use it on my Solar-Power-Plant in Morocco with 1300 modules of 130 Wp too... And of course you can use the Kernel Bitbanging-Interface if your Micro- controller does not have a 1-Wire port. Note: I was ongoing to use only I²C but now I am using a mix between SPI, I²C and 1-Wire since I have realized that it is definitively impossibel to get the needed µChips form one system and in the same time cheap... Thanks, Greetings and nice Day/Evening Michelle Konzack Systemadministrator 24V Electronic Engineer Tamay Dogan Network Debian GNU/Linux Consultant -- Linux-User #280138 with the Linux Counter, http://counter.li.org/ ##################### Debian GNU/Linux Consultant ##################### Michelle Konzack Apt. 917 ICQ #328449886 +49/177/9351947 50, rue de Soultz MSN LinuxMichi +33/6/61925193 67100 Strasbourg/France IRC #Debian (irc.icq.com) [-- Attachment #1.2: Digital signature --] [-- Type: application/pgp-signature, Size: 189 bytes --] [-- Attachment #2: Type: text/plain, Size: 157 bytes --] _______________________________________________ i2c mailing list i2c-GZX6beZjE8VD60Wz+7aTrA@public.gmane.org http://lists.lm-sensors.org/mailman/listinfo/i2c ^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2008-10-28 20:27 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-10-13 1:20 MAX1236 with smbus (CS5536 ACB0) Andreas Seidler
[not found] ` <48F2A270.8060307-bXdiauyh1GQ7K2kJdssfr+TW4wlIGRCZ@public.gmane.org>
2008-10-13 7:25 ` Jean Delvare
[not found] ` <20081013092548.3d58a320-ig7AzVSIIG7kN2dkZ6Wm7A@public.gmane.org>
2008-10-13 11:11 ` Jonathan Cameron
[not found] ` <48F32CE9.8000109-KWPb1pKIrIJaa/9Udqfwiw@public.gmane.org>
2008-10-15 1:13 ` Andreas Seidler
2008-10-15 11:10 ` Jonathan Cameron
[not found] ` <48F5CF88.2030500-KWPb1pKIrIJaa/9Udqfwiw@public.gmane.org>
2008-10-15 13:06 ` Andreas Seidler
2008-10-15 15:14 ` Jonathan Cameron
[not found] ` <48F608E7.9040309-KWPb1pKIrIJaa/9Udqfwiw@public.gmane.org>
2008-10-15 17:23 ` Andreas Seidler
2008-10-15 1:01 ` Andreas Seidler
2008-10-15 8:17 ` Jean Delvare
[not found] ` <20081015101736.34e1c11e-ig7AzVSIIG7kN2dkZ6Wm7A@public.gmane.org>
2008-10-16 18:12 ` Andreas Seidler
2008-10-16 18:29 ` Marco Costa
2008-10-16 21:25 ` Jordan Crouse
2008-10-28 20:27 ` Michelle Konzack
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox