1. 06 6月, 2022 1 次提交
  2. 05 4月, 2022 1 次提交
  3. 07 3月, 2022 1 次提交
    • R
      ASoC: cs42l42: Add warnings about DETECT_MODE and PLL_START · 71a6254c
      Richard Fitzgerald 提交于
      DETECT_MODE and PLL_START must be zero while HP_PDN and ADC_PDN are
      both 1. If this condition is broken it can discharge FILT+ and it
      can then take up to 1 second for FILT+ to recharge.
      
      There is no workaround required for this, simply avoiding settings
      and sequences that would break the requirement. The driver already
      meets the requirement.
      
      But it is not obvious from reading the code that this requirement
      exists, or what is ensuring it is met. So it would not currently be
      obvious to someone changing the code that there is certain special
      behaviour that must be maintained.
      
      To avoid accidental breakage in the future:
      
      - Add comments into the register definitions to warn about this so
        that anyone changing the code around DETECT_MODE and PLL_START is
        aware of this requirement.
      
      - Add a comment where PLL_START is written to 1 to highlight the
        requirement and why it is satisfied.
      
      - Add a comment in cs42l42_setup_hs_type_detect() when DETECT_MODE is
        initialized.
      Signed-off-by: NRichard Fitzgerald <rf@opensource.cirrus.com>
      Link: https://lore.kernel.org/r/20220304144015.398656-1-rf@opensource.cirrus.comSigned-off-by: NMark Brown <broonie@kernel.org>
      71a6254c
  4. 24 1月, 2022 3 次提交
  5. 22 11月, 2021 1 次提交
  6. 17 11月, 2021 4 次提交
  7. 16 11月, 2021 1 次提交
  8. 29 10月, 2021 1 次提交
    • R
      ASoC: cs42l42: Correct configuring of switch inversion from ts-inv · 778a0cbe
      Richard Fitzgerald 提交于
      The setting from the cirrus,ts-inv property should be applied to the
      TIP_SENSE_INV bit, as this is the one that actually affects the jack
      detect block. The TS_INV bit only swaps the meaning of the PLUG and
      UNPLUG interrupts and should always be 1 for the interrupts to have
      the normal meaning.
      
      Due to some misunderstanding the driver had been implemented to
      configure the TS_INV bit based on the jack switch polarity. This made
      the interrupts behave the correct way around, but left the jack detect
      block, button detect and analogue circuits always interpreting an open
      switch as unplugged.
      
      The signal chain inside the codec is:
      
      SENSE pin -> TIP_SENSE_INV -> TS_INV -> (invert) -> interrupts
                        |
                        v
                   Jack detect,
                button detect and
                  analog control
      
      As the TIP_SENSE_INV already performs the necessary inversion the
      TS_INV bit never needs to change. It must always be 1 to yield the
      expected interrupt behaviour.
      
      Some extra confusion has arisen because of the additional invert in the
      interrupt path, meaning that a value applied to the TS_INV bit produces
      the opposite effect of applying it to the TIP_SENSE_INV bit. The ts-inv
      property has therefore always had the opposite effect to what might be
      expected (0 = inverted, 1 = not inverted). To maintain the meaning of
      the ts-inv property it must be inverted when applied to TIP_SENSE_INV.
      Signed-off-by: NRichard Fitzgerald <rf@opensource.cirrus.com>
      Fixes: 2c394ca7 ("ASoC: Add support for CS42L42 codec")
      Link: https://lore.kernel.org/r/20211028140902.11786-3-rf@opensource.cirrus.comSigned-off-by: NMark Brown <broonie@kernel.org>
      778a0cbe
  9. 26 10月, 2021 2 次提交
  10. 25 10月, 2021 1 次提交
  11. 22 10月, 2021 1 次提交
  12. 15 10月, 2021 12 次提交
  13. 12 10月, 2021 1 次提交
  14. 27 9月, 2021 1 次提交
  15. 16 9月, 2021 2 次提交
  16. 06 8月, 2021 7 次提交