public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/3] Add ASoC machine driver for Lenovo YB1 tablets
@ 2026-03-01 21:33 Yauhen Kharuzhy
  2026-03-01 21:33 ` [PATCH v2 1/3] ASoC: Intel: soc-acpi-cht: Unify device quirks Yauhen Kharuzhy
                   ` (2 more replies)
  0 siblings, 3 replies; 12+ messages in thread
From: Yauhen Kharuzhy @ 2026-03-01 21:33 UTC (permalink / raw)
  To: Cezary Rojewski, Liam Girdwood, Peter Ujfalusi, Bard Liao,
	Ranjani Sridharan, Kai Vehmanen, Pierre-Louis Bossart, Mark Brown
  Cc: linux-sound, linux-kernel, Hans de Goede, Yauhen Kharuzhy

This is the second iteration of my submission for sound support for Lenovo
    Yoga Book YB1-X90/X91 tablets.

    These are Cherry Trail-based platforms that use the RT5677 codec and
    TS3A227E jack detection IC.

    The YB1-X90 is an Android-designated device and has incorrect ACPI entries
    for many onboard peripherals, including sound devices. The YB1-X91 has a
    DSDT node for the codec, and the same node is shared with the TS3A227E
    jack detection IC (see below).

    Matching with ACPI entries is somewhat tricky; see the corresponding
    commit. Jack detection IC info is defined in the x86-android-tablets driver
    for both platforms to simplify the code.

    The machine driver is called 'cht_yogabook' because it has some
    hardcoded device-specific elements and it seems this is the only known
    Cherry Trail platform using the RT5677 codec. This naming is open
    to discussion: a more generic name like 'cht_rt5677' or 'cht_bsw_rt5677'
    may be better (requiring reworking of the driver to make it
    more generic with device-specific quirks).

v2:
 cht_yogabook driver:
 - Remove likely obsolete code from the driver: GPIO magic manipulations
   when enabling the speaker amplifier and msleep() calls when turning
   the speaker/headphones on and off.
 - Remove MICBIAS1 manipulation on headphone jack insertion (click
   prevention): the TS3A227E should handle it by itself.
 - Rename struct cht_mc_private to cht_yb_private.

 ACPI matching code:
 - Split the changes into two commits: reworking existing entries and adding
   new ones.
 - Use dmi_system_id.driver_data to specify matched machine data instead
   of callbacks.

For reference, there is an ACPI node for sound configuration from YB1-X91
DSDT below:

    HID: 10EC5677
_CRS resources:

  I2C devices:
  0: rt5677 codec
  1: ts3a227e jack detection IC

  GPIOs:
  0: rt5677 codec reset
  1: rt5677 codec pow-ldo2
  2: speaker enable

  INTs:
  0: rt5677 codec
  1: ts3a227e jack detection IC

  SPI device:
  0: rt5677 codec SPI connection

Decompiled fragment of ACPI dump:

    Device (RTEK)
    {
        Name (_ADR, Zero)  // _ADR: Address
        Name (_HID, "10EC5677")  // _HID: Hardware ID
        Name (_CID, "10EC5677")  // _CID: Compatible ID
        Name (_DDN, "Realtek IIS Audio Codec")  // _DDN: DOS Device Name
        Name (_SUB, "17AA7005")  // _SUB: Subsystem ID
        Name (_UID, One)  // _UID: Unique ID
        Name (_PR0, Package (0x01)  // _PR0: Power Resources for D0
        {
            CLK3
        })
        Name (CHAN, Package (0x02)
        {
            One,
            0x0124F800
        })
        Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
        {
            Name (SBUF, ResourceTemplate ()
            {
                I2cSerialBusV2 (0x002C, ControllerInitiated, 0x000186A0,
                    AddressingMode7Bit, "\\_SB.PCI0.I2C1",
                    0x00, ResourceConsumer, , Exclusive,
                    )
                I2cSerialBusV2 (0x003B, ControllerInitiated, 0x000186A0,
                    AddressingMode7Bit, "\\_SB.PCI0.I2C1",
                    0x00, ResourceConsumer, , Exclusive,
                    )
                GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
                    "\\_SB.GPO3", 0x00, ResourceConsumer, ,
                    )
                    {   // Pin list
                        0x0019
                    }
                GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
                    "\\_SB.GPO3", 0x00, ResourceConsumer, ,
                    )
                    {   // Pin list
                        0x0012
                    }
                GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
                    "\\_SB.GPO3", 0x00, ResourceConsumer, ,
                    )
                    {   // Pin list
                        0x0030
                    }
                GpioInt (Edge, ActiveLow, Exclusive, PullNone, 0x0000,
                    "\\_SB.GPO0", 0x00, ResourceConsumer, ,
                    )
                    {   // Pin list
                        0x005B
                    }
                GpioInt (Edge, ActiveLow, Exclusive, PullNone, 0x0000,
                    "\\_SB.GPO0", 0x00, ResourceConsumer, ,
                    )
                    {   // Pin list
                        0x004D
                    }
                SpiSerialBusV2 (0x0001, PolarityLow, FourWireMode, 0x08,
                    ControllerInitiated, 0x003D0900, ClockPolarityHigh,
                    ClockPhaseSecond, "\\_SB.PCI0.SPI1",
                    0x00, ResourceConsumer, , Exclusive,
                    )
            })
            Return (SBUF) /* \_SB_.PCI0.I2C1.RTEK._CRS.SBUF */
        }
    }

Signed-off-by: Yauhen Kharuzhy <jekhor@gmail.com>
---
Yauhen Kharuzhy (3):
      ASoC: Intel: soc-acpi-cht: Unify device quirks
      ASoC: Intel: soc-acpi-cht: Add Lenovo Yoga Book entries
      ASoC: Intel: cht_yogabook: Add driver for Lenovo Yoga Book tablets

 sound/soc/intel/boards/Kconfig                    |  15 +
 sound/soc/intel/boards/Makefile                   |   2 +
 sound/soc/intel/boards/cht_yogabook.c             | 551 ++++++++++++++++++++++
 sound/soc/intel/common/soc-acpi-intel-cht-match.c | 138 +++---
 4 files changed, 649 insertions(+), 57 deletions(-)
---
base-commit: 7f30250e792515b42130564cb52a9d218bad4cb3
change-id: 20260219-asoc-yogabook-v2-70c146371d20

Best regards,
-- 
Yauhen Kharuzhy


^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2026-03-03 20:45 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-03-01 21:33 [PATCH v2 0/3] Add ASoC machine driver for Lenovo YB1 tablets Yauhen Kharuzhy
2026-03-01 21:33 ` [PATCH v2 1/3] ASoC: Intel: soc-acpi-cht: Unify device quirks Yauhen Kharuzhy
2026-03-02 15:54   ` Péter Ujfalusi
2026-03-02 22:33     ` Yauhen Kharuzhy
2026-03-03  7:10       ` Péter Ujfalusi
2026-03-01 21:33 ` [PATCH v2 2/3] ASoC: Intel: soc-acpi-cht: Add Lenovo Yoga Book entries Yauhen Kharuzhy
2026-03-02 15:48   ` Péter Ujfalusi
2026-03-01 21:33 ` [PATCH v2 3/3] ASoC: Intel: cht_yogabook: Add driver for Lenovo Yoga Book tablets Yauhen Kharuzhy
2026-03-02 12:03   ` Cezary Rojewski
2026-03-03  0:12     ` Yauhen Kharuzhy
2026-03-03  9:30       ` Cezary Rojewski
2026-03-03 20:45         ` Yauhen Kharuzhy

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox