At present no x86 boards support sound. This series adds several options: - legacy beep - Intel HDA - I2S with codec
These are enabled on coreboot, link and samus, respectively. A number of related patches are included to make the above work. Changes in v2: - Add a PCI ID for the HD audio class - Add a link to the HD audio PDF fie - Add a note about undocumented IOMMU values - Add a note as to why the default log level must be set to LOGL_DEBUG - Add an example to the commit message for clarity - Add comments next to verbs in the DT mentioning the HDA spec - Add new patch to fix up Kconfig log level names - Add the log-level names into the Kconfig help - Adjust code to use #defines instead of open-coded values - Also remove this feature from the TODO - Change the driver name to i8254_drv - Correct the default log level to 6 (LOGL_INFO) - Drop useless 'set' comment - Fix capital letter in Ivybridge in Kconfig help - Fix comment about @return value in ioctl() method and function - Fix ordering of PCI IDs - Fix use of C++ comments in two places - Move comment about silencing on error so that it is clearer - Rename PPC_PORTB to SYSCTL_PORTB - Rename sound driver to bd82x6x-hda - Update in codec_init() to use defines for codec access - Use "sandbox-pch" for the compatible string, for consistency - Use PIT_TICK_RATE instead of creating a new define - Use a more generic "intel,hd-audio" as the compatible string - Use defines for all azalia verbs in binding file - User lower-case hex consistently in the DT Simon Glass (34): log: Fix up Kconfig log level names log: Add a Kconfig option to set the default log level log: Add documentation for convenience functions log: Allow #define LOG_DEBUG to enable logging in a file dm: syscon: Don't require a regmap for PCI devices i2c: designware: Add error checking on init pci: Don't export pci_hose_config_device() pci: Fix comment in struct pci_child_platdata gpio: Show inactive GPIOs when explicitly requested gpio: Use case-insentive matching on the GPIO name pci: Add IDs for Intel high-definition audio sandbox: Add a note about the growing state_info struct x86: Adjust I/O macros to work on 64-bit machines x86: samus: Increase the pre-reloc memory x86: link: Increase malloc size and decrease code size x86: sandbox: pch: Add a CONFIG option for PCH sandbox: pch: Add a test for the PCH uclass pch: Add ioctl support x86: ivybridge: Add a way to get the HDA config setting sound: Mark sound_setup() as optional sound: Add uclass operations for beeping sound: Add support for Intel HDA sandbox: sound: Silence sound for testing sound: x86: link: Add sound support sound: x86: Add beeping support in i8254 sound: Add a driver for the i8254 beep x86: coreboot: Enable the beeper sound driver x86: broadwell: Add support for the ADSP x86: broadwell: Don't bother probing the PCH for pinctrl x86: broadwell: Add support for serial I/O devices x86: sound: Add support for broadwell I2S sound: Add a driver for RealTek RT5677 x86: sound: Add sound support for samus (broadwell) x86: Add sound support for samus arch/Kconfig | 2 + arch/sandbox/dts/test.dts | 5 + arch/sandbox/include/asm/state.h | 9 + arch/sandbox/include/asm/test.h | 24 + arch/x86/cpu/broadwell/Makefile | 1 + arch/x86/cpu/broadwell/adsp.c | 156 ++ arch/x86/cpu/broadwell/pch.c | 110 ++ arch/x86/cpu/broadwell/pinctrl_broadwell.c | 3 +- arch/x86/cpu/ivybridge/Kconfig | 1 + arch/x86/cpu/ivybridge/bd82x6x.c | 27 +- arch/x86/cpu/ivybridge/northbridge.c | 32 + arch/x86/dts/chromebook_link.dts | 96 ++ arch/x86/dts/chromebook_samus.dts | 49 +- arch/x86/include/asm/arch-broadwell/adsp.h | 46 + arch/x86/include/asm/arch-broadwell/pch.h | 3 + arch/x86/include/asm/arch-broadwell/rcb.h | 2 + .../x86/include/asm/arch-broadwell/serialio.h | 82 + .../include/asm/arch-ivybridge/sandybridge.h | 3 + arch/x86/include/asm/i8254.h | 18 + arch/x86/include/asm/io.h | 16 +- arch/x86/lib/i8254.c | 35 +- cmd/gpio.c | 10 +- common/Kconfig | 86 +- common/log.c | 2 +- configs/chromebook_link_defconfig | 5 +- configs/chromebook_samus_defconfig | 11 +- configs/coreboot_defconfig | 3 + doc/README.log | 51 +- doc/device-tree-bindings/sound/intel-hda.txt | 25 + drivers/Kconfig | 2 + drivers/Makefile | 3 +- drivers/core/syscon-uclass.c | 4 + drivers/i2c/designware_i2c.c | 29 +- drivers/pch/Kconfig | 9 + drivers/pch/Makefile | 1 + drivers/pch/pch-uclass.c | 10 + drivers/pch/sandbox_pch.c | 86 + drivers/pci/pci.c | 7 +- drivers/sound/Kconfig | 40 + drivers/sound/Makefile | 5 + drivers/sound/broadwell_i2s.c | 306 ++++ drivers/sound/broadwell_i2s.h | 301 ++++ drivers/sound/broadwell_sound.c | 65 + drivers/sound/hda_codec.c | 556 +++++++ drivers/sound/i8254_beep.c | 38 + drivers/sound/ivybridge_sound.c | 137 ++ drivers/sound/rt5677.c | 334 ++++ drivers/sound/rt5677.h | 1428 +++++++++++++++++ drivers/sound/sandbox.c | 71 +- drivers/sound/sound-uclass.c | 36 +- include/dt-bindings/sound/azalia.h | 44 + include/hda_codec.h | 103 ++ include/log.h | 9 +- include/pch.h | 51 +- include/pci.h | 8 +- include/pci_ids.h | 5 + include/sound.h | 46 +- test/dm/Makefile | 1 + test/dm/pch.c | 55 + test/dm/sound.c | 21 + 60 files changed, 4623 insertions(+), 101 deletions(-) create mode 100644 arch/x86/cpu/broadwell/adsp.c create mode 100644 arch/x86/include/asm/arch-broadwell/adsp.h create mode 100644 arch/x86/include/asm/arch-broadwell/serialio.h create mode 100644 doc/device-tree-bindings/sound/intel-hda.txt create mode 100644 drivers/pch/Kconfig create mode 100644 drivers/pch/sandbox_pch.c create mode 100644 drivers/sound/broadwell_i2s.c create mode 100644 drivers/sound/broadwell_i2s.h create mode 100644 drivers/sound/broadwell_sound.c create mode 100644 drivers/sound/hda_codec.c create mode 100644 drivers/sound/i8254_beep.c create mode 100644 drivers/sound/ivybridge_sound.c create mode 100644 drivers/sound/rt5677.c create mode 100644 drivers/sound/rt5677.h create mode 100644 include/dt-bindings/sound/azalia.h create mode 100644 include/hda_codec.h create mode 100644 test/dm/pch.c -- 2.21.0.rc0.258.g878e2cd30e-goog _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot