tree b0f08a835d55f254673d1734797bf22c845df82e
parent 075dbe9f6e3c21596c5245826a4ee1f1c1676eb8
parent 0c8d604dea437b69a861479b413d629bc9b3da70
author Wolfram Sang <wsa+renesas@sang-engineering.com> 1727456258 +0200
committer Wolfram Sang <wsa+renesas@sang-engineering.com> 1727456258 +0200
mergetag object 0c8d604dea437b69a861479b413d629bc9b3da70
 type commit
 tag i2c-host-fixes-6.12-rc1
 tagger Andi Shyti <andi.shyti@kernel.org> 1727452985 +0200
 
 I2C host fixes for v6.12-rc1
 
 The DesignWare driver now has the correct ENABLE-ABORT sequence,
 ensuring ABORT can always be sent when needed.
 
 In the SynQuacer controller we now check for PCLK as an optional
 clock, allowing ACPI to directly provide the clock rate.
 
 The recent KEBA driver required a dependency fix in Kconfig.
 
 The XIIC driver now has a corrected power suspend sequence.
 -----BEGIN PGP SIGNATURE-----
 
 iIwEABYIADQWIQScDfrjQa34uOld1VLaeAVmJtMtbgUCZvbXjhYcYW5kaS5zaHl0
 aUBrZXJuZWwub3JnAAoJENp4BWYm0y1uqzIA/i0qw7iDpHOrCBxOP+hitKE+fM4+
 8Mv5KgL2ALpNQlacAQCWGx2ySTt7To6Ni3HBFn8iABaN9qa3NiiHF1WdcGqJAQ==
 =LhPE
 -----END PGP SIGNATURE-----

Merge tag 'i2c-host-fixes-6.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/andi.shyti/linux into i2c/for-current

I2C host fixes for v6.12-rc1

The DesignWare driver now has the correct ENABLE-ABORT sequence,
ensuring ABORT can always be sent when needed.

In the SynQuacer controller we now check for PCLK as an optional
clock, allowing ACPI to directly provide the clock rate.

The recent KEBA driver required a dependency fix in Kconfig.

The XIIC driver now has a corrected power suspend sequence.
