On Fri, 14 Jun 2024, Dmitry Baryshkov wrote: > This adds binding, driver and the DT support for the Lenovo Yoga C630 > Embedded Controller, to provide battery information. > > Support for this EC was implemented by Bjorn, who later could not work > on this driver. I've picked this patchset up and updated it following > the pending review comments. > > DisplayPort support is still not a part of this patchset. It uses EC > messages to provide AltMode information rather than implementing > corresponding UCSI commands. However to have a cleaner uAPI story, the > AltMode should be handled via the same Type-C port. > > Merge strategy: the driver bits depend on the platform/arm64 patch, > which adds interface for the subdrivers. I'd either ask to get that > patch merged to the immutable branch, which then can be picked up by > power/supply and USB trees or, to make life simpler, ack merging all > driver bits e.g. through USB subsystem (I'm biased here since I plan to > send more cleanups for the UCSI subsystem, which would otherwise result > in cross-subsystem conflicts). In preparation for making an IB, I took patch 1-2 into platform-drivers-x86-lenovo-c630 branch. I'll tag it once LKP has built tested the branch. -- i. > > --- > Changes in v7: > - In PSY driver use guard() instead of scoped_guard() (Ilpo) > - Use switch/case rather than ifs in yoga_c630_ucsi_read() (Ilpo) > - Link to v6: https://lore.kernel.org/r/20240612-yoga-ec-driver-v6-0-8e76ba060439@xxxxxxxxxx > > Changes in v6: > - Use guard() instead of scoped_guard() (Ilpo) > - Add a define for UCSI version register (Ilpo) > - Added a check to prevent overflowing the address in reg16 read (Ilpo) > - Link to v5: https://lore.kernel.org/r/20240607-yoga-ec-driver-v5-0-1ac91a0b4326@xxxxxxxxxx > > Changes in v5: > - Added missing article in the commit message (Bryan) > - Changed yoga_c630_ec_ucsi_get_version() to explicitly set the register > instead of just incrementing it (Bryan) > - Dropped spurious debugging pr_info (Bryan) > - Added missing includes all over the place (Ilpo) > - Switched to scoped_guard() where it's suitable (Ilpo) > - Defined register bits (Ilpo, Bryan) > - Whitespace cleanup (Ilpo, Bryan) > - Reworked yoga_c630_ucsi_notify() to use switch-case (Bryan) > - Use ternary operators instead of if()s (Ilpo) > - Switched power supply driver to use fwnode (Sebastian) > - Fixed handling of the adapter's type vs usb_type (Sebastian) > - Added SCOPE property to the battery (Sebastian) > - Link to v4: https://lore.kernel.org/r/20240528-yoga-ec-driver-v4-0-4fa8dfaae7b6@xxxxxxxxxx > > Changes in v4: > - Moved bindings to platform/ to follow example of other Acer Aspire1 EC > (Nikita Travkin) > - Fixed dt validation for EC interrupt pin (Rob Herring) > - Dropped separate 'scale' property (Oliver Neukum) > - Link to v3: https://lore.kernel.org/r/20240527-yoga-ec-driver-v3-0-327a9851dad5@xxxxxxxxxx > > Changes in v3: > - Split the driver into core and power supply drivers, > - Added UCSI driver part, handling USB connections, > - Fixed Bjorn's address in DT bindings (Brian Masney) > - Changed power-role for both ports to be "dual" per UCSI > - Link to v2: https://lore.kernel.org/linux-arm-msm/20230205152809.2233436-1-dmitry.baryshkov@xxxxxxxxxx/ > > Changes in v2: > - Dropped DP support for now, as the bindings are in process of being > discussed separately, > - Merged dt patch into the same patchseries, > - Removed the fixed serial number battery property, > - Fixed indentation of dt bindings example, > - Added property: reg and unevaluatedProperties to the connector > bindings. > - Link to v1: https://lore.kernel.org/linux-arm-msm/20220810035424.2796777-1-bjorn.andersson@xxxxxxxxxx/ > > --- > Bjorn Andersson (2): > dt-bindings: platform: Add Lenovo Yoga C630 EC > arm64: dts: qcom: c630: Add Embedded Controller node > > Dmitry Baryshkov (4): > platform: arm64: add Lenovo Yoga C630 WOS EC driver > usb: typec: ucsi: add Lenovo Yoga C630 glue driver > power: supply: lenovo_yoga_c630_battery: add Lenovo C630 driver > arm64: dts: qcom: sdm845: describe connections of USB/DP port > > .../bindings/platform/lenovo,yoga-c630-ec.yaml | 83 ++++ > arch/arm64/boot/dts/qcom/sdm845.dtsi | 53 ++- > .../boot/dts/qcom/sdm850-lenovo-yoga-c630.dts | 75 ++++ > drivers/platform/arm64/Kconfig | 14 + > drivers/platform/arm64/Makefile | 1 + > drivers/platform/arm64/lenovo-yoga-c630.c | 290 ++++++++++++ > drivers/power/supply/Kconfig | 9 + > drivers/power/supply/Makefile | 1 + > drivers/power/supply/lenovo_yoga_c630_battery.c | 500 +++++++++++++++++++++ > drivers/usb/typec/ucsi/Kconfig | 9 + > drivers/usb/typec/ucsi/Makefile | 1 + > drivers/usb/typec/ucsi/ucsi_yoga_c630.c | 204 +++++++++ > include/linux/platform_data/lenovo-yoga-c630.h | 44 ++ > 13 files changed, 1283 insertions(+), 1 deletion(-) > --- > base-commit: 6906a84c482f098d31486df8dc98cead21cce2d0 > change-id: 20240527-yoga-ec-driver-76fd7f5ddae8 > > Best regards, >