*On 7 November 2015 at 02:53, William Hermans <yyrkoon@gmail.com
<yyrkoon@gmail.com>> wrote:**OK, thanks. That uio guide I've already run into, and I was afraid you
were going to link to that . . . heh. Beaglebone register address I did
not need help with, but understanding how to interface the uio adc "driver"
once running.**One problem I'm seeing thus far, is the ADC clock needs to be enabled
etc. Which is in a completely different memory location . . . but my
imagination is not that limited, so would not slow me down too much . . .*
*Happens automagically when you open /dev/uio/adc (and the kernel will
disable the clock again when you close it).**The reason for that is that my DTS fragment reuses the existing DT node
for the ADC. A standalone definition would be:**tscadc@44e0d000 {
reg = <0x44e0d000 0x1000>;
interrupt-parent = <&intc>;
interrupts = <16>;
ti,hwmods = "adc_tsc";
compatible = "uio";
uio-alias = "adc";
};**The magic clock enabling part is due to "ti,hwmods", which associates the
node with platform data still hardcoded into the kernel. I'm not entirely
sure how the mechanism works exactly, and my understanding is that it's
destined to become deprecated eventually ("replaced by genpd along the
lines of simple-pm-bus"). I don't know how things will look after that.**(the two child nodes declared in the main DT are ignored by uio and
harmless)*Matthijs
*PS although your reply was by direct email I'm sending this to the list
again since, although off-topic, I think it may still be of interest to
other readers.*
Matthijs,
So doing some digging, am33xxx.dtsi has this fragment:
tscadc: tscadc@44e0d000 {
compatible = "ti,am3359-tscadc";
reg = <0x44e0d000 0x1000>;
interrupt-parent = <&intc>;
interrupts = <16>;
ti,hwmods = "adc_tsc";
status = "disabled";
tsc {
compatible = "ti,am3359-tsc";
};
am335x_adc: adc {
#io-channel-cells = <1>;
compatible = "ti,am3359-adc";
};
};
So I am thinking the code snippet for the /dev/uio/adc would not work
without modifying that file to reflect those changes. Am I wrong ?
Everything, well most everything looks the same except for the compatible
field, status field is disabled instead of "ok", and you have an additional
field for a uio alias I suppose.
You had mentioned you do not use overlays. How do you enable all this then
? Perhaps I'd learn more from that.