Options for FBSD support with LCD device - new project

Bernd Walter ticso at cicely7.cicely.de
Mon Mar 18 23:31:23 UTC 2019


On Mon, Mar 18, 2019 at 08:57:28PM +0000, Kaya Saman wrote:
> <snip>
> 
> >>>I'm not sure what would give you that impression about i2c and
> >>>spi.  I
> >>>belive they're well-supported on virtually every arm SOC we have
> >>>any
> >>>support for at all (except maybe amlogic/odroid and exynos, both of
> >>>which are rapidly bitrootting from neglect).  We have command-line
> >>>tools to read and write data to i2c and spi devices from userland,
> >>>as
> >>>well as programmatic interfaces using ioctl() for higher-
> >>>performance
> >>>needs like a rasterized spi display.
> >>>
> >>>I'm the person who does most of the i2c and spi driver work for all
> >>>of
> >>>freebsd (not just arm), and it's something we use heavily in our
> >>>products at $work, so I tend to stay on top of it.
> >>>
> >>>To enable i2c or spi on any given platform, you usually do have to
> >>>touch some FDT code along the way.  That's because almost always,
> >>>the
> >>>pins used by i2c or spi can be used for other things as well, so
> >>>the
> >>>default config (which we get by importing fdt source code from
> >>>linux)
> >>>usually isn't set up to enable those devices.
> >>>
> >>>To enable them you typically have to write and compile a small dts
> >>>overlay and set a variable in /boot/loader.conf to have that
> >>>overlay
> >>>loaded at boot time.  None of that is hard, but there is quite a
> >>>bit to
> >>>explain, more than I can do right here in this email in the middle
> >>>of a
> >>>$work day.  I guess maybe I should write a wiki page for it.
> >>>
> >>>-- Ian
> >>
> Finding this thread: https://forum.pine64.org/showthread.php?tid=6232
> 
> It seems that there is an official image for pine64 platform: 
> http://ftp.freebsd.org/pub/FreeBSD/releases/arm64/aarch64/ISO-IMAGES/12.0/
> 
> 
> Would anyone recommend the Pine64?
> 
> Also which model as there are several: 
> http://wiki.pine64.org/index.php/Main_Page#PINE64_Devices

The Pine64 is an excellent board, but so far I've only used it with serial
console.
The Pinebook, which is based on very similar hardware, however works nicely
with it's screen, but not done any X tests yet, only console.

If you want a smallscreen, which just works with FreeBSD then you should
try this one:
https://www.waveshare.com/3.5inch-HDMI-LCD.htm
I've tested it with FreeBSD in text mode.
The touchscreen is based on an XP2046 chip, which (AFAIK) we don't support,
but it shouldn't be difficult to write a driver for it.
It is an HDMI display and should work on other boards as well, but it is
mechanically designed to hook up to an Raspberry with a special HDMI
interconnect PCB.
I also had to define config.txt entries for many of their HDMI displays, which
is raspberry specific.
If you are located in Germany, you can buy it from me, I'm a distributor of
Waveshare.
That said, I can't suggest all of the Waveshare components for use with FreeBSD.
Especially the touchscreen support experience is mixed, some work out of the box
with wmt(4), some don't.

The SPI based displays work by running HDMI as dummy output in a specific
resolution and then regularily grab the fbdev data and push it the the SPI
display.
It should be possible to write software for that, maybe even in userland, but
getting the display initialisation right requires some research.
On the display module they use shift registers to the parallel data input of
the panel.
They also have XP2046 base touch chips.

> I could go with A64 or H64, though I wonder if there is a mode basic 
> model out there? I don't need 4k or even HD graphics, or 'desktop' 
> related stuff. A serial console would be fine or even vga just as long 
> as the board is stable and robust and won't crash or hang often.

-- 
B.Walter <bernd at bwct.de> http://www.bwct.de
Modbus/TCP Ethernet I/O Baugruppen, ARM basierte FreeBSD Rechner uvm.


More information about the freebsd-arm mailing list