X-Git-Url: https://repo.jachan.dev/J-u-boot.git/blobdiff_plain/d7a184d4a7d2706f091a3b708060f48a325234ef..f92413f67b7125729a200776e806f3e7d25450e3:/drivers/timer/cadence-ttc.c diff --git a/drivers/timer/cadence-ttc.c b/drivers/timer/cadence-ttc.c index 75263c5375e..3cffb1bb88d 100644 --- a/drivers/timer/cadence-ttc.c +++ b/drivers/timer/cadence-ttc.c @@ -3,11 +3,15 @@ * Copyright (C) 2018 Xilinx, Inc. (Michal Simek) */ -#include +#include #include #include +#include #include +#include #include +#include +#include #define CNT_CNTRL_RESET BIT(4) @@ -53,13 +57,11 @@ ulong timer_get_boot_us(void) } #endif -static int cadence_ttc_get_count(struct udevice *dev, u64 *count) +static u64 cadence_ttc_get_count(struct udevice *dev) { struct cadence_ttc_priv *priv = dev_get_priv(dev); - *count = readl(&priv->regs->counter_val1); - - return 0; + return readl(&priv->regs->counter_val1); } static int cadence_ttc_probe(struct udevice *dev) @@ -82,7 +84,7 @@ static int cadence_ttc_probe(struct udevice *dev) return 0; } -static int cadence_ttc_ofdata_to_platdata(struct udevice *dev) +static int cadence_ttc_of_to_plat(struct udevice *dev) { struct cadence_ttc_priv *priv = dev_get_priv(dev); @@ -94,6 +96,17 @@ static int cadence_ttc_ofdata_to_platdata(struct udevice *dev) return 0; } +static int cadence_ttc_bind(struct udevice *dev) +{ + const char *cells; + + cells = dev_read_prop(dev, "#pwm-cells", NULL); + if (cells) + return -ENODEV; + + return 0; +} + static const struct timer_ops cadence_ttc_ops = { .get_count = cadence_ttc_get_count, }; @@ -107,8 +120,9 @@ U_BOOT_DRIVER(cadence_ttc) = { .name = "cadence_ttc", .id = UCLASS_TIMER, .of_match = cadence_ttc_ids, - .ofdata_to_platdata = cadence_ttc_ofdata_to_platdata, - .priv_auto_alloc_size = sizeof(struct cadence_ttc_priv), + .of_to_plat = cadence_ttc_of_to_plat, + .priv_auto = sizeof(struct cadence_ttc_priv), .probe = cadence_ttc_probe, .ops = &cadence_ttc_ops, + .bind = cadence_ttc_bind, };