: A83T - AC100 gets the wrong number of parents
Subsystems (2)
Hey,
When I boot my A83T I get the following bootlog [1].
After some debugging, I found out that the function call:clk_hw_get_num_parents() returns 2. After a look in the devicetree I found out that this value should be 1, since we only have one parent clock [3].
Setting the variable num_parents to 1 fixes the problem, but this is no soultion.
Regards,
Philipp
[1]: https://pastebin.com/5c7hxjsS
[2]: http://lxr.bootlin.com/linux/v4.15/source/drivers/rtc/rtc-ac100.c#
L180
[3]: http://lxr.bootlin.com/linux/v4.15/source/arch/arm/boot/dts/sun8i-
a83t-bananapi-m3.dts#L159
Quoted 8 lines · Philipp Rossak
Hey,
When I boot my A83T I get the following bootlog [1].
After some debugging, I found out that the function call:
clk_hw_get_num_parents()returns 2. After a look in the devicetree I found out that this value should be 1, since we only have one parent clock [3].
Not really. The first parent is registered within the rtc-ac100 driver, which also handles the clocks on the RTC side of the chip.
The clock in the device tree is meant to tie the two parts of the chip
together: the codec side provides a high speed clock to the RTC side.
Quoted 2 lines
Setting the variable
num_parentsto 1 fixes the problem, but this is no soultion.
A good fix would be to check the return value of clk_hw_get_parent_by_index()
here: http://lxr.bootlin.com/linux/v4.16-rc1/source/drivers/rtc/rtc-ac100.c#L186
and skip it if it's NULL.
The driver is setup this way because the codec side is not implemented, but the device tree binding is partially defined to include the clock.
ChenYu
Quoted 15 lines
Regards,
Philipp[1]: https://pastebin.com/5c7hxjsS
[2]: http://lxr.bootlin.com/linux/v4.15/source/drivers/rtc/rtc-ac100.c#
L180
[3]: http://lxr.bootlin.com/linux/v4.15/source/arch/arm/boot/dts/sun8i-
a83t-bananapi-m3.dts#L159_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel at lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel