Am I doing something wrong or are my expectations incorrect?

I created an overlay file BB-PRUDAP-00A0 to take over P9_17 and P9_18 and 
set them to the IEP.

I added it to uEnv.txt and apparently it loaded:

root@beaglebone:~/prudap/lkm/prudap_lkm# ls -al 
/proc/device-tree/chosen/overlays/
total 0
drwxr-xr-x 2 root root  0 Jan 24 07:11 .
drwxr-xr-x 3 root root  0 Jan 24 07:11 ..
-r--r--r-- 1 root root 25 Jan 24 07:11 AM335X-PRU-RPROC-4-14-TI-00A0
-r--r--r-- 1 root root 25 Jan 24 07:11 BB-ADC-00A0
-r--r--r-- 1 root root 25 Jan 24 07:11 BB-BONE-eMMC1-01-00A0
-r--r--r-- 1 root root 25 Jan 24 07:11 BB-PRUDAP-00A0
-r--r--r-- 1 root root  9 Jan 24 07:11 name


It also seems to have exclusive control over the pins:

root@beaglebone:~# config-pin P9_17 pwm
ERROR: open() for /sys/devices/platform/ocp/ocp:P9_17_pinmux/state failed, 
No such file or directory

However, when I check the actual pinmux values, I get:

[   77.897980] prudap: spi0_cs0 pinmux state: 0x37
[   77.897986] prudap: spi0_d1  pinmux state: 0x37

That's not what I expect.  I expected to see 0x2E and 0x2D like I requested 
in the overlay file.

What did I do wrong in the BB-PRUDAP-00A0.dts file.  Those values are not 
what I wanted, but I can override those values in a kernel module.  
However, I expected the pinmux to be already set up due to the overlay file.

Any help would be appreciated.

Thanks.


BB-PRUDAP-00A0.dts file:


/dts-v1/;
/plugin/;

#include <dt-bindings/board/am335x-bbw-bbb-base.h>
#include <dt-bindings/pinctrl/am33xx.h>

/ {
    compatible = "ti,beaglebone", "ti,beaglebone-black", 
"ti,beaglebone-green";

    // identification
    part-number = "BB-PRUDAP";
    version = "00A0";

    // resources this cape uses
    exclusive-use =
        "P9.17",    // spi0_cs0
        "P9.18",    // spi0_d1

        "pruss_iep";    // hardware ip used

    /*
     * Helper to show loaded overlays under: 
/proc/device-tree/chosen/overlays/
     */
    fragment@0 {
        target-path="/";
        __overlay__ {

            chosen {
                overlays {
                    BB-PRUDAP-00A0 = __TIMESTAMP__;
                };
            };
        };
    };

    /*
     * Free up the pins used by the cape from the pinmux helpers.
     */
    fragment@1 {
        target = <&ocp>;
        __overlay__ {
            P9_17_pinmux { status = "disabled"; };    /* spi0_cs0 */
            P9_18_pinmux { status = "disabled"; };    /* spi0_d1  */
        };
    };

    fragment@2 {
        target = <&am33xx_pinmux>;
        __overlay__ {
            bb_prudap_pins: pinmux_bb_prudap_pins {
                pinctrl-single,pins = <
                    BONE_P9_17 0x2E    /* spi0_cs0.i2c1_scl, SLEWCTRL_FAST 
| INPUT_EN | PULL_DISABLE | MODE6 (IEP-edio/digio data out 7) */
                    BONE_P9_18 0x2D    /* spi0_d1.i2c1_sda, SLEWCTRL_FAST | 
INPUT_EN | PULL_DISABLE | MODE5 (IEP-edio/digio data in 6) */
                >;
            };
        };
    };

    fragment@3 {
        target = <&pruss_iep>;
        __overlay__ {
            status = "okay";
            pinctrl-names = "default";
            pinctrl-0 = <&bb_prudap_pins>;
        };
    };
};





/boot/uEnv.txt for completeness:

root@beaglebone:~/prudap/lkm/prudap_lkm# cat /boot/uEnv.txt 
#Docs: http://elinux.org/Beagleboard:U-boot_partitioning_layout_2.0

uname_r=4.14.108-ti-r113
#uuid=
#dtb=

###U-Boot Overlays###
###Documentation: 
http://elinux.org/Beagleboard:BeagleBoneBlack_Debian#U-Boot_Overlays
###Master Enable
enable_uboot_overlays=1
###
###Overide capes with eeprom
#uboot_overlay_addr0=/lib/firmware/<file0>.dtbo
#uboot_overlay_addr1=/lib/firmware/<file1>.dtbo
#uboot_overlay_addr2=/lib/firmware/<file2>.dtbo
#uboot_overlay_addr3=/lib/firmware/<file3>.dtbo
###
###Additional custom capes
uboot_overlay_addr4=/lib/firmware/BB-PRUDAP-00A0.dtbo
#uboot_overlay_addr5=/lib/firmware/<file5>.dtbo
#uboot_overlay_addr6=/lib/firmware/<file6>.dtbo
#uboot_overlay_addr7=/lib/firmware/<file7>.dtbo
###
###Custom Cape
#dtb_overlay=/lib/firmware/<file8>.dtbo
###
###Disable auto loading of virtual capes (emmc/video/wireless/adc)
#disable_uboot_overlay_emmc=1
disable_uboot_overlay_video=1
disable_uboot_overlay_audio=1
#disable_uboot_overlay_wireless=1
#disable_uboot_overlay_adc=1
###
###PRUSS OPTIONS
###pru_rproc (4.4.x-ti kernel)
#uboot_overlay_pru=/lib/firmware/AM335X-PRU-RPROC-4-4-TI-00A0.dtbo
###pru_rproc (4.14.x-ti kernel)
uboot_overlay_pru=/lib/firmware/AM335X-PRU-RPROC-4-14-TI-00A0.dtbo
###pru_rproc (4.19.x-ti kernel)
#uboot_overlay_pru=/lib/firmware/AM335X-PRU-RPROC-4-19-TI-00A0.dtbo
###pru_uio (4.4.x-ti, 4.14.x-ti, 4.19.x-ti & mainline/bone kernel)
#uboot_overlay_pru=/lib/firmware/AM335X-PRU-UIO-00A0.dtbo
###
###Cape Universal Enable
enable_uboot_cape_universal=1
###
###Debug: disable uboot autoload of Cape
#disable_uboot_overlay_addr0=1
#disable_uboot_overlay_addr1=1
#disable_uboot_overlay_addr2=1
#disable_uboot_overlay_addr3=1
###
###U-Boot fdt tweaks... (60000 = 384KB)
#uboot_fdt_buffer=0x60000
###U-Boot Overlays###

cmdline=coherent_pool=1M net.ifnames=0 rng_core.default_quality=100 quiet

#In the event of edid real failures, uncomment this next line:
#cmdline=coherent_pool=1M net.ifnames=0 rng_core.default_quality=100 quiet 
video=HDMI-A-1:1024x768@60e

#Use an overlayfs on top of a read-only root filesystem:
#cmdline=coherent_pool=1M net.ifnames=0 rng_core.default_quality=100 quiet 
overlayroot=tmpfs

##enable Generic eMMC Flasher:
##make sure, these tools are installed: dosfstools rsync
#cmdline=init=/opt/scripts/tools/eMMC/init-eMMC-flasher-v3.sh




-- 
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/3614e75f-94a4-4f50-9376-374d0b55cfba%40googlegroups.com.

Reply via email to