mbox series

[v2,0/6] ASoC: Intel/rt5640: Add support for HP Elite Pad 1000G2 jack-detect

Message ID 20210819190543.784415-1-hdegoede@redhat.com
Headers show
Series ASoC: Intel/rt5640: Add support for HP Elite Pad 1000G2 jack-detect | expand

Message

Hans de Goede Aug. 19, 2021, 7:05 p.m. UTC
Changes in v2:
- Rebase on asoc/for-next
- New patch: "ASoC: Intel: bytct_rt5640: Add a separate "Headset Mic 2"
  DAPM pin for the mic on the 2nd jack"
- Addressed Pierre-Louis' comments about calling
  acpi_dev_add_driver_gpios() twice

Original cover-letter:

The HP Elitepad 1000 G2 tablet has 2 headset jacks:

1. on the dock which uses the output of the codecs built-in HP-amp +
the standard IN2 input which is always used with the headset-jack.

2. on the tablet itself, this uses the line-out of the codec + an external
HP-amp, which gets enabled by the ALC5642 codec's GPIO1 pin; and IN1 for
the headset-mic.

The codec's GPIO1 is also its only IRQ output pin, so this means that
the codec's IRQ cannot be used on this tablet. Instead the jack-detect
is connected directly to GPIOs on the main SoC. The dock has a helper
chip which also detects if a headset-mic is present or not, so there
are 2 GPIOs for the jack-detect status of the dock. The tablet jack
uses a single GPIO which indicates if a jack is present or not.

Differentiating between between headphones vs a headset on the tablet jack
is done by using the usual mic-bias over-current-detection mechanism.

Regards,

Hans


Hans de Goede (6):
  ASoC: rt5640: Move rt5640_disable_jack_detect() up in the rt5640.c
    file
  ASoC: rt5640: Delay requesting IRQ until the machine-drv calls
    set_jack
  ASoC: rt5640: Add optional hp_det_gpio parameter to
    rt5640_detect_headset()
  ASoC: rt5640: Add rt5640_set_ovcd_params() helper
  ASoC: Intel: bytct_rt5640: Add a separate "Headset Mic 2" DAPM pin for
    the mic on the 2nd jack
  ASoC: Intel: bytcr_rt5640: Add support for HP Elite Pad 1000G2
    jack-detect

 sound/soc/codecs/rt5640.c             | 136 ++++++++++++----------
 sound/soc/codecs/rt5640.h             |   6 +
 sound/soc/intel/boards/bytcr_rt5640.c | 158 +++++++++++++++++++++++++-
 3 files changed, 234 insertions(+), 66 deletions(-)

Comments

Pierre-Louis Bossart Aug. 19, 2021, 8:31 p.m. UTC | #1
On 8/19/21 2:05 PM, Hans de Goede wrote:
> Changes in v2:
> - Rebase on asoc/for-next
> - New patch: "ASoC: Intel: bytct_rt5640: Add a separate "Headset Mic 2"
>   DAPM pin for the mic on the 2nd jack"
> - Addressed Pierre-Louis' comments about calling
>   acpi_dev_add_driver_gpios() twice

Thanks Hans, the code in patch6 looks much simpler now.

Acked-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>

> 
> Original cover-letter:
> 
> The HP Elitepad 1000 G2 tablet has 2 headset jacks:
> 
> 1. on the dock which uses the output of the codecs built-in HP-amp +
> the standard IN2 input which is always used with the headset-jack.
> 
> 2. on the tablet itself, this uses the line-out of the codec + an external
> HP-amp, which gets enabled by the ALC5642 codec's GPIO1 pin; and IN1 for
> the headset-mic.
> 
> The codec's GPIO1 is also its only IRQ output pin, so this means that
> the codec's IRQ cannot be used on this tablet. Instead the jack-detect
> is connected directly to GPIOs on the main SoC. The dock has a helper
> chip which also detects if a headset-mic is present or not, so there
> are 2 GPIOs for the jack-detect status of the dock. The tablet jack
> uses a single GPIO which indicates if a jack is present or not.
> 
> Differentiating between between headphones vs a headset on the tablet jack
> is done by using the usual mic-bias over-current-detection mechanism.
> 
> Regards,
> 
> Hans
> 
> 
> Hans de Goede (6):
>   ASoC: rt5640: Move rt5640_disable_jack_detect() up in the rt5640.c
>     file
>   ASoC: rt5640: Delay requesting IRQ until the machine-drv calls
>     set_jack
>   ASoC: rt5640: Add optional hp_det_gpio parameter to
>     rt5640_detect_headset()
>   ASoC: rt5640: Add rt5640_set_ovcd_params() helper
>   ASoC: Intel: bytct_rt5640: Add a separate "Headset Mic 2" DAPM pin for
>     the mic on the 2nd jack
>   ASoC: Intel: bytcr_rt5640: Add support for HP Elite Pad 1000G2
>     jack-detect
> 
>  sound/soc/codecs/rt5640.c             | 136 ++++++++++++----------
>  sound/soc/codecs/rt5640.h             |   6 +
>  sound/soc/intel/boards/bytcr_rt5640.c | 158 +++++++++++++++++++++++++-
>  3 files changed, 234 insertions(+), 66 deletions(-)
>
Mark Brown Aug. 20, 2021, 2:39 p.m. UTC | #2
On Thu, 19 Aug 2021 21:05:37 +0200, Hans de Goede wrote:
> Changes in v2:
> - Rebase on asoc/for-next
> - New patch: "ASoC: Intel: bytct_rt5640: Add a separate "Headset Mic 2"
>   DAPM pin for the mic on the 2nd jack"
> - Addressed Pierre-Louis' comments about calling
>   acpi_dev_add_driver_gpios() twice
> 
> [...]

Applied to

   https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next

Thanks!

[1/6] ASoC: rt5640: Move rt5640_disable_jack_detect() up in the rt5640.c file
      commit: 5caab9f48b96f6998fb23d38a7b57fca91ef1653
[2/6] ASoC: rt5640: Delay requesting IRQ until the machine-drv calls set_jack
      commit: 15d54840ecf6f00061d03180394a0a21ff8ffa48
[3/6] ASoC: rt5640: Add optional hp_det_gpio parameter to rt5640_detect_headset()
      commit: d21213b4503ea66777313e4345e116cc8a5366bf
[4/6] ASoC: rt5640: Add rt5640_set_ovcd_params() helper
      commit: e3f2a6603a982467601e0831d706786ed1ade833
[5/6] ASoC: Intel: bytct_rt5640: Add a separate "Headset Mic 2" DAPM pin for the mic on the 2nd jack
      commit: 0a61bcbba8737fe6d43dc34070ffa84a2f12e990
[6/6] ASoC: Intel: bytcr_rt5640: Add support for HP Elite Pad 1000G2 jack-detect
      commit: 9ba00856686ade106afee2884b5e8ac1e09d137a

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

Thanks,
Mark