Quoting Aidan MacDonald (2022-06-03 06:47:05) > Access to registers is guarded by ingenic_tcu_{enable,disable}_regs() > so the stop bit can be cleared before accessing a timer channel, but > those functions did not clear the stop bit on SoCs with a global TCU > clock gate. > > Testing on the X1000 has revealed that the stop bits must be cleared > _and_ the global TCU clock must be ungated to access timer registers. > Programming manuals for the X1000, JZ4740, and JZ4725B specify this > behavior. If the stop bit isn't cleared, then writes to registers do > not take effect, which can leave clocks with no defined parent when > registered and leave clock tree state out of sync with the hardware, > triggering bugs in downstream drivers relying on TCU clocks. > > Fixing this is easy: have ingenic_tcu_{enable,disable}_regs() always > clear the stop bit, regardless of the presence of a global TCU gate. > > Signed-off-by: Aidan MacDonald <aidanmacdonald.0x0@xxxxxxxxx> > --- Any Fixes: tag?