---
config:
  layout: elk
  elk:
    mergeEdges: true
    nodePlacementStrategy: LINEAR_SEGMENTS
---
flowchart LR
 subgraph Coordinator["Display Coordinator"]
        CoordinatorDisplayRegApi(["Brightness API"])
        CoordinatorDisplayManagementApi(["Display management API"])
        CoordinatorDisplayManagement["Display management logic"]
  end
 subgraph EngineDriver["Display engine driver"]
        DisplayManagementApi(["Display management API"])
        DisplayManagement["Display management logic"]
        DisplayCommandsApi(["DDIC commands API"])
  end
 subgraph PanelDriver["Panel driver"]
        PanelBrightnessApi(["Brightness API"])
        PanelBrightness["Brightness logic"]
  end
    CoordinatorDisplayRegApi === CoordinatorDisplayManagement
    CoordinatorDisplayManagementApi === CoordinatorDisplayManagement
    CoordinatorDisplayManagement --> DisplayManagementApi
    DisplayManagementApi === DisplayManagement
    DisplayManagement --> PanelBrightnessApi
    PanelBrightnessApi === PanelBrightness
    PanelBrightness --> DisplayCommandsApi
    EngineDriver ~~~ PanelDriver
    PanelBrightness@{ shape: rect}