usb: Add generic repeater framework and SM8550 driver
From: | Abel Vesa <abel.vesa-AT-linaro.org> | |
To: | Andy Gross <agross-AT-kernel.org>, Bjorn Andersson <andersson-AT-kernel.org>, Konrad Dybcio <konrad.dybcio-AT-linaro.org>, Greg Kroah-Hartman <gregkh-AT-linuxfoundation.org>, Rob Herring <robh+dt-AT-kernel.org>, Krzysztof Kozlowski <krzysztof.kozlowski+dt-AT-linaro.org> | |
Subject: | [RFC PATCH 0/3] usb: Add generic repeater framework and SM8550 driver | |
Date: | Wed, 16 Nov 2022 14:30:16 +0200 | |
Message-ID: | <20221116123019.2753230-1-abel.vesa@linaro.org> | |
Cc: | Linux Kernel Mailing List <linux-kernel-AT-vger.kernel.org>, devicetree-AT-vger.kernel.org, linux-arm-msm-AT-vger.kernel.org, linux-scsi-AT-vger.kernel.org, linux-usb-AT-vger.kernel.org | |
Archive-link: | Article |
This patchset adds a generic USB repeater framework to be used by platforms that have eUSB2 support and want to have USB 2.0 compliance. In such cases there is a device between the eUSB2 PHY and the actual connector. That device is basically a repeater and the most important thing it does is to level shift in both directions. Such a device needs to be controlled in software usually by the PHY or by the HC. So add a generic framework with basic ops to allow consumer drivers to get a phandle to it and to control it. Also add the SM8550 PMIC eUSB2 repeater which uses the generic framework. Abel Vesa (3): usb: Add USB repeater generic framework dt-bindings: usb: Add qcom,snps-eusb2-repeater schema usb: repeater: Add Qualcomm PMIC eUSB2 driver .../usb/qcom,snps-eusb2-repeater.yaml | 43 +++ drivers/usb/Kconfig | 2 + drivers/usb/Makefile | 2 + drivers/usb/repeater/Kconfig | 20 ++ drivers/usb/repeater/Makefile | 7 + .../usb/repeater/repeater-qcom-pmic-eusb2.c | 251 ++++++++++++++++++ drivers/usb/repeater/repeater.c | 198 ++++++++++++++ include/linux/usb/repeater.h | 78 ++++++ 8 files changed, 601 insertions(+) create mode 100644 Documentation/devicetree/bindings/usb/qcom,snps-eusb2-repeater.yaml create mode 100644 drivers/usb/repeater/Kconfig create mode 100644 drivers/usb/repeater/Makefile create mode 100644 drivers/usb/repeater/repeater-qcom-pmic-eusb2.c create mode 100644 drivers/usb/repeater/repeater.c create mode 100644 include/linux/usb/repeater.h -- 2.34.1