# aum47/kernel_motorola_sm7750 architecture

> Architecture diagram of the GitHub repository aum47/kernel_motorola_sm7750, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/aum47/kernel_motorola_sm7750
- Repository: https://github.com/aum47/kernel_motorola_sm7750

## Overview

This is an Android Common Kernel: a Linux kernel tree with architecture support, device drivers, core services, and filesystems. The sampled runtime components represent several independent kernel workflows rather than one end-to-end application: USB Power Delivery negotiates port behavior; USB mass storage exposes file-backed media; DMA clients request asynchronous transfers through a hardware-neutral API; and other subsystems provide crypto, graphics, SPI, BPF storage, and RomFS services. The README describes patch contribution, not additional runtime features. Source excerpts are partial, so the graph omits uncertain internal wiring.

Main entry points: [`drivers/dma/dmaengine.c`](https://github.com/aum47/kernel_motorola_sm7750/blob/main/drivers/dma/dmaengine.c) (DMA core), [`include/linux/dmaengine.h`](https://github.com/aum47/kernel_motorola_sm7750/blob/main/include/linux/dmaengine.h) (DMA API), [`drivers/usb/pd/policy_engine.c`](https://github.com/aum47/kernel_motorola_sm7750/blob/main/drivers/usb/pd/policy_engine.c) (PD policy), [`drivers/usb/gadget/function/f_mass_storage.c`](https://github.com/aum47/kernel_motorola_sm7750/blob/main/drivers/usb/gadget/function/f_mass_storage.c) (USB mass storage)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_dma["DMA services"]
  node_dma_api["DMA API<br/>[dmaengine.h]"]
  node_dma_core["DMA core<br/>[dmaengine.c]"]
  node_ccp_dma["CCP DMA<br/>[ccp-dmaengine.c]"]
  node_pt_dma["PT DMA<br/>[ptdma-dmaengine.c]"]
  node_pcm_dma["PCM DMA<br/>[dmaengine_pcm.h]"]
end

subgraph group_usb["USB services"]
  node_pd_engine["PD policy<br/>[policy_engine.c]"]
  node_mass_storage["USB mass storage<br/>[f_mass_storage.c]"]
end

subgraph group_kernel["Kernel subsystems"]
  node_crypto_engine["Crypto engine<br/>[crypto_engine.c]"]
  node_spi_engine["SPI engine"]
  node_gpu_engine["GPU engines<br/>[intel_engine_cs.c]"]
  node_bpf_storage[("BPF local storage")]
end

subgraph group_storage["Storage"]
  node_romfs["RomFS storage<br/>[storage.c]"]
end

node_kernel_users(("Kernel clients"))
node_pd_peer(("PD partner"))
node_usb_host(("USB host"))
node_backing_media[("Backing media")]

node_kernel_users -->|"request transfers"| node_dma_api
node_dma_api -->|"requests channels"| node_dma_core
node_dma_core -->|"dispatches transfers"| node_ccp_dma
node_dma_core -->|"dispatches transfers"| node_pt_dma
node_pcm_dma -->|"uses interface"| node_dma_api
node_pd_peer -->|"exchanges messages"| node_pd_engine
node_pd_engine -->|"sends messages"| node_pd_peer
node_usb_host -->|"issues commands"| node_mass_storage
node_mass_storage -->|"reads and writes"| node_backing_media
node_romfs -->|"reads image"| node_backing_media

click node_dma_api "https://github.com/aum47/kernel_motorola_sm7750/blob/main/include/linux/dmaengine.h"
click node_dma_core "https://github.com/aum47/kernel_motorola_sm7750/blob/main/drivers/dma/dmaengine.c"
click node_ccp_dma "https://github.com/aum47/kernel_motorola_sm7750/blob/main/drivers/crypto/ccp/ccp-dmaengine.c"
click node_pt_dma "https://github.com/aum47/kernel_motorola_sm7750/blob/main/drivers/dma/ptdma/ptdma-dmaengine.c"
click node_pcm_dma "https://github.com/aum47/kernel_motorola_sm7750/blob/main/include/sound/dmaengine_pcm.h"
click node_pd_engine "https://github.com/aum47/kernel_motorola_sm7750/blob/main/drivers/usb/pd/policy_engine.c"
click node_mass_storage "https://github.com/aum47/kernel_motorola_sm7750/blob/main/drivers/usb/gadget/function/f_mass_storage.c"
click node_crypto_engine "https://github.com/aum47/kernel_motorola_sm7750/blob/main/crypto/crypto_engine.c"
click node_spi_engine "https://github.com/aum47/kernel_motorola_sm7750/blob/main/drivers/spi/spi-axi-spi-engine.c"
click node_gpu_engine "https://github.com/aum47/kernel_motorola_sm7750/blob/main/drivers/gpu/drm/i915/gt/intel_engine_cs.c"
click node_bpf_storage "https://github.com/aum47/kernel_motorola_sm7750/blob/main/kernel/bpf/bpf_local_storage.c"
click node_romfs "https://github.com/aum47/kernel_motorola_sm7750/blob/main/fs/romfs/storage.c"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_dma_api,node_dma_core,node_ccp_dma,node_pt_dma,node_pcm_dma,node_kernel_users toneBlue
class node_pd_engine,node_mass_storage,node_backing_media toneAmber
class node_crypto_engine,node_spi_engine,node_gpu_engine,node_bpf_storage toneMint
class node_romfs toneRose
class node_pd_peer,node_usb_host toneIndigo
```

## Components

### DMA services

- [DMA API](https://github.com/aum47/kernel_motorola_sm7750/blob/main/include/linux/dmaengine.h): `include/linux/dmaengine.h`
- [DMA core](https://github.com/aum47/kernel_motorola_sm7750/blob/main/drivers/dma/dmaengine.c): `drivers/dma/dmaengine.c`
- [CCP DMA](https://github.com/aum47/kernel_motorola_sm7750/blob/main/drivers/crypto/ccp/ccp-dmaengine.c): `drivers/crypto/ccp/ccp-dmaengine.c`
- [PT DMA](https://github.com/aum47/kernel_motorola_sm7750/blob/main/drivers/dma/ptdma/ptdma-dmaengine.c): `drivers/dma/ptdma/ptdma-dmaengine.c`
- [PCM DMA](https://github.com/aum47/kernel_motorola_sm7750/blob/main/include/sound/dmaengine_pcm.h): `include/sound/dmaengine_pcm.h`

### USB services

- [PD policy](https://github.com/aum47/kernel_motorola_sm7750/blob/main/drivers/usb/pd/policy_engine.c): `drivers/usb/pd/policy_engine.c`
- [USB mass storage](https://github.com/aum47/kernel_motorola_sm7750/blob/main/drivers/usb/gadget/function/f_mass_storage.c): `drivers/usb/gadget/function/f_mass_storage.c`

### Kernel subsystems

- [Crypto engine](https://github.com/aum47/kernel_motorola_sm7750/blob/main/crypto/crypto_engine.c): `crypto/crypto_engine.c`
- [SPI engine](https://github.com/aum47/kernel_motorola_sm7750/blob/main/drivers/spi/spi-axi-spi-engine.c): `drivers/spi/spi-axi-spi-engine.c`
- [GPU engines](https://github.com/aum47/kernel_motorola_sm7750/blob/main/drivers/gpu/drm/i915/gt/intel_engine_cs.c): `drivers/gpu/drm/i915/gt/intel_engine_cs.c`
- [BPF local storage](https://github.com/aum47/kernel_motorola_sm7750/blob/main/kernel/bpf/bpf_local_storage.c): `kernel/bpf/bpf_local_storage.c`

### Storage

- [RomFS storage](https://github.com/aum47/kernel_motorola_sm7750/blob/main/fs/romfs/storage.c): `fs/romfs/storage.c`

### Other components

- **Kernel clients**
- **PD partner**
- **USB host**
- **Backing media**

## Connections

- Kernel clients → DMA API: request transfers
- DMA API → DMA core: requests channels
- DMA core → CCP DMA: dispatches transfers
- DMA core → PT DMA: dispatches transfers
- PCM DMA → DMA API: uses interface
- PD partner → PD policy: exchanges messages
- PD policy → PD partner: sends messages
- USB host → USB mass storage: issues commands
- USB mass storage → Backing media: reads and writes
- RomFS storage → Backing media: reads image
