I'm trying to alter the device tree blob so we can boot the Adrv9009W-PCBZ board with our own settings. We use this evaluation board on top of the ZCU102.
We clearly see from altering the virtual file system we need to set bit 0 of the AD9528 register 0x404 ( Sysref differential receiver control ) in order to get our board working with an external RF LO.
I can't find any device tree property to do so, but the list found on the AD9528 reference page here seems incomplete.
As an example: adi,sysref-request-enable can not be found on this page but it occurs in adrv9009.dtsi So I wonder if this could be the case with this register setting?
However when I open the source file, it seems register 0x404 seems not been included in any way to get addressed. Source file
My question: How do I enable the Sysref differential receiver control bit from within the device tree?
It seems you are right there is no 0x404 register in the driver. Right now the option to enable this setting from the device tree is not available.
As a workaround until we add this to the driver you could use direct_reg_access after Linux has finished loading. Use this command to change the value:
echo 0x404 value > direct_reg_access
You just replace value with the value you want to set register 0x404 also to be able to write to direct_reg_access you have to be root.
Yes. we used this option previously. It seems indeed the only option to do it like this.
I would like to point out that the the online device tree reference seems outdated.
Like I mentioned before, adi,sysref-request-enable is not present as an example and I just stumbled on adi,osc-in-diff-enable which also seems to be altered.
I created an issue with these remarks. We will update the Wiki page too.
Thank you for letting us know about these shortcomings.