3.8.13bone70, LCD/Audio bust?

I decided to separate this thread from thread (Redirecting to Google Groups) I had commented earlier on as I felt the different versions just confused the issue.

Prior to upgrading to 3.8.13bone70, I was running Debian 3.8.13bone50 on Beaglebone black (RevC) together with LCD4 (BB-BONE-LCD4-01) and CircuitCo’s Audio cape Rev B1. From the beginning, I had issues with the audio dts file in that it grabbed exclusive use of gpio1_18 and gpio1_19, commenting these pins out and recompiling solved the problem.

When moving to 3.8.13bone70, I also had to rename the BB-BONE-AUDI-02-00A0 file to BB-BONE-AUDI-03-00A0 file so as to not load the kernel supplied device overlay.

Now it appears there is a pretty serious “bust” between LCD and Audio cape that I don’t know how to resolve (I say bust in inverted commas as I may be doing something wrong).

To me it appears that there is a conflict and I assume that the kernel supplied LCD’s dts is different to what was previously used.

After renaming the audio device overlay and manually loading (etc BB-BONE-AUDI-03 > …) which seemed to work, running aplay -l shows audio device but when trying to play a wav file all I hear is a ‘click’ noise and no music.

Using 3.8.13bone70

After manually loading BB-BONE-AUDI-03 cape, dmesg shows following error(s) with configuration:

[ 323.427162] pinctrl-single 44e10800.pinmux: pin 44e10998 already requested by gpio_keys.13; cannot claim for 48038000.mcasp [ 323.439210] pinctrl-single 44e10800.pinmux: pin-102 (48038000.mcasp) status -22 [ 323.447022] pinctrl-single 44e10800.pinmux: could not request pin 102 on device pinctrl-single [ 323.492148] davinci-mcasp 48038000.mcasp: pins are not configured from the driver

Rebooting with LCD cape enabled and AUDIO cape disabled, pin mux shows use of pin 102.

`
pin 16 (44e10840): gpio_keys.13 (GPIO UNCLAIMED) function pinmux_bone_lcd4_cape_keys_00A2_pins group pinmux_bone_lcd4_cape_keys_00A2_pins
pin 17 (44e10844): gpio_keys.13 (GPIO UNCLAIMED) function pinmux_bone_lcd4_cape_keys_00A2_pins group pinmux_bone_lcd4_cape_keys_00A2_pins
pin 19 (44e1084c): gpio_keys.13 (GPIO UNCLAIMED) function pinmux_bone_lcd4_cape_keys_00A2_pins group pinmux_bone_lcd4_cape_keys_00A2_pins
pin 30 (44e10878): gpio-leds-cape-lcd4.12 (GPIO UNCLAIMED) function pinmux_bone_lcd4_cape_led_00A1_pins group pinmux_bone_lcd4_cape_led_00A1_pins

pin 97 (44e10984): gpio_keys.13 (GPIO UNCLAIMED) function pinmux_bone_lcd4_cape_keys_00A2_pins group pinmux_bone_lcd4_cape_keys_00A2_pins

pin 102 (44e10998): gpio_keys.13 (GPIO UNCLAIMED) function pinmux_bone_lcd4_cape_keys_00A2_pins group pinmux_bone_lcd4_cape_keys_00A2_pins
pin 105 (44e109a4): panel.14 (GPIO UNCLAIMED) function pinmux_bone_lcd4_cape_lcd_pins group pinmux_bone_lcd4_cape_lcd_pins
`

With LCD4 disabled (in /boot/uEnv.txt) and AUDIO cape enabled, you can see use of pin 102 - a conflict?

`
pin 100 (44e10990): 48038000.mcasp (GPIO UNCLAIMED) function pinmux_bone_audio_cape_audio_pins group pinmux_bone_audio_cape_audio_pins
pin 101 (44e10994): 48038000.mcasp (GPIO UNCLAIMED) function pinmux_bone_audio_cape_audio_pins group pinmux_bone_audio_cape_audio_pins

pin 102 (44e10998): 48038000.mcasp (GPIO UNCLAIMED) function pinmux_bone_audio_cape_audio_pins group pinmux_bone_audio_cape_audio_pins
pin 103 (44e1099c): 48038000.mcasp (GPIO UNCLAIMED) function pinmux_bone_audio_cape_audio_pins group pinmux_bone_audio_cape_audio_pins
pin 104 (44e109a0): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 105 (44e109a4): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 106 (44e109a8): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 107 (44e109ac): 48038000.mcasp (GPIO UNCLAIMED) function pinmux_bone_audio_cape_audio_pins group pinmux_bone_audio_cape_audio_pins
`

Using 3.8.13bone50

Running pinmux on 3.8.13bone50 setup shows pinmux below, no mention of pin 102.

callin@BioChargerNG011:~$ sudo grep lcd $PINMUX pin 16 (44e10840): gpio_keys.13 (GPIO UNCLAIMED) function pinmux_bone_lcd4_cape_keys_00A2_pins group pinmux_bone_lcd4_cape_keys_00A2_pins pin 17 (44e10844): gpio_keys.13 (GPIO UNCLAIMED) function pinmux_bone_lcd4_cape_keys_00A2_pins group pinmux_bone_lcd4_cape_keys_00A2_pins pin 19 (44e1084c): gpio_keys.13 (GPIO UNCLAIMED) function pinmux_bone_lcd4_cape_keys_00A2_pins group pinmux_bone_lcd4_cape_keys_00A2_pins pin 30 (44e10878): gpio-leds-cape-lcd4.12 (GPIO UNCLAIMED) function pinmux_bone_lcd4_cape_led_00A1_pins group pinmux_bone_lcd4_cape_led_00A1_pins ... pin 59 (44e108ec): panel.14 (GPIO UNCLAIMED) function pinmux_bone_lcd4_cape_lcd_pins group pinmux_bone_lcd4_cape_lcd_pins pin 85 (44e10954): gpio_keys.13 (GPIO UNCLAIMED) function pinmux_bone_lcd4_cape_keys_00A2_pins group pinmux_bone_lcd4_cape_keys_00A2_pins pin 105 (44e109a4): panel.14 (GPIO UNCLAIMED) function pinmux_bone_lcd4_cape_lcd_pins group pinmux_bone_lcd4_cape_lcd_pins

It seems that there has been changes to LCD4-01 in that mention is made of adding pwm for backlight vs gpio. I am not sure when that change took place but there does seem to be a change with relation to pin 102 which appears to be conflicting pin and a pretty important pin for the audio cape and a non-essential pin for lcd functionality.

I am not sure how to proceed as I don’t think it’s possible to manually load my own BB-BONE-LCD4-01 cape - if there is I’d love to know how and see if this is the issue.

Help VERY much appreciated!

The fix occurred here: ("68.2") so install bone68 to get a prior
setup, that should match bone50...

https://github.com/RobertCNelson/bb-kernel/commit/ad1d7afeb38137340a883576d6b6f582650c88f2

Regards,

Thanks Robert I will give that a try - did it get ‘broken’ after 68.2 moving up to 70?

One of my main reasons for moving up to 70 was for the pretty solid (and neat) eMMC cloning scripts, hopefully 68 is close.

The scripts really don't care about kernel version... As long as the
kernel is in the repo:

DL the non-flasher..

Install the kernel you want via apt-get:

update scripts:

cd /opt/scripts/
git pull

enable the flasher, last line of:
/boot/uEnv.txt

Regards,

Hi Colin, I have been trying to get this config working all afternoon and zilch. I suspect the overlay file. Would you mind sharing both source and compiled(+working!) version so I can try out here?

My uEnv has

cape_disable=capemgr.disable_partno=BB-BONELT_HDMI

cape_enable=capemgr.enable_partno=BB-BONE-AUDI-02

which does not agree with this report

root@beaglebone:~# cat /sys/devices/bone_capemgr.9/slots

0: 54:PF—

1: 55:PF—

2: 56:PF—

3: 57:PF—

4: ff:P-O-L Bone-LT-eMMC-2G,00A0,Texas Instrument,BB-BONE-EMMC-2G

5: ff:P-O-- Bone-Black-HDMI,00A0,Texas Instrument,BB-BONELT-HDMI

6: ff:P-O-L Bone-Black-HDMIN,00A0,Texas Instrument,BB-BONELT-HDMIN

Thanks beaucoup.

I’ve broken my setup at present but will forward dtbo when it’s back up. I assume you are busy with bone50 setup and not bone70?

If so, I think you need to enable audio in /etc/default/capemgr and not in uEnv.txt:

`
callin@BioChargerNG011:~$ cat /etc/default/capemgr

Default settings for capemgr. This file is sourced by /bin/sh from

/etc/init.d/capemgr.sh

Options to pass to capemgr

CAPE=BB-BONE-AUDI-03
`

Note that I changed audio cape’s name to BB-BONE-AUDI-03 and not BB-BONE-AUDI-02,

In the meantime, till I get back up and running, in the BB-BONE-AUDI-02 dts file change

exclusive-use =
/* the pin header uses /
“P9.31”, /
mcasp0: mcasp0_aclkx /
“P9.29”, /
mcasp0: mcasp0_fsx /
“P9.28”, /
mcasp0: mcasp0_axr2 /
“P9.25”, /
mcasp0: mcasp0_ahclkx /
/
the hardware ip uses */
“gpio1_18”, “gpio1_19”,
“mcasp0”;

to

exclusive-use =
/* the pin header uses /
“P9.31”, /
mcasp0: mcasp0_aclkx /
“P9.29”, /
mcasp0: mcasp0_fsx /
“P9.28”, /
mcasp0: mcasp0_axr2 /
“P9.25”, /
mcasp0: mcasp0_ahclkx /
/
the hardware ip uses */
“mcasp0”;

Rename file to BB-BONE-AUDI-03-00A0.dts and compile to BB-BONE-AUDI-03-00A0.dtbo and copy to /lib/firmware directory.

If you can try this in the meantime and let me know.

~Colin

Thanks. Yes. Bone50. And good point. I’d forgotten how much has changed since then.

Robert, I just wanted to check that I am doing the linux image correctly.

Will apt-get install linux-image-3.8.13-bone68 include the 68.2 patch you mentioned?

Much appreciated,
Colin

Hi Colin,

I’m glad I asked :-), these versioning schemes don’t always make sense to folks out of the loop.

Where does 68.1 fit in? I see it commented out in diff.

Is there a scheme to the numbering - e.g. is bone70 68.3 patch or does it have no patch - is there a link explaining this for my own future reference.

Thanks!

There is scheme, it's all linear..

https://github.com/RobertCNelson/bb-kernel/commits/am33x-v3.8

"x.0" releases are pushed out, anything "x.y + 0.1" is a between
release commit...

68 -> bone68 pushed out..
68.1 probotix lcd cape
68.2 lcd4 cape fix
68.3 hdmi pin fix
68.4 config: CONFIG_TI_CPTS, CONFIG_PTP_1588_CLOCK and CONFIG_USB_G_DBGP
69 -> bone69 pushed out..

Usually i try to keep things down to one change between 0.1 bumps..

Regards,

Thanks Robert, the link is most useful and I learned something new today - I never even saw that commits link of git page - even after all these years.

Robert, I think I misunderstood your comment regarding ‘fix’ with patch 68.2 as in my situation this patch (68.2) actually broke my system (per my requirements) as the offending key was added to LCD cape - my confusion was that word ‘fix’ fixed my problem.

By setting gpi3_16, functionality required by Audio cape was locked out making operation of audio cape and lcd not possible.

bone68 works and bone69 doesn’t support both audio cape and lcd.

I am not sure what solution is going forward as this locks me in to this version if the patch (not a fix in my case) is included in kernel.

Thanks for all your assistance - couldn’t do this without your input.

Cheers
Colin