[PATCH v1 0/1] Tegra: fix clock init

This should fix https://lore.kernel.org/all/20241201164810.GT3600562@bill-the-cat/T/#m2b62b4...
Svyatoslav Ryhel (1): driver: clk: tegra: init basic clocks on probe
drivers/clk/tegra/tegra-car-clk.c | 3 +++ 1 file changed, 3 insertions(+)

In case DM drivers probe earlier than board clock setup is done init of basic clocks should be done in CAR driver probe as well. Add it to avoid possible clock related problems.
Signed-off-by: Svyatoslav Ryhel clamor95@gmail.com --- drivers/clk/tegra/tegra-car-clk.c | 3 +++ 1 file changed, 3 insertions(+)
diff --git a/drivers/clk/tegra/tegra-car-clk.c b/drivers/clk/tegra/tegra-car-clk.c index 9078253d100..4f8405328a3 100644 --- a/drivers/clk/tegra/tegra-car-clk.c +++ b/drivers/clk/tegra/tegra-car-clk.c @@ -111,6 +111,9 @@ static int tegra_car_clk_probe(struct udevice *dev) { debug("%s(dev=%p)\n", __func__, dev);
+ clock_init(); + clock_verify(); + return 0; }

пт, 6 груд. 2024 р. о 08:01 Svyatoslav Ryhel clamor95@gmail.com пише:
In case DM drivers probe earlier than board clock setup is done init of basic clocks should be done in CAR driver probe as well. Add it to avoid possible clock related problems.
Signed-off-by: Svyatoslav Ryhel clamor95@gmail.com
drivers/clk/tegra/tegra-car-clk.c | 3 +++ 1 file changed, 3 insertions(+)
diff --git a/drivers/clk/tegra/tegra-car-clk.c b/drivers/clk/tegra/tegra-car-clk.c index 9078253d100..4f8405328a3 100644 --- a/drivers/clk/tegra/tegra-car-clk.c +++ b/drivers/clk/tegra/tegra-car-clk.c @@ -111,6 +111,9 @@ static int tegra_car_clk_probe(struct udevice *dev) { debug("%s(dev=%p)\n", __func__, dev);
clock_init();
clock_verify();
return 0;
}
-- 2.43.0
Simon, please test this commit and it it works for you, it can replace this revert https://lore.kernel.org/all/20241201164810.GT3600562@bill-the-cat/T/#m2b62b4...

On Fri, Dec 06, 2024 at 08:01:15AM +0200, Svyatoslav Ryhel wrote:
In case DM drivers probe earlier than board clock setup is done init of basic clocks should be done in CAR driver probe as well. Add it to avoid possible clock related problems.
Signed-off-by: Svyatoslav Ryhel clamor95@gmail.com
drivers/clk/tegra/tegra-car-clk.c | 3 +++ 1 file changed, 3 insertions(+)
diff --git a/drivers/clk/tegra/tegra-car-clk.c b/drivers/clk/tegra/tegra-car-clk.c index 9078253d100..4f8405328a3 100644 --- a/drivers/clk/tegra/tegra-car-clk.c +++ b/drivers/clk/tegra/tegra-car-clk.c @@ -111,6 +111,9 @@ static int tegra_car_clk_probe(struct udevice *dev) { debug("%s(dev=%p)\n", __func__, dev);
- clock_init();
- clock_verify();
- return 0;
}
Is this called before arch/arm/mach-tegra/board2.c::board_init()? Thanks.

пт, 6 груд. 2024 р. о 16:20 Tom Rini trini@konsulko.com пише:
On Fri, Dec 06, 2024 at 08:01:15AM +0200, Svyatoslav Ryhel wrote:
In case DM drivers probe earlier than board clock setup is done init of basic clocks should be done in CAR driver probe as well. Add it to avoid possible clock related problems.
Signed-off-by: Svyatoslav Ryhel clamor95@gmail.com
drivers/clk/tegra/tegra-car-clk.c | 3 +++ 1 file changed, 3 insertions(+)
diff --git a/drivers/clk/tegra/tegra-car-clk.c b/drivers/clk/tegra/tegra-car-clk.c index 9078253d100..4f8405328a3 100644 --- a/drivers/clk/tegra/tegra-car-clk.c +++ b/drivers/clk/tegra/tegra-car-clk.c @@ -111,6 +111,9 @@ static int tegra_car_clk_probe(struct udevice *dev) { debug("%s(dev=%p)\n", __func__, dev);
clock_init();
clock_verify();
return 0;
}
Is this called before arch/arm/mach-tegra/board2.c::board_init()? Thanks.
-- Tom
It does if the device uses pmic with dm driver and has any of pmic regulators set as always-on or boot-on

On Fri, Dec 06, 2024 at 05:09:19PM +0200, Svyatoslav Ryhel wrote:
пт, 6 груд. 2024 р. о 16:20 Tom Rini trini@konsulko.com пише:
On Fri, Dec 06, 2024 at 08:01:15AM +0200, Svyatoslav Ryhel wrote:
In case DM drivers probe earlier than board clock setup is done init of basic clocks should be done in CAR driver probe as well. Add it to avoid possible clock related problems.
Signed-off-by: Svyatoslav Ryhel clamor95@gmail.com
drivers/clk/tegra/tegra-car-clk.c | 3 +++ 1 file changed, 3 insertions(+)
diff --git a/drivers/clk/tegra/tegra-car-clk.c b/drivers/clk/tegra/tegra-car-clk.c index 9078253d100..4f8405328a3 100644 --- a/drivers/clk/tegra/tegra-car-clk.c +++ b/drivers/clk/tegra/tegra-car-clk.c @@ -111,6 +111,9 @@ static int tegra_car_clk_probe(struct udevice *dev) { debug("%s(dev=%p)\n", __func__, dev);
clock_init();
clock_verify();
return 0;
}
Is this called before arch/arm/mach-tegra/board2.c::board_init()? Thanks.
It does if the device uses pmic with dm driver and has any of pmic regulators set as always-on or boot-on
Ah, OK. I'll wait and see what Simon has to say next, thanks.
participants (2)
-
Svyatoslav Ryhel
-
Tom Rini