How to disable mcasp0

I want to connect a high-speed (20 MBytes/sec) bus to the PRU, so I’m going to do an 8-bit SPI-type interface on the PRU. The goal was to use the PRU pins on header P9 (pins 24 through 42) and write some simple PRU assembly to wait on the ‘clock’ bit, read the register, write to RAM, signal we’ve read something to PR1/the ARM, and repeat.

PR0 is going to be completely dedicated to this, and if I can get it down to a few instructions per loop, it ought to cope. What I need, though, is a way to disable the mcasp driver (I won’t be using audio). It doesn’t seem to be loaded as a separate overlay in /lib/firmware, and it doesn’t appear in /sys/devices/bone_capemgr.8/slots

I’m pretty new to this, so I’m not comfortable editing out parts of /boot/am335x-boneblack.dts that refer to mcasp unless someone tells me it’s going to be ok :slight_smile: I’m not sure I want to reboot-to-get-the-results and then have a brick…

Any advice ?


Well, following up on my own post in case anyone finds this useful…

I just tried deleting all references to mcasp{0,1} in /boot/am335x-boneblack.dts and on reboot, the pins that I wanted free are indeed free. This gives me


name pin mode 6 mode 5

P8_11 13 out:0:r30:15

P8_12 12 out:0:r30:14

P8_15 15 in:0:r31:15

P8_16 14 in:0:r31:14


P9_24 97 in:0:r31:16

P9_26 96 in:1:r31:16

P9_27 105 in:0:r31:5 out:0:r30:5

P9_30 102 in:0:r31:2 out:0:r30:2

P9_41 106 in:0:r31:6 out:0:r30:6

P9_25 107 in:0:r31:7 out:0:r30:7

P9_28 103 in:0:r31:3 out:0:r30:3

P9_29 101 in:0:r31:1 out:0:r30:1

P9_31 100 in:0:r31:0 out:0:r30:0

P9_42 104 in:0:r31:4 out:0:r30:4

giving the following pin configuration:

in: PRU0: 0,1,2,3,4,5,6,7,14,15,16

PRU1: 16

out: PRU0: 14,15

… with the latter set of P9 pins being the ones released by not using mcasp. I can therefore set up two synchronous-data channels, one dedicated output (2-pin, clock and data) and one dedicated input (9-pin, clock and byte-wide data). If I can clock the input pins at ~20MHz, I have my 20 MBytes/sec. I even have a couple of input pins left over spare :slight_smile:

My data needs are highly asymmetric (massive input, small output) so this suits me, and it stops me from needing to switch over the input/output configuration to get bi-directionality.

Hope this helps someone. I’m sure there’s a better way to disable the mcasp device, but I couldn’t find it…



I just want to make sure I’m reading this right. Did you just delete the two mcasp sections in the .dtb file entirely? These two?