EQEP pin conflict with MCASP

Hello

I am trying to enable and use eqep0 on my BBB (kernel 4.4.30-ti-r64) and am encountering a pin conflict (pin 107) between the eqep driver and mcasp driver

From dmesg output:

[ 41.150493] eqep 48300180.eqep: ver. 1.0
[ 41.150628] pinctrl-single 44e10800.pinmux: pin 44e109ac.0 already requested by 48038000.mcasp; cannot claim for 48300180.eqep
[ 41.162226] pinctrl-single 44e10800.pinmux: pin-107 (48300180.eqep) status -22
[ 41.169520] pinctrl-single 44e10800.pinmux: could not request pin 107 (44e109ac.0) from group pinctrl_eqep0_pins on device pinctrl-single
[ 41.182036] eqep 48300180.eqep: Error applying setting, reverse things back

In /boot/uEnv.txt I enable bone_eqep0 and disable HDMI with/without audio:

##Example v4.1.x
cape_disable=bone_capemgr.disable_partno=BB-BONELT-HDMI,BB-BONELT-HDMIN
cape_enable=bone_capemgr.enable_partno=BB-UART1,bone_eqep0

In /opt/bb.org-overlays/src/arm/bone_eqep0-00A0 shows the following pins being used which none of them map to pin 107 on my BBB:

pinctrl-single,pins = <
BONE_P9_42B (PIN_INPUT | MUX_MODE1) // GPIO3_18 = EQEP0A_in
BONE_P9_27 (PIN_INPUT | MUX_MODE1) // GPIO3_19 = EQEP0B_in
BONE_P9_41B (PIN_INPUT | MUX_MODE1) // GPIO3_20 = EQEP0_index
BONE_P9_25 (PIN_INPUT | MUX_MODE1) // GPIO3_21 = EQEP0_strobe

I have found a thread here: https://groups.google.com/forum/#!category-topic/beagleboard/audio/YNhtwbe_b4k that shows how to disable mcasp0 but I am concerned that something is not configured right as my understanding was that eqep0 should not conflict with other hardware and especially a pin that should not overlap. Am I missing something obvious. I thought I could just enable this driver out of the box.

Kevin

For v4.4.x you need to use:

(just eMMC enabled)
dtb=am335x-boneblack-emmc-overlay.dtb

(no eMMC/video/audio)
dtb=am335x-boneblack-overlay.dtb

Regards,

Hello

I am trying to enable and use eqep0 on my BBB (kernel 4.4.30-ti-r64) and
am encountering a pin conflict (pin 107) between the eqep driver and mcasp
driver

From dmesg output:

[ 41.150493] eqep 48300180.eqep: ver. 1.0
[ 41.150628] pinctrl-single 44e10800.pinmux: pin 44e109ac.0 already
requested by 48038000.mcasp; cannot claim for 48300180.eqep
[ 41.162226] pinctrl-single 44e10800.pinmux: pin-107 (48300180.eqep)
status -22
[ 41.169520] pinctrl-single 44e10800.pinmux: could not request pin 107
(44e109ac.0) from group pinctrl_eqep0_pins on device pinctrl-single
[ 41.182036] eqep 48300180.eqep: Error applying setting, reverse things
back

In /boot/uEnv.txt I enable bone_eqep0 and disable HDMI with/without audio:

##Example v4.1.x
cape_disable=bone_capemgr.disable_partno=BB-BONELT-HDMI,BB-BONELT-HDMIN
cape_enable=bone_capemgr.enable_partno=BB-UART1,bone_eqep0

Thats wrong. First of all cape_disable for the purpose you're trying to
achieve here is unnecessary.

william@beaglebone:~/dev$ head /boot/uEnv.txt
#Docs: Beagleboard:U-boot partitioning layout 2.0 - eLinux.org

uname_r=4.4.27-ti-r62
#uuid=
#dtb=

#beaglebone Black/Green dtb's for v4.1.x (BeagleBone White just works..)

#beaglebone Black: HDMI (Audio/Video) disabled:
dtb=am335x-boneblack-emmc-overlay.dtb

In /opt/bb.org-overlays/src/arm/bone_eqep0-00A0 shows the following pins
being used which none of them map to pin 107 on my BBB:

pinctrl-single,pins = <
BONE_P9_42B (PIN_INPUT | MUX_MODE1) // GPIO3_18 = EQEP0A_in
BONE_P9_27 (PIN_INPUT | MUX_MODE1) // GPIO3_19 = EQEP0B_in
BONE_P9_41B (PIN_INPUT | MUX_MODE1) // GPIO3_20 = EQEP0_index
BONE_P9_25 (PIN_INPUT | MUX_MODE1) // GPIO3_21 = EQEP0_strobe

I have found a thread here: https://groups.google.com/
forum/#!category-topic/beagleboard/audio/YNhtwbe_b4k that shows how to
disable mcasp0 but I am concerned that something is not configured right as
my understanding was that eqep0 should not conflict with other hardware and
especially a pin that should not overlap. Am I missing something obvious.
I thought I could just enable this driver out of the box.

The rest assuming your overlay is correct should just work.

thank you, this solved the problem.