WIP A64 module docs

master
itycodes 9 months ago
parent dbb7e626c7
commit bd8a0ee51a

610
A64.md

@ -0,0 +1,610 @@
# Table of Contents
1. [Display](#orga4f111e)
1. [Required Display modules](#orgcf6d9df)
2. [Optional Display modules](#org7d768de)
3. [Internal Display modules](#org6e434b5)
2. [Sound](#orgb545b9b)
1. [Required Sound modules](#orgfe54214)
2. [Optional Sound modules](#org06ab839)
3. [Internal Sound modules](#orgc0147fa)
3. [Media](#org929e163)
4. [Devfreq](#org49499d0)
5. [Crypto](#orge55132d)
6. [Watchdog](#orgabf1537)
7. [Pulse Width Modulation](#org6064a17)
8. [DMA Controller](#org365ec8b)
9. [Camera Sensor Interface](#org7039910)
<a id="orga4f111e"></a>
# Display
<a id="orgcf6d9df"></a>
## Required Display modules
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
<col class="org-left" />
<col class="org-left" />
<col class="org-left" />
<col class="org-left" />
</colgroup>
<thead>
<tr>
<th scope="col" class="org-left">Component</th>
<th scope="col" class="org-left">Config</th>
<th scope="col" class="org-left">Module</th>
<th scope="col" class="org-left">.ko</th>
</tr>
</thead>
<tbody>
<tr>
<td class="org-left">Display core</td>
<td class="org-left"><code>DRM_SUN4I</code></td>
<td class="org-left"><code>sun4i_drm</code></td>
<td class="org-left"><code>sun4i-drm</code></td>
</tr>
<tr>
<td class="org-left">Display modeset</td>
<td class="org-left"><code>DRM_SUN4I</code></td>
<td class="org-left"><code>sun4i_tcon</code></td>
<td class="org-left"><code>sun4i-tcon</code></td>
</tr>
<tr>
<td class="org-left">Display mixer</td>
<td class="org-left"><code>DRM_SUN8I_MIXER</code></td>
<td class="org-left"><code>sun8i_mixer</code></td>
<td class="org-left"><code>sun8i-mixer</code></td>
</tr>
</tbody>
</table>
<a id="org7d768de"></a>
## Optional Display modules
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
<col class="org-left" />
<col class="org-left" />
<col class="org-left" />
<col class="org-left" />
</colgroup>
<thead>
<tr>
<th scope="col" class="org-left">Component</th>
<th scope="col" class="org-left">Config</th>
<th scope="col" class="org-left">Module</th>
<th scope="col" class="org-left">.ko</th>
</tr>
</thead>
<tbody>
<tr>
<td class="org-left">MIPI-DSI support</td>
<td class="org-left"><code>DRM_SUN6I_DSI</code></td>
<td class="org-left"><code>sun6i_mipi_dsi</code></td>
<td class="org-left"><code>sun6i_mipi_dsi</code></td>
</tr>
<tr>
<td class="org-left">HDMI support</td>
<td class="org-left"><code>DRM_SUN8I_DW_HDMI</code></td>
<td class="org-left"><code>sun8i_drm_hdmi</code></td>
<td class="org-left"><code>sun8i-drm-hdmi</code></td>
</tr>
</tbody>
</table>
<a id="org6e434b5"></a>
## Internal Display modules
Selected automatically by one of other configs
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
<col class="org-left" />
<col class="org-left" />
<col class="org-left" />
<col class="org-left" />
</colgroup>
<thead>
<tr>
<th scope="col" class="org-left">Component</th>
<th scope="col" class="org-left">Config</th>
<th scope="col" class="org-left">Module</th>
<th scope="col" class="org-left">.ko</th>
</tr>
</thead>
<tbody>
<tr>
<td class="org-left">Display config</td>
<td class="org-left"><code>DRM_SUN8I_TCON_TOP</code></td>
<td class="org-left"><code>sun8i_tcon_to</code></td>
<td class="org-left"><code>sun8i_tcon_top</code></td>
</tr>
</tbody>
</table>
<a id="orgb545b9b"></a>
# Sound
<a id="orgfe54214"></a>
## Required Sound modules
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
<col class="org-left" />
<col class="org-left" />
<col class="org-left" />
<col class="org-left" />
</colgroup>
<thead>
<tr>
<th scope="col" class="org-left">Component</th>
<th scope="col" class="org-left">Config</th>
<th scope="col" class="org-left">Module</th>
<th scope="col" class="org-left">.ko</th>
</tr>
</thead>
<tbody>
<tr>
<td class="org-left">Internal codec</td>
<td class="org-left"><code>SND_SUN50I_CODEC_ANALOG</code></td>
<td class="org-left"><code>sun50i_codec_analog</code></td>
<td class="org-left"><code>sun50i-codec-analog</code></td>
</tr>
<tr>
<td class="org-left">Codec</td>
<td class="org-left"><code>SND_SUN8I_CODEC</code></td>
<td class="org-left"><code>sun8i_codec</code></td>
<td class="org-left"><code>sun8i-codec</code></td>
</tr>
</tbody>
</table>
<a id="org06ab839"></a>
## Optional Sound modules
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
<col class="org-left" />
<col class="org-left" />
<col class="org-left" />
<col class="org-left" />
</colgroup>
<thead>
<tr>
<th scope="col" class="org-left">Component</th>
<th scope="col" class="org-left">Config</th>
<th scope="col" class="org-left">Module</th>
<th scope="col" class="org-left">.ko</th>
</tr>
</thead>
<tbody>
<tr>
<td class="org-left">I2S support</td>
<td class="org-left"><code>SND_SUN4I_I2S</code></td>
<td class="org-left"><code>sun4i_i2s</code></td>
<td class="org-left"><code>sun4i-i2s</code></td>
</tr>
</tbody>
</table>
<a id="orgc0147fa"></a>
## Internal Sound modules
Selected automatically by one of other configs
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
<col class="org-left" />
<col class="org-left" />
<col class="org-left" />
<col class="org-left" />
</colgroup>
<thead>
<tr>
<th scope="col" class="org-left">Component</th>
<th scope="col" class="org-left">Config</th>
<th scope="col" class="org-left">Module</th>
<th scope="col" class="org-left">.ko</th>
</tr>
</thead>
<tbody>
<tr>
<td class="org-left">Regmap</td>
<td class="org-left"><code>SND_SUN8I_ADDA_PR_REGMAP</code></td>
<td class="org-left"><code>sun8i_adda_pr_regmap</code></td>
<td class="org-left"><code>sun8i-adda-pr-regmap</code></td>
</tr>
</tbody>
</table>
<a id="org929e163"></a>
# Media
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
<col class="org-left" />
<col class="org-left" />
<col class="org-left" />
<col class="org-left" />
</colgroup>
<thead>
<tr>
<th scope="col" class="org-left">Component</th>
<th scope="col" class="org-left">Config</th>
<th scope="col" class="org-left">Module</th>
<th scope="col" class="org-left">.ko</th>
</tr>
</thead>
<tbody>
<tr>
<td class="org-left">Deinterlace</td>
<td class="org-left"><code>VIDEO_SUN8I_DEINTERLACE</code></td>
<td class="org-left"><code>sun8i_di</code></td>
<td class="org-left"><code>sun8i-di</code></td>
</tr>
<tr>
<td class="org-left">Rotate</td>
<td class="org-left"><code>VIDEO_SUN8I_ROTATE</code></td>
<td class="org-left"><code>sun8i_rotate</code></td>
<td class="org-left"><code>sun8i-rotate</code></td>
</tr>
</tbody>
</table>
<a id="org49499d0"></a>
# Devfreq
Support for device frequency scaling
(Which is separate from CPU frequency scaling)
In the A64, it is tied to the DRAM controller.
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
<col class="org-left" />
<col class="org-left" />
<col class="org-left" />
<col class="org-left" />
</colgroup>
<thead>
<tr>
<th scope="col" class="org-left">Component</th>
<th scope="col" class="org-left">Config</th>
<th scope="col" class="org-left">Module</th>
<th scope="col" class="org-left">.ko</th>
</tr>
</thead>
<tbody>
<tr>
<td class="org-left">Devfreq</td>
<td class="org-left"><code>ARM_SUN8I_A33_MBUS_DEVFREQ</code></td>
<td class="org-left"><code>sun8i_a33_mbus</code></td>
<td class="org-left"><code>sun8i-a33-mbus</code></td>
</tr>
</tbody>
</table>
<a id="orge55132d"></a>
# Crypto
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
<col class="org-left" />
<col class="org-left" />
<col class="org-left" />
<col class="org-left" />
</colgroup>
<thead>
<tr>
<th scope="col" class="org-left">Component</th>
<th scope="col" class="org-left">Config</th>
<th scope="col" class="org-left">Module</th>
<th scope="col" class="org-left">.ko</th>
</tr>
</thead>
<tbody>
<tr>
<td class="org-left">Allwiner core</td>
<td class="org-left"><code>CRYPTO_DEV_ALLWINNER</code></td>
<td class="org-left"><code>sun8i_ce</code></td>
<td class="org-left"><code>sun8i-ce</code></td>
</tr>
<tr>
<td class="org-left">A64 core</td>
<td class="org-left"><code>CRYPTO_DEV_SUN8I_CE</code></td>
<td class="org-left"><code>sun8i_ce</code></td>
<td class="org-left"><code>sun8i-ce</code></td>
</tr>
<tr>
<td class="org-left">Hashes</td>
<td class="org-left"><code>CRYPTO_DEV_SUN8I_CE_HASH</code></td>
<td class="org-left"><code>sun8i_ce</code></td>
<td class="org-left"><code>sun8i-ce</code></td>
</tr>
<tr>
<td class="org-left">Pseudo-Random</td>
<td class="org-left"><code>CRYPTO_DEV_SUN8I_CE_PRNG</code></td>
<td class="org-left"><code>sun8i_ce</code></td>
<td class="org-left"><code>sun8i-ce</code></td>
</tr>
<tr>
<td class="org-left">True-Random</td>
<td class="org-left"><code>CRYPTO_DEV_SUN8I_CE_TRNG</code></td>
<td class="org-left"><code>sun8i_ce</code></td>
<td class="org-left"><code>sun8i-ce</code></td>
</tr>
<tr>
<td class="org-left">Debug</td>
<td class="org-left"><code>CRYPTO_DEV_SUN8I_CE_DEBUG</code></td>
<td class="org-left"><code>sun8i_ce</code></td>
<td class="org-left"><code>sun8i-ce</code></td>
</tr>
</tbody>
</table>
<a id="orgabf1537"></a>
# Watchdog
A kernel API for a hardware timer that can reboot the system when a userspace daemon stops responding
<https://linux.die.net/man/8/watchdog>
<https://www.kernel.org/doc/Documentation/watchdog/watchdog-api.txt>
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
<col class="org-left" />
<col class="org-left" />
<col class="org-left" />
<col class="org-left" />
</colgroup>
<thead>
<tr>
<th scope="col" class="org-left">Component</th>
<th scope="col" class="org-left">Config</th>
<th scope="col" class="org-left">Module</th>
<th scope="col" class="org-left">.ko</th>
</tr>
</thead>
<tbody>
<tr>
<td class="org-left">Watchdog</td>
<td class="org-left"><code>SUNXI_WATCHDOG</code></td>
<td class="org-left"><code>sunxi_wdt</code></td>
<td class="org-left"><code>sun6i_mipi_dsi</code></td>
</tr>
</tbody>
</table>
<a id="org6064a17"></a>
# Pulse Width Modulation
Used by LEDs & backlight
<https://docs.kernel.org/driver-api/pwm.html>
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
<col class="org-left" />
<col class="org-left" />
<col class="org-left" />
<col class="org-left" />
</colgroup>
<thead>
<tr>
<th scope="col" class="org-left">Component</th>
<th scope="col" class="org-left">Config</th>
<th scope="col" class="org-left">Module</th>
<th scope="col" class="org-left">.ko</th>
</tr>
</thead>
<tbody>
<tr>
<td class="org-left">PWM</td>
<td class="org-left"><code>PWM_SUN4I</code></td>
<td class="org-left"><code>pwm_sun4i</code></td>
<td class="org-left"><code>pwm-sun4i</code></td>
</tr>
</tbody>
</table>
<a id="org365ec8b"></a>
# DMA Controller
Used letting peripherals access the system memory without eating CPU cycles
Required for:
- SPDIF
- I2S
- DAI
Optional for:
- SPI
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
<col class="org-left" />
<col class="org-left" />
<col class="org-left" />
<col class="org-left" />
</colgroup>
<thead>
<tr>
<th scope="col" class="org-left">Component</th>
<th scope="col" class="org-left">Config</th>
<th scope="col" class="org-left">Module</th>
<th scope="col" class="org-left">.ko</th>
</tr>
</thead>
<tbody>
<tr>
<td class="org-left">DMA Controller</td>
<td class="org-left"><code>DMA_SUN6I</code></td>
<td class="org-left"><code>sun6i_dma</code></td>
<td class="org-left"><code>sun6i-dma</code></td>
</tr>
</tbody>
</table>
<a id="org7039910"></a>
# Camera Sensor Interface
TODO
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
<col class="org-left" />
<col class="org-left" />
<col class="org-left" />
<col class="org-left" />
</colgroup>
<thead>
<tr>
<th scope="col" class="org-left">Component</th>
<th scope="col" class="org-left">Config</th>
<th scope="col" class="org-left">Module</th>
<th scope="col" class="org-left">.ko</th>
</tr>
</thead>
<tbody>
<tr>
<td class="org-left">Camera</td>
<td class="org-left"><code>VIDEO_SUN6I_CSI</code></td>
<td class="org-left"><code>sun6i_csi</code></td>
<td class="org-left"><code>sun6i-csi</code></td>
</tr>
</tbody>
</table>
Loading…
Cancel
Save