Automotive product for Hikey 960

So I’ve been working on an automotive ivi utilizing hikey960.
I have it in a state where it is a heck of a lot more workable than any of the cheap import android car radios.

I would like to get some/most/all of it upstreamed to AOSP.

I just finished a round of cleanup that allows it to coexist with the “standard” configuration for hikey960.

The work is all here;

I would like advice on the following;

  1. How to work with upstream,
  2. What parts are reasonable to push upstream,
  3. What kind of changes will be needed in order to facilitate the process and comply with upstream requirements.

There are some things that are not yet ironed out fully, including the i2s2 configuration in the kernel device tree (I think I can make it work with the hdmi configuration rather than having to replace it), selinux (currently is permissive), and a couple of patches I’ve had to make to AOSP outside of the device tree and kernel in order to get the AMFM radio working.


I can’t really speak to any of those things, but I did want to say that this is some impressive work. I’ve been working on a different part of the Vehicle subsystem, so I know how much effort you’ve put into this. That’s really awesome.

+1 on that. There’s a lot of useful (I suspect very hard won) knowledge in some of the one line patches. I certainly expect to raid it for ideas over time.

I’m afraid I’m not the best person to help you figure out what bits are good for AOSP… but hopefully someone will be along shortly!

So yea, I’ve started looking at the changes and they do look interesting. I’d be happy to help you through the process of figuring out what we can upstream and what you might have to rework to do so.

I’ll start adding comments on your github branches.

@jstultz : I’ve continued working on the project, and have implemented your suggestions. In particular;

  • Both HDMI and SCO audio drivers are now enabled in the kernel (though obviously they can’t be used simultaneously since they share wiring).
  • I’ve fixed up the selinux policy and returned it to enforcing.