That would be an option where it not for the fact that I have a board that 
has a peripheral connected to P9_41, so I really need to get that pin to 
toggle...

Op donderdag 15 oktober 2020 om 14:39:28 UTC+2 schreef [email protected]:

> If you really need extra io pins, use a I2C io expander. much easier than
> beating yourself up.
>
>
> On 10/15/2020 2:08 AM, [email protected] wrote:
>
> I don't like to admit defeat, but this time I give up...
>
> I am trying to use the BeagleBone Black P9_41 pin as a GPIO 
> (GPIO3_20/GPIO0_20). According to the BeagleBone Black System reference 
> manual two different balls are connected to that pin:
> "# Both of these signals connect to pin 41 of P11. Resistors are installed 
> that allow for the GPIO3_20 connection to be removed by removing R221. The 
> intent is to allow the SW to use either of these signals, one or the other, 
> on pin 41. SW should set the unused pin in input mode when using the other 
> pin. This allowed us to get an extra signal out to the expansion header. "
>
> I realize this complicates matters, but I have no choice but to use this 
> exact pin. I am using other pins succesfully. Additionally, I am using 
> overlays to use ttyO1, ttyO2, ttyO4 and ttyO5. 
> The R221 designator is not correct, so I downloaded the boardfiles and 
> looked at them in Orcad. I tryed desoldered R19 (which disconnects CLKOUT2) 
> as well as R20 (one at a time), but that didn't help. I resoldered both 0R 
> bridges.
>
> I have created a DTS which compiles succesfully with 
>
> After doing 
> echo 116 > /sys/class/gpio/unexport
> echo 116 > /sys/class/gpio/export
> echo out > /sys/class/gpio/gpio116/direction
>
>
>
>
> I can toggle the pin in software:
> echo 1 > /sys/class/gpio/gpio116/value
>
>
> and
> cat /sys/class/gpio/gpio116/value
>
>
> returns 1 or 0 depending on what value I set it to
>
> However, the voltage of the pin stays at 3.3V.
> I've also tried to init GPIO20 as well as 116, set them both to low or set 
> one to input and the other output/high. No luck.
>
> I guess I need more than a simple overlay/pinmux config/... to set the pin 
> configuration (and disable CLKOUT2)
>
> There is lots of information on how to create and use them, but no clear 
> explanation on how to do this with current kernels. I've gone through Derek 
> Malloys book, but some of his methods seems deprecated with newer kernels.
>
> My (compiling but not functioning) p941test-00A0.dts (based on the TI dts 
> example files):
>
> /*
>  * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
>  *
>  * This program is free software; you can redistribute it and/or modify
>  * it under the terms of the GNU General Public License version 2 as
>  * published by the Free Software Foundation.
>  */
> /dts-v1/;
> /plugin/;
>
> / {
>     compatible = "ti,beaglebone", "ti,beaglebone-black";
>
>     /* identification */
>     part-number = "pinctrl-test-0";
>
>     fragment@0 {
>         target = <&am33xx_pinmux>;
>         __overlay__ {
>             pinctrl_test: pinctrl_test_0_pins {
>                 pinctrl-single,pins = <
>                     0x1b4 0x0F    /* P9_41 muxRegOffset, OUTPUT | MODE0 | 
> Pull down enabled */
>                     0x1a8 0x07    /* P9_42 muxRegOffset, OUTPUT | MODE0 */
>
>                 >;
>             };
>         };
>     };
>
>     fragment@1 {
>         target = <&ocp>;
>         __overlay__ {
>             test_helper: helper {
>                 compatible = "bone-pinmux-helper";
>                 pinctrl-names = "default";
>                 pinctrl-0 = <&pinctrl_test>;
>                 status = "okay";
>             };
>         };
>     };
> };
>
>
> compiling this with 
> sudo make -d src/arm/p941test-00A0.dtbo
>
> seems to do what it should.
> After using ./install.sh to put it everything in the correct directory, I 
> set 
> uboot_overlay_addr7=/lib/firmware/p941test-00A0.dtbo in /boot/uEnv.txt
>
>
>
> I'm quite confident my dts is the issue, but no idea what's wrong (and it 
> does compile).
>
>
> Some additional info:
>
> /opt/scripts/tools/version.sh returns:
> git:/opt/scripts/:[1aa73453b2c980b75e31e83dab7dd8b6696f10c7]
> eeprom:[A335BNLTEIA04718BBBK00F9]
> model:[TI_AM335x_BeagleBone_Black]
> dogtag:[BeagleBoard.org Debian Image 2018-10-07]
> bootloader:[eMMC-(default)]:[/dev/mmcblk1]:[U-Boot 2018.09-00002-
> gd5b4c4b656]:[location: dd MBR]
> kernel:[4.14.71-ti-r80]
> nodejs:[v6.14.4]
> uboot_overlay_options:[enable_uboot_overlays=1]
> uboot_overlay_options:[uboot_overlay_addr4=/lib/firmware/BB-UART1-
> 00A0.dtbo]
> uboot_overlay_options:[uboot_overlay_addr5=/lib/firmware/BB-UART2-
> 00A0.dtbo]
> uboot_overlay_options:[uboot_overlay_addr6=/lib/firmware/BB-UART4-
> 00A0.dtbo]
> uboot_overlay_options:[uboot_overlay_addr7=/lib/firmware/BB-UART5-
> 00A0.dtbo]
> uboot_overlay_options:[disable_uboot_overlay_video=1]
> uboot_overlay_options:[disable_uboot_overlay_audio=1]
> uboot_overlay_options:[disable_uboot_overlay_wireless=1]
> uboot_overlay_options:[disable_uboot_overlay_adc=1]
> pkg check: to individually upgrade run: [sudo apt install --only-upgrade 
> <pkg>]
> pkg:[bb-cape-overlays]:[4.14.20200805.0-0~stretch+20200805]
> pkg:[bb-wl18xx-firmware]:[1.20180517-0rcnee0~stretch+20180517]
> pkg:[kmod]:[23-2rcnee1~stretch+20171005]
> pkg:[librobotcontrol]:[1.0.3-git20181009.0-0rcnee0~stretch+20181010]
> cmdline:[console=ttyO0,115200n8 bone_capemgr.uboot_capemgr_enabled=1 root=
> /dev/mmcblk1p1 ro rootfstype=ext4 rootwait coherent_pool=1M net.ifnames=0 
> quiet]
> dmesg | grep pinctrl-single
> [    1.040989] pinctrl-single 44e10800.pinmux: 142 pins at pa f9e10800 
> size 568
> dmesg | grep gpio-of-helper
> [    1.042221] gpio-of-helper ocp:cape-universal: ready
> END
>
>
>
> uname -a returns:
> Linux beaglebone 4.14.71-ti-r80 #1 SMP PREEMPT Fri Oct 5 23:50:11 UTC 
> 2018 armv7l GNU/Linux
>
>
>
>
>
> /boot/uEnv.txt contents:
> #Docs: http://elinux.org/Beagleboard:U-boot_partitioning_layout_2.0
>
> uname_r=4.14.71-ti-r80
> #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-UART1-00A0.dtbo
> uboot_overlay_addr5=/lib/firmware/BB-UART2-00A0.dtbo
> uboot_overlay_addr6=/lib/firmware/BB-UART4-00A0.dtbo
> uboot_overlay_addr7=/lib/firmware/p941test-00A0.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_uio (4.4.x-ti, 4.14.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 quiet
>
> #In the event of edid real failures, uncomment this next line:
> #cmdline=coherent_pool=1M net.ifnames=0 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 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
>
>
>
>
>
> /sys/kernel/debug/pinctrl/44e10800.pinmux/pins |grep PIN109 has:
> pin 109 (PIN109) 44e109b4 0000000f pinctrl-single
>
> -- 
> 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].
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/beagleboard/6d0ed9a7-ba53-4bad-81a9-2e104bf2d448o%40googlegroups.com
>  
> <https://groups.google.com/d/msgid/beagleboard/6d0ed9a7-ba53-4bad-81a9-2e104bf2d448o%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
>
>

-- 
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].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/beagleboard/cc3275bc-4129-4e5c-9bf8-ae758722f49fn%40googlegroups.com.

Reply via email to