coreboot/src/drivers
Duncan Laurie 73ce9fb18a drivers/soundwire/alc5682: Support Realtek ALC5682 SoundWire device
The ALC5682 headset codec can be connected over SoundWire and be
configured for mainboards to use:

- Data Port 0 and Bulk Register Access is supported
- Data Ports 1-4 are supported as both source and sink

The data port and audio mode properties are filled out as best as
possible with the datasheet as a reference.

The ACPI address for the codec is calculated with the information in
the codec driver combined with the devicetree.cb hierarchy where the
link and unique IDs are extracted from the device path.

For example this device is connected to master link ID 0 and has strap
settings configuring it for unique ID 1:

chip drivers/soundwire/alc5682
  register "desc" = ""Headset Codec""
  device generic 0.1 on end
end

This driver was tested with the volteer reference design by booting
and disassembling the runtime SSDT to ensure that the devices have the
expected address and properties.

Device (SW01)
{
    Name (_ADR, 0x000021025D568200)
    Name (_DDN, "Headset Codec")
    Name (_DSD, Package ()
    {
        ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
        Package () {
            Package () { "mipi-sdw-sw-interface-revision", 0x00010000 },
            [...]
        },
        ToUUID ("dbb8e3e6-5886-4ba6-8795-1319f52a966b"),
        Package () {
            Package () { "mipi-sdw-port-bra-mode-0", "BRA0" },
            Package () { "mipi-sdw-dp-0-subproperties", "DP0" },
            Package () { "mipi-sdw-port-audio-mode-0", "MOD0" },
            Package () { "mipi-sdw-dp-1-source-subproperties", "SRC1" },
            Package () { "mipi-sdw-dp-1-sink-subproperties", "SNK1" },
            [...]
        }
    }
    Name (BRA0, Package ()
    {
        ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
        Package () {
            Package () {
                "mipi-sdw-bra-mode-bus-frequency-configs",
                Package () { 0x000F4240, [...] }
            },
            [...]
        }
    }
    Name (DP0, Package ()
    {
        ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
        Package () {
            Package () { "mipi-sdw-bra-flow-controlled", Zero },
            [...]
        },
        ToUUID ("dbb8e3e6-5886-4ba6-8795-1319f52a966b"),
        Package () {
            Package () { "mipi-sdw-port-bra-mode-0", "BRA0" }
        }
    }
    Name (MOD0, Package ()
    {
        ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
        Package () {
            Package () {
                "mipi-sdw-audio-mode-bus-frequency-configs",
                Package () { 0x000F4240, [...] }
            },
            [...]
        }
    }
    Name (SNK1, Package ()
    {
        ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
        Package () {
            Package () { "mipi-sdw-data-port-type", Zero },
            [...]
        },
        ToUUID ("dbb8e3e6-5886-4ba6-8795-1319f52a966b"),
        Package () {
            Package () { "mipi-sdw-port-audio-mode-0", "MOD0" }
        }
    }
    Name (SNK1, Package ()
    {
        ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
        Package () {
            Package () { "mipi-sdw-data-port-type", Zero },
            [...]
        },
        ToUUID ("dbb8e3e6-5886-4ba6-8795-1319f52a966b"),
        Package () {
            Package () { "mipi-sdw-port-audio-mode-0", "MOD0" }
        }
    }
}

BUG=b:146482091

Signed-off-by: Duncan Laurie <dlaurie@google.com>
Change-Id: I488dcd81d2e66a6f2c269ab7fa9f7ceaf2cbf003
Reviewed-on: https://review.coreboot.org/c/coreboot/+/40891
Reviewed-by: Tim Wawrzynczak <twawrzynczak@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2020-05-22 01:48:59 +00:00
..
amd/agesa src: Remove leading blank lines from SPDX header 2020-05-18 07:00:27 +00:00
ams treewide: Remove "this file is part of" lines 2020-05-11 17:11:40 +00:00
analogix/anx7625 src: Remove leading blank lines from SPDX header 2020-05-18 07:00:27 +00:00
asmedia src: Remove leading blank lines from SPDX header 2020-05-18 07:00:27 +00:00
aspeed aspeed/ast2050: Fix when resources are added 2020-05-14 21:25:59 +00:00
broadcom src: Remove leading blank lines from SPDX header 2020-05-18 07:00:27 +00:00
crb treewide: Convert more license headers to SPDX style 2020-05-11 19:37:19 +00:00
dec/21143 treewide: Remove "this file is part of" lines 2020-05-11 17:11:40 +00:00
elog src: Remove leading blank lines from SPDX header 2020-05-18 07:00:27 +00:00
emulation/qemu drivers/emulation/qemu/bochs: Rewrite driver 2020-05-20 09:50:29 +00:00
generic src: Remove leading blank lines from SPDX header 2020-05-18 07:00:27 +00:00
gfx/generic src: Remove unused '#include <stdint.h>' 2020-05-13 08:48:17 +00:00
gic treewide: Remove "this file is part of" lines 2020-05-11 17:11:40 +00:00
i2c driver/i2c/max98390: Fix build error related to max98390 driver 2020-05-20 09:11:23 +00:00
intel drivers/intel/soundwire: Add Intel SoundWire controller driver 2020-05-22 01:48:16 +00:00
ipmi treewide: Remove "this file is part of" lines 2020-05-11 17:11:40 +00:00
lenovo src: Remove leading blank lines from SPDX header 2020-05-18 07:00:27 +00:00
maxim src: Remove leading blank lines from SPDX header 2020-05-18 07:00:27 +00:00
mrc_cache treewide: Remove "this file is part of" lines 2020-05-11 17:11:40 +00:00
net treewide: Remove "this file is part of" lines 2020-05-11 17:11:40 +00:00
parade src: Remove leading blank lines from SPDX header 2020-05-18 07:00:27 +00:00
pc80 src: Remove unused 'include <string.h>' 2020-05-18 07:41:24 +00:00
ricoh/rce822 treewide: Remove "this file is part of" lines 2020-05-11 17:11:40 +00:00
secunet/dmi treewide: Remove "this file is part of" lines 2020-05-11 17:11:40 +00:00
siemens/nc_fpga src: Remove leading blank lines from SPDX header 2020-05-18 07:00:27 +00:00
sil/3114 treewide: Remove "this file is part of" lines 2020-05-11 17:11:40 +00:00
smmstore src: Remove leading blank lines from SPDX header 2020-05-18 07:00:27 +00:00
soundwire drivers/soundwire/alc5682: Support Realtek ALC5682 SoundWire device 2020-05-22 01:48:59 +00:00
spi src: Remove unused 'include <string.h>' 2020-05-18 07:41:24 +00:00
ti src: Remove leading blank lines from SPDX header 2020-05-18 07:00:27 +00:00
tpm treewide: Remove "this file is part of" lines 2020-05-11 17:11:40 +00:00
uart treewide: Remove "this file is part of" lines 2020-05-11 17:11:40 +00:00
usb src: Remove unused '#include <stddef.h>' 2020-05-13 08:48:50 +00:00
vpd src: Remove leading blank lines from SPDX header 2020-05-18 07:00:27 +00:00
wifi treewide: Remove "this file is part of" lines 2020-05-11 17:11:40 +00:00