mcasp pinmux settings

Ok I am slightly confused her on the pinmux signal directions.

In the BB-BONE-AUDI-02-00A0.dts file we have all pins set to inputs

fragment@0 {
        target = <&am33xx_pinmux>;
        __overlay__ {
            bone_audio_cape_audio_pins: pinmux_bone_audio_cape_audio_pins {
                pinctrl-single,pins = <
                    0x190 (PIN_INPUT_PULLDOWN | MUX_MODE0) /*
mcasp0_aclkx.mcasp0_aclkx */
                    0x194 (PIN_INPUT_PULLDOWN | MUX_MODE0) /*
mcasp0_fsx.mcasp0_fsx, INPUT */
                    0x198 (PIN_INPUT_PULLDOWN | MUX_MODE0) /*
mcasp0_axr0.mcasp0_axr0 */
                    0x19c (PIN_INPUT_PULLDOWN | MUX_MODE2) /*
mcasp0_ahclkr.mcasp0_axr2 */
                    0x1ac (PIN_INPUT_PULLDOWN | MUX_MODE0) /*
MCASP0_AHCLKX -> MCASP0_AHCLKX (I2S_MCLK_OUT)- in */
                >;
            };
        };
    };

Am i missing something here ? All pins should be outputs except the
audio input on axr0.mcasp0 which should be an input.

On the UARTS the signal directions are correct.

Is there some black magic that i am missing ?

pinctrl-single,pins = <
0x190 (PIN_INPUT_PULLDOWN | MUX_MODE0) /*
mcasp0_aclkx.mcasp0_aclkx /
0x194 (PIN_INPUT_PULLDOWN | MUX_MODE0) /

mcasp0_fsx.mcasp0_fsx, INPUT /
0x198 (PIN_INPUT_PULLDOWN | MUX_MODE0) /

mcasp0_axr0.mcasp0_axr0 /
0x19c (PIN_INPUT_PULLDOWN | MUX_MODE2) /

mcasp0_ahclkr.mcasp0_axr2 /
0x1ac (PIN_INPUT_PULLDOWN | MUX_MODE0) /

MCASP0_AHCLKX → MCASP0_AHCLKX (I2S_MCLK_OUT)- in */

I really hate when gmail does that crap . . .

pinctrl-single,pins = <
0x190 (PIN_INPUT_PULLDOWN | MUX_MODE0) /*
mcasp0_aclkx.mcasp0_aclkx /
0x194 (PIN_INPUT_PULLDOWN | MUX_MODE0) /

mcasp0_fsx.mcasp0_fsx, INPUT /
0x198 (PIN_INPUT_PULLDOWN | MUX_MODE0) /

mcasp0_axr0.mcasp0_axr0 /
0x19c (PIN_INPUT_PULLDOWN | MUX_MODE2) /

mcasp0_ahclkr.mcasp0_axr2 /
0x1ac (PIN_INPUT_PULLDOWN | MUX_MODE0) /

MCASP0_AHCLKX → MCASP0_AHCLKX (I2S_MCLK_OUT)- in */

Not much help
there is a file i have found BB-BONE-AUDI-03-00A0.dts
that have other settings

    fragment@0 {
        target = <&am33xx_pinmux>;
        __overlay__ {

            bone_audio_cape_audio_pins: pinmux_bone_audio_cape_audio_pins {
                pinctrl-single,pins = <
                    0x1ac 0x20 /* mcasp0_ahclkx, INPUT | MODE0 */
                    0x19c 0x22 /* mcasp0_axr2, INPUT | MODE2 */
                    0x194 0x20 /* mcasp0_fsx, INPUT | MODE0 */
                    0x198 0x08 /* mcasp0_axr0, OUTPUT | MODE0 */
                    0x190 0x20 /* mcasp0_aclkx, INPUT | MODE0 */
                >;
            };
        };
    };

seems closer but still backwards in my eye

The pinmux input/output setting are only relevant when using GPIO. When using a peripheral like McASP, the input/output are defined by the pin function. Also, the serializers directions are defined by:

serial-dir = < /* 0: INACTIVE, 1: TX, 2: RX */
2 0 1 0
0 0 0 0
0 0 0 0
0 0 0 0

;

Regards,
John

Thanks john. I had a feeling it was something like that but i still
don't understand why some overlays
change direction on some pins. Its tough to find much information on
writing overlays out there.

In the TI pinmux tool when you define the mcasp pins default is all set
to input but there is a checkbox to set them as outputs.

Some of the clock pins are I/O but i don't see that being set anywhere
either.

I also don't like the fact that if there is an error when compiling an
overlay it doesn't spit out a line number where
said error is. It's rather non verbose.