• John Stultz's avatar
    usb: dwc3: Rework clock initialization to be more flexible · 0d3a9708
    John Stultz authored
    The dwc3 core binding specifies three clocks:
      ref, bus_early, and suspend
    
    which are all controlled in the driver together.
    
    However some variants of the hardware my not have all three
    clks, or some may have more. Usually this was handled by using
    the dwc3-of-simple glue driver, but that resulted in a
    proliferation of bindings for for every variant, when the only
    difference was the clocks and resets lists.
    
    So this patch reworks the reading of the clks from the dts to
    use devm_clk_bulk_get_all() will will fetch all the clocks
    specified in the dts together.
    
    This patch was recommended by Rob Herring <robh@kernel.org>
    as an alternative to creating multiple bindings for each variant
    of hardware.
    
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: Rob Herring <robh+dt@kernel.org>
    Cc: Mark Rutland <mark.rutland@arm.com>
    CC: ShuFan Lee <shufan_lee@richtek.com>
    Cc: Heikki Krogerus <heikki.krogerus@linux.intel.com>
    Cc: Suzuki K Poulose <suzuki.poulose@arm.com>
    Cc: Chunfeng Yun <chunfeng.yun@mediatek.com>
    Cc: Yu Chen <chenyu56@huawei.com>
    Cc: Felipe Balbi <balbi@kernel.org>
    Cc: Hans de Goede <hdegoede@redhat.com>
    Cc: Andy Shevchenko <andy.shevchenko@gmail.com>
    Cc: Jun Li <lijun.kernel@gmail.com>
    Cc: Valentin Schneider <valentin.schneider@arm.com>
    Cc: Guillaume Gardet <Guillaume.Gardet@arm.com>
    Cc: Jack Pham <jackp@codeaurora.org>
    Cc: linux-usb@vger.kernel.org
    Cc: devicetree@vger.kernel.org
    Suggested-by: default avatarRob Herring <robh@kernel.org>
    Signed-off-by: default avatarJohn Stultz <john.stultz@linaro.org>
    Signed-off-by: default avatarFelipe Balbi <balbi@kernel.org>
    0d3a9708
core.c 45.5 KB