Perhaps something is changing the pinmux later in boot. I'm not seeing anything
for i2c1, but there is an overlay for i2c2.
https://github.com/beagleboard/linux/blob/4.14/arch/arm/boot/dts/am335x-bone-pinmux-i2c2.dtsi
You should be able to add this to your overlay and modify it for i2c1. Then the
pins should get muxed before the i2c driver tries to load.
On 01/09/2018 11:31 PM, Mark Grosen wrote:
Thanks, David. I am not competent enough on DT yet. I see one of the I2C
devices has a pinctrl in the device-tree but i2c1 does not. I don't understand
why/how when I open /dev/i2c-1 from userspace that the pins seem to get
assigned. Hopefully Robert can help.
Mark
On Tue, Jan 9, 2018 at 7:26 PM David Lechner <[email protected]
<mailto:[email protected]>> wrote:
Sounds like a question for RCN. I'm not up to speed on the pinctrl
situation on BeagleBone. I'm weird and don't use capemanager or any of the
usual BealgeBone stuff.
But, I think you are right to think the problem is cause by pin muxing
somehow.
On 01/09/2018 12:41 AM, Mark Grosen wrote:
I moved 4.14.12-ti-r24 and now it gets past the the vbat regulator, but
then fails trying to write to the I2C with a bus ready timeout:
mark@pocket:~/bb.org-overlays/src/arm$
<mailto:mark@pocket:%7E/bb.org-overlays/src/arm$> dmesg | grep -P 'ssd|i2c'
[ 0.508117] omap_i2c 44e0b000.i2c: could not find pctldev for node
/ocp/l4_wkup@44c00000/scm@210000/pinmux@800/pinmux_i2c0_pins, deferring probe
[ 0.509098] omap_i2c 4802a000.i2c: bus 1 rev0.11 at 400 kHz
[ 0.509821] omap_i2c 4819c000.i2c: bus 2 rev0.11 at 400 kHz
[ 1.945474] omap_i2c 4802a000.i2c: timeout waiting for bus ready
[ 1.945496] ssd1307fb 1-003c: Couldn't send I2C command 2.
[ 1.945554] ssd1307fb: probe of 1-003c failed with error -110
[ 2.057076] i2c /dev entries driver
[ 2.178366] input: tps65217_pwr_but as
/devices/platform/ocp/44e0b000.i2c/i2c-0/0-0024/tps65217-pwrbutton/input/input0
[ 2.179568] omap_i2c 44e0b000.i2c: bus 0 rev0.11 at 400 kHz
After the boot finishes, I can use the device from userspace with no
problems. It seems that i2c-1 is registered before the ssd1307fb probe happens.
Are pins not assigned at this point?
Mark
On Mon, Jan 8, 2018 at 7:10 PM David Lechner <[email protected]
<mailto:[email protected]>> wrote:
The linux driver for this is an i2c driver. So the device tree node that you
added will create an i2c device in the linux kernel (i.e. /sys/bus/i2c/devices/1-003c).
Then udev sees that this device matches the compatible string of the
"ssd1307fb" driver (you will see this listed in `lsmod`). This driver is bound
to the device and calls the drivers probe function. This is where the error message is
coming from. If the probe function had completed successfully, it would have registered a
new fbdev device.
It looks like this error is a bug in the linux kernel that was fixed in kernel
v4.11.
<https://github.com/torvalds/linux/commit/cfc5b2b551d8c089079e754525839101b1b43624>
<https://github.com/torvalds/linux/commit/cfc5b2b551d8c089079e754525839101b1b43624>.
You can work around this by adding a fixed regulator to the device tree
and adding it to your device. Or, if you are compiling your own kernel anyway,
you can grab the patch I linked.
On 1/8/18 8:09 PM, Mark Grosen wrote:
mark@pocket:~$ dmesg | grep -P 'fb|ssd'
[ 2.165499] ssd1307fb 1-003c: failed to get VBAT regulator: -19
How does fbdev "find" the ssd1306?
On Mon, Jan 8, 2018 at 5:51 PM David Lechner <[email protected]
<mailto:[email protected]>> wrote:
On 01/08/2018 07:27 PM, Mark Grosen wrote:
On Mon, Jan 8, 2018 at 10:08 AM David Lechner <[email protected]
<mailto:[email protected]>> wrote:
On 01/07/2018 05:59 PM, Mark Grosen wrote:
> I am trying to get the kernel driver for the ssd1306 working
with the PocketBeagle USB HUB cape which has a 64x32 SSD1306 display
(https://www.tindie.com/products/microwavemont/oled-with-24-port-usb-hub-cape-for-pocketbeagle/)
I know it is physically working as I can use it via user-mode I2C. I believe a
small change is needed to support the unusual 64 pixel width of this board. I have
built and loaded a new kernel and have a .dtbo
And what does your device tree overlay look like?
/dts-v1/;
/plugin/;
#include <dt-bindings/board/am335x-bbw-bbb-base.h>
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/pinctrl/am33xx.h>
/ {
fragment@0 {
target = <&i2c1>;
__overlay__ {
status = "okay";
#address-cells = <1>;
#size-cells = <0>;
ssd1306: oled@3c {
compatible = "solomon,ssd1306fb-i2c";
reg = <0x3c>;
solomon,width = <64>;
solomon,height = <32>;
solomon,page-offset = <0>;
};
};
};
};
> loaded via u-boot with 4.4.88-ti-r128 kernel. It shows up in
/proc/device-tree correctly (at least as far as I can tell - the entries match the
dts values). I am missing how to get this connected to the framebuffer world -
there is no /dev/fb0 showing up. I see the config options appear to be enabled (I
am using the defconfig).
And which options did you enable/are enabled?
mark@pocket:~$ zcat /proc/config.gz | grep CONFIG_FB | grep -v '#'
CONFIG_FB=y
CONFIG_FB_CMDLINE=y
CONFIG_FB_NOTIFY=y
CONFIG_FB_CFB_FILLRECT=y
CONFIG_FB_CFB_COPYAREA=y
CONFIG_FB_CFB_IMAGEBLIT=y
CONFIG_FB_SYS_FILLRECT=y
CONFIG_FB_SYS_COPYAREA=y
CONFIG_FB_SYS_IMAGEBLIT=y
CONFIG_FB_SYS_FOPS=y
CONFIG_FB_DEFERRED_IO=y
CONFIG_FB_BACKLIGHT=y
CONFIG_FB_MODE_HELPERS=y
CONFIG_FB_TILEBLITTING=y
CONFIG_FB_SMSCUFX=m
CONFIG_FB_UDL=m
CONFIG_FB_SIMPLE=y
CONFIG_FB_SSD1307=y
Looks alright to me. Is there any error in `dmesg`?
--
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]
<mailto:[email protected]>.
To view this discussion on the web visit
https://groups.google.com/d/msgid/beagleboard/8d1b9f53-ab73-6bf4-92d0-ebcfb072bb06%40lechnology.com
<https://groups.google.com/d/msgid/beagleboard/8d1b9f53-ab73-6bf4-92d0-ebcfb072bb06%40lechnology.com?utm_medium=email&utm_source=footer>.
For more options, visit https://groups.google.com/d/optout.
--
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]
<mailto:[email protected]>.
To view this discussion on the web visit
https://groups.google.com/d/msgid/beagleboard/CAL8ugEcSLFrFasGKqfX44iR-UDhzeNE9nt4u4Nfirj9oDnC20A%40mail.gmail.com
<https://groups.google.com/d/msgid/beagleboard/CAL8ugEcSLFrFasGKqfX44iR-UDhzeNE9nt4u4Nfirj9oDnC20A%40mail.gmail.com?utm_medium=email&utm_source=footer>.
For more options, visit https://groups.google.com/d/optout.
--
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]
<mailto:[email protected]>.
To view this discussion on the web visit
https://groups.google.com/d/msgid/beagleboard/fab14b2e-8b97-b6ff-80e5-626edd04d9fa%40lechnology.com
<https://groups.google.com/d/msgid/beagleboard/fab14b2e-8b97-b6ff-80e5-626edd04d9fa%40lechnology.com?utm_medium=email&utm_source=footer>.
For more options, visit https://groups.google.com/d/optout.
--
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]
<mailto:[email protected]>.
To view this discussion on the web visit
https://groups.google.com/d/msgid/beagleboard/CAL8ugEdJZPRwWuYzZm5KbEmjGH%2B%2BfjYMmU%2B8aoPvzE_3HQ9OGQ%40mail.gmail.com
<https://groups.google.com/d/msgid/beagleboard/CAL8ugEdJZPRwWuYzZm5KbEmjGH%2B%2BfjYMmU%2B8aoPvzE_3HQ9OGQ%40mail.gmail.com?utm_medium=email&utm_source=footer>.
For more options, visit https://groups.google.com/d/optout.
--
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]
<mailto:[email protected]>.
To view this discussion on the web visit
https://groups.google.com/d/msgid/beagleboard/ab8e70c0-1b4d-e3ec-d49c-26a75ff68a5d%40lechnology.com
<https://groups.google.com/d/msgid/beagleboard/ab8e70c0-1b4d-e3ec-d49c-26a75ff68a5d%40lechnology.com?utm_medium=email&utm_source=footer>.
For more options, visit https://groups.google.com/d/optout.
--
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]
<mailto:[email protected]>.
To view this discussion on the web visit
https://groups.google.com/d/msgid/beagleboard/CAL8ugEdhFwXkQZBG1qZ%3DaWKMVU9QmFy7X6%2B7-sjQ8ahZ0kJxtg%40mail.gmail.com
<https://groups.google.com/d/msgid/beagleboard/CAL8ugEdhFwXkQZBG1qZ%3DaWKMVU9QmFy7X6%2B7-sjQ8ahZ0kJxtg%40mail.gmail.com?utm_medium=email&utm_source=footer>.
For more options, visit https://groups.google.com/d/optout.
--
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/8ae81917-58cd-69f9-a175-7b218868af34%40lechnology.com.
For more options, visit https://groups.google.com/d/optout.