Ядро do c doc/Documentation/devicetree/bindings/sound/simple-card.txt
дает пример того, как использовать его в дереве устройств:
sound {
compatible = "simple-audio-card";
...
simple-audio-card,widgets =
"Microphone", "Microphone Jack",
"Headphone", "Headphone Jack",
"Speaker", "External Speaker";
simple-audio-card,routing =
"MIC_IN", "Microphone Jack",
"Headphone Jack", "HP_OUT",
"External Speaker", "LINE_OUT";
...
"Микрофон", "Наушники" и "Динамик" являются просто идентификаторами (разрешено это только «Микрофон», «Наушники», «Динамик», «Линия»). Имена «MIC_IN», «HP_OUT» и «LINE_OUT» являются реальными вещами аппаратного кода c, о котором сообщает его драйвер.
Что такое выдуманные имена, такие как «Разъем для микрофона», «Разъем для наушников» а "Внешний динамик"? Откуда они берутся и как они важны (они не сопоставляют 1 к 1 на устройствах ALSA пространства пользователя, эти имена никогда не появляются в пространстве пользователя)? Как они влияют на аппаратные кодеки?