The ti,clksel binding puts the register offset on the parent node; a
child's "reg" is only an index matching its unit address. The mux,
divider and gate clock drivers read the child's "reg" first and use it
as the offset, which on am335x makes unaligned syscon accesses and
faults while registering the mux clocks:
ti_clksel0: <TI CLKSEL> on ofw_clkbus0 ti_mux12: <TI Mux Clock> on ti_clksel0 Fatal kernel mode data abort: 'Alignment Fault' on read FSR=00000001, FAR=ffd00001
Take the offset from the parent when it is a ti,clksel node, otherwise
from the child's "reg", and fail to attach if neither exists rather than
use a wrong offset.