Currently, the usb251xb assumes i2c control. But from HW point of view, the hub supports usage case without any i2c, we only want the gpio controls. Refactor the code so that register writes for configuration are only performed if the device has a i2c_client provided and also register as a platform driver. This allows the driver to be used to manage GPIO based control of the device. Since v3: - collect Reviewed-by tags - update commit msg to remove redundant content - keep memset of i2c_wb[] Since v2: - add usage example w/o i2c control in dt-binding - update commit msg - remove of_match_ptr Since v1: - make the modern pm macros usage a separate patch - use pm_sleep_ptr instead of pm_ptr for usb251xb_plat_pm_ops, because this ops is for PM_SLEEP only. Jisheng Zhang (3): dt-bindings: usb: usb251xb: support usage case without I2C control usb: usb251xb: use modern PM macros usb: usb251xb: support usage case without I2C control .../devicetree/bindings/usb/usb251xb.yaml | 9 +- drivers/usb/misc/usb251xb.c | 108 +++++++++++++++--- 2 files changed, 103 insertions(+), 14 deletions(-) -- 2.50.0