On 7 November 2015 at 02:53, William Hermans <[email protected]> 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.

-- 
For more options, visit http://beagleboard.org/discuss
--- 
You received this message because you are subscribed to the Google Groups 
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to