So apparently it is a pretty simple process.:
1. map the address at i2c-1 either manually or using overlay. I used
manually for now:
echo pcf8574 0x39 > /sys/class/i2c-adapter/i2c-1/new_device
now when we do dmesg | tail we sould see the following:
[ 7249.401502] pcf857x 1-0039: probed
[ 7249.401581] i2c i2c-1: new_device: Instantiated device pcf8574 at 0x39
Also it will show with the following command:
cat /sys/kernel/debug/gpio
GPIOs 0-31, platform/44e07000.gpio, gpio:
gpio-6 ( |cd ) in hi IRQ
gpio-12 ( |P9_20 ) in lo
gpio-13 ( |P9_19 ) in lo
GPIOs 32-63, platform/4804c000.gpio, gpio:
gpio-53 ( |? ) out lo
gpio-54 ( |? ) out lo
gpio-55 ( |? ) out lo
gpio-56 ( |? ) out lo
gpio-59 ( |clk_mcasp0 ) out lo
GPIOs 64-95, platform/481ac000.gpio, gpio:
GPIOs 96-127, platform/481ae000.gpio, gpio:
GPIOs 496-503, i2c/1-0039, pcf8574, can sleep: <===
GPIOs 504-511, i2c/1-0038, pcf8574, can sleep:
It should also appear as U now:
# i2cdetect -y -r 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- UU UU 3a -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- 76 --
2. Set up the gpio needed:
echo 497 > /sys/class/gpio/export
then cd into it and we should be able to do usual gpio stuff in there
On Friday, November 2, 2018 at 2:38:01 PM UTC-4, MG wrote:
>
>
> I have 3 PCF8574A IO expanders connected to my i2c-1 line for BeagleBone
> Black. After I enable i2c-1 line overlay I see them at addresses 0x38,
> 0x39, 0x3A
> 0 1 2 3 4 5 6 7 8 9 a b c d e f
> 00: -- -- -- -- -- -- -- -- -- -- -- -- --
> 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
> 20: 20 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
> 30: -- -- -- -- -- -- -- -- 38 39 3a -- -- -- -- --
> 40: -- -- -- -- -- -- -- -- UU -- -- -- -- -- -- --
> 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
> 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
> 70: -- -- -- -- -- -- -- --
>
> Now I can do
> echo pcf8574 0x38 > /sys/class/i2c-adapter/i2c-1/new_device and the device
> shows up under /sys/bus/i2c/device/1-0038/. I wrote a quick c function
> that connects to the i2c-1 at one of the addresses and set the pin as
> INPUT/OUTPUTS and read/write values. So all is great but I was told that
> there are drivers for pcf8574 that can be used to map it to /sys/class/gpio
> which makes using it easier. Where are these drivers and how do I use them?
> I found thm here (
> https://elixir.bootlin.com/linux/v2.6.25/source/drivers/i2c/chips/pcf8574.c).
> How do I get them onto my board and do I need to map anything for IO
> expander to GPIO?
>
--
For more options, visit http://beagleboard.org/discuss
---
You received this message because you are subscribed to the Google Groups
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/beagleboard/26c65304-f9d0-49cc-9086-109f36318015%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.