Alright, I finally got this working, thanks to both William and TJF. In the 
end, my problem boils down to coding sloppiness on my part, as well as 
being constantly interrupted with other tasks. After spending a solid block 
of uninterrupted time doing some careful testing, the following code 
snippets are what I found to work. The only device tree overlay I needed is 
what I have below; no need to load the BB-ADC overlay.

*PRU Code*
//--------------------------------------------------------------------
// Enable and/or turn on hardware
// Code in this section must be ordered as listed for proper
// hardware startup.

        // Enable OCP
        lbco    r0, PRU_ICSS_CFG_base, PRU_CFG_SYSCFG, 4
        clr     r0, 4
        sbco    r0, PRU_ICSS_CFG_base, PRU_CFG_SYSCFG, 4

        // Enable ADC clock, wait for ADC module to start before proceeding
        mov     r0, CM_WKUP_base + CM_WKUP_ADC_TSC_CLKCTRL
        mov     r1, 2
        sbbo    r1, r0, 0, 4
        mov     r1, 0                           // clear timeout counter
AdcWait:
        LBBO    r0, adc_base, ADC_REVISION, 4   // load ADC REVISION
        QBNE    AdcUp, r0, 0                    // exit if ADC is running
        ADD     r1, r1, 1                       // increase timeout counter
        QBGE    AdcWait, r1.b1, 16              // if no timeout -> wait
AdcUp:

//--------------------------------------------------------------------

*Device Tree* *Overlay*
/dts-v1/;
/plugin/;

/{
compatible = "ti,beaglebone", "ti,beaglebone-black";
part-number = "pru_enable";
version = "00A0";

/* This overlay uses the following resources */
exclusive-use =
        "pru0",
        
        "P9.29",    // GPIO3[15]    fet_off
        "P9.30",    // GPIO3[16]    fet_on
        "P9.31";    // GPIO3[14]    triac
        
fragment@0 {
    target = <&am33xx_pinmux>;
    __overlay__ {
        pru_pins: pinmux_pru_pins {
            pinctrl-single,pins = <
                0x190 0x05  // P9_31 $PINS=100 pr1_pru0_pru_r30_0 mode 5 
output pulldown
                0x194 0x05  // P9_29 $PINS=101 pr1_pru0_pru_r30_1 mode 5 
output pulldown
                0x198 0x05  // P9_30 $PINS=102 pr1_pru0_pru_r30_2 mode 5 
output pulldown
                >;
            };
        };
    };

fragment@2 {         // Enable the PRUSS
    target = <&pruss>;
    __overlay__ {
        status = "okay";
        pinctrl-names = "default";
        pinctrl-0 = <&pru_pins>;
        
        dig_pru_pins {
            pin-names = "FET_OFF","FET_ON","TRIAC" ;
            gpios = <&gpio3 14 0        // P9.31
                     &gpio3 15 0        // P9.29
                     &gpio3 16 0>;      // P9.30
            };
        };
    };

};

-- 
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 beagleboard+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/beagleboard/41d50a79-e4b9-4d0c-bd69-16eab8eb2a98%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to