Well, I can't speak for the official TI releases, but I can provide you 
with instructions for my Android build based off of the 3.8 kernel.

Configuring the pin muxing, as well as associating kernel drivers to 
particular muxed pins, are performed by device tree overlays in the 3.8 
kernel. This means that you can use the kernel command-line options for 
capemgr.enable_partno to load overlays that are part of the kernel proper. 
 For example, you can add the following kernel command line option to the 
uEnv.txt to enable SPI0:

capemgr.enable_partno=BB-SPI0

... or enable UART1:

capemgr.enable_partno=BB-UART1

... or enable I2C1:

capemgr.enable_partno=BB-I2C1

... or the alternate pinmux for I2C1:

capemgr.enable_partno=BB-I2C1A1

... and so on and so forth.  To enable multiple cape overlays, just 
separate them with a comma:

capemgr.enable_partno=BB-SPI0,BB-UART1

If you want to enable an overlay that conflicts with the HDMI, you'll have 
to disable either the audio portion of the HDMI cape (HDMIN) or the entire 
cape using capemgr.disable_partno:

capemgr.disable_partno=BB-BONELT-HDMI,BB-BONELT-HDMIN  (disable both)
capemgr.disable_partno=BB-BONELT-HDMIN  (disable audio)

If you have a custom overlay that is not one that you have built into your 
kernel (capes in the firmware/capes directory of your Linux kernel source 
tree), you'll have to install it in the /system/vendor/firmware directory 
in the root of your Android filesystem.  I believe that /system/vendor is 
there, but you'll have to create the "firmware" directory in it.  This is 
analogous to copying your custom overlay into /lib/firmware on a Linux 
system.  Just compile your overlay into a .dtbo file with dtc and then copy 
it into that directory.  Loading the overlay is done by echo'ing the name 
of the overlay into the slot manager (just like on Linux):

echo MY_CAPE_NAME > /sys/devices/bone_capemgr.8/slots

You can do this over the FTDI cable via the root shell, or you can add the 
command to the bottom of your init.rc to do it automatically upon system 
start.  The number for your capemgr might be different (bone_capemgr.9, for 
example).  On Linux I echo into cone_capemgr.*, but I believe that is a 
bash-specific thing and you'll have to list the explicit file when you do 
it via the Android system shell.  

I've had students that I've worked with turn on several UARTs for 
communications, turn on SPI, etc. for their projects.  Of course, unless 
you have a HAL set up to provide access to the device drivers exposed via 
the /dev filesystem, you'll need to use native code to talk to the exposed 
devices in /dev and then act as the interface to your Java apps via JNI.

Andrew


On Monday, November 18, 2013 11:28:02 AM UTC-5, [email protected] wrote:
>
> How can I enable the UART / SPI / I2C on the Beagle Bone Black for 
> Android...please help me 
>

-- 
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].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to