|
@@ -426,6 +426,7 @@ static const struct pwm_ops ehrpwm_pwm_ops = {
|
|
|
};
|
|
|
|
|
|
static const struct of_device_id ehrpwm_of_match[] = {
|
|
|
+ { .compatible = "ti,am3352-ehrpwm" },
|
|
|
{ .compatible = "ti,am33xx-ehrpwm" },
|
|
|
{},
|
|
|
};
|
|
@@ -433,6 +434,7 @@ MODULE_DEVICE_TABLE(of, ehrpwm_of_match);
|
|
|
|
|
|
static int ehrpwm_pwm_probe(struct platform_device *pdev)
|
|
|
{
|
|
|
+ struct device_node *np = pdev->dev.of_node;
|
|
|
int ret;
|
|
|
struct resource *r;
|
|
|
struct clk *clk;
|
|
@@ -444,6 +446,13 @@ static int ehrpwm_pwm_probe(struct platform_device *pdev)
|
|
|
return -ENOMEM;
|
|
|
|
|
|
clk = devm_clk_get(&pdev->dev, "fck");
|
|
|
+ if (IS_ERR(clk)) {
|
|
|
+ if (of_device_is_compatible(np, "ti,am33xx-ecap")) {
|
|
|
+ dev_warn(&pdev->dev, "Binding is obsolete.\n");
|
|
|
+ clk = devm_clk_get(pdev->dev.parent, "fck");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
if (IS_ERR(clk)) {
|
|
|
dev_err(&pdev->dev, "failed to get clock\n");
|
|
|
return PTR_ERR(clk);
|