Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement MIPI and I3C primitives #306

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

yrabbit
Copy link
Collaborator

@yrabbit yrabbit commented Jan 27, 2025

Primitives for forming MIPI signals - MIPI_OBUF and MIPI_OBUF_A, as well as primitive for receiving MIPI signals - MIPI_IBUF - are implemented.

These are not emulation, but real MIPI buffers, which are available in chips GW1NR-9C and GW1NSR-4C (respectively Tangnano9k and Tangnano4k boards).

The added examples are not use cases, but rather compilation checks. This is due to the fact that the documentation for the actual protocol of communication with MIPI devices is not open and manufacturers of displays and cameras are very reluctant (actually never) to share the description of registers and commands for their devices.

Also support of buffer primitive for exchange via I3C protocol is added here. This protocol also belongs to the MIPI alliance and is not found in open sources.

However, happy owners of documentation for their MIPI and I3C devices can use these primitives.

Primitives for forming MIPI signals - MIPI_OBUF and MIPI_OBUF_A, as well
as primitive for receiving MIPI signals - MIPI_IBUF - are implemented.

These are not emulation, but real MIPI buffers, which are available in
chips GW1NR-9C and GW1NSR-4C (respectively Tangnano9k and Tangnano4k
boards).

The added examples are not use cases, but rather compilation checks.
This is due to the fact that the documentation for the actual protocol
of communication with MIPI devices is not open and manufacturers of
displays and cameras are very reluctant (actually never) to share the
description of registers and commands for their devices.

Also support of buffer primitive for exchange via I3C protocol is added
here. This protocol also belongs to the MIPI alliance and is not found
in open sources.

However, happy owners of documentation for their MIPI and I3C devices
can use these primitives.

Signed-off-by: YRabbit <[email protected]>
@yrabbit
Copy link
Collaborator Author

yrabbit commented Jan 27, 2025

Serializers and deserializers can also be connected to these things, but in the case of Tangnano4k, the lack of CLKDIV will force you to fiddle with general purpose flip flops dividers.

With high-dimension serializers (like OSER8) there is also a problem that IB input passes through one of the inputs of this serializer. Here you have to remember to set MUX depending on which mode (HS or LP) is used :)

@yrabbit yrabbit marked this pull request as ready for review January 29, 2025 21:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant