christinaa / rpi-open-firmware

Open source VPU side bootloader for Raspberry Pi.
Other
1.13k stars 111 forks source link

Is there support for DPI? #42

Open rocinante-sys opened 2 years ago

rocinante-sys commented 2 years ago

rPi supports RGB LCD panels via their GPIO0 bank pins. Would this be hard to add if not supported yet?

I've been playing with the idea of making this (piCore): image

It's a small SoM with BCM2835 and I would need custom firmware as the broadcom license does not allow to run their firmware on anything but official rPi HW.

What I need is eMMC, USB, SPI, I2C and DPI working. Which of these would I need to implement on my own to make it work?

cleverca22 commented 2 years ago

DPI is one of the first video outputs i tested when figuring out the video subsystem but i didnt have a screen at the time, so i was only generating a 100x100 pixel image, and then watching only one bit of the color from a scope

i have since gotten a hyperpixel screen, but it has an init sequence that has to run first, and i havent tested that out yet

https://github.com/librerpi/lk-overlay/blob/master/platform/bcm28xx/dpi/dpi.c

this is the code i was last using for DPI

you can also find me in #raspberrypi-internals on libera if you want a more realtime chat

rocinante-sys commented 2 years ago

Thanks!

I'll test this out as I'm just soldering together a simple rPi zero DPI hat and I have a 24bit 800x480 LCD for testing. I'll hop on the chat too :)

cleverca22 commented 2 years ago

https://github.com/librerpi/lk-overlay/blob/9eb5d65e0da8ac737e44ddda88df96ef613641b6/platform/bcm28xx/dpi/dpi.c#L26-L50

my latest code can now drive a VGA monitor over DPI using the gertvga adapter board

it will automatically compute the divisors needed to hit the target fps, based on the supplied timing parameters

usb-host already works in linux SPI/i2c should just work, but ive only tested i2c the sdhost controller works 90% of the time, ive not bothered checking with sdhci since that would be claimed by wifi normally, but it is an option