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$ 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 <da...@lechnology.com> 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 <da...@lechnology.com> wrote: > >> On 01/08/2018 07:27 PM, Mark Grosen wrote: >> >> On Mon, Jan 8, 2018 at 10:08 AM David Lechner <da...@lechnology.com> >> 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 beagleboard+unsubscr...@googlegroups.com. >> 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 beagleboard+unsubscr...@googlegroups.com. > > 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 beagleboard+unsubscr...@googlegroups.com. > 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 beagleboard+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/beagleboard/CAL8ugEdJZPRwWuYzZm5KbEmjGH%2B%2BfjYMmU%2B8aoPvzE_3HQ9OGQ%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.