Skip to content
This repository has been archived by the owner on Sep 29, 2024. It is now read-only.

Device Tree

notro edited this page Nov 3, 2013 · 11 revisions

Device Tree on the Raspberry Pi.

Some notes about changing Device Tree properties.

Tools

Install from source

sudo apt-get install flex bison
git clone http://git.jdl.com/software/dtc.git
cd dtc
make

# make install, puts the files in ~/, instead we do:
sudo cp -v libfdt/libfdt*.so /usr/lib/
sudo cp -v dtc fdtdump fdtget fdtput /usr/bin/

Note: The debian pakage is too old:

sudo apt-get install device-tree-compiler
Setting up device-tree-compiler (1.3.0-4) ...

sudo fdtput -t s /boot/bcm2708-rpi-b.dtb /display status "disabled"
Error at 'status': FDT_ERR_NOSPACE

'status' property

The status property determines whether the device is enabled or not.
Absent property, "okay" or "ok" value, means the device is enabled. Any other value means disabled.
Ref: http://lxr.free-electrons.com/ident?v=3.10;a=arm;i=__of_device_is_available

Enable SPI

ls /dev/spidev*
ls: cannot access /dev/spidev*: No such file or directory

fdtget /boot/bcm2708-rpi-b.dtb /axi/spi-bcm2708 -l
spidev@0
spidev@1
tsc2046@1

fdtget /boot/bcm2708-rpi-b.dtb /axi/spi-bcm2708 status
disabled

sudo fdtput --type s /boot/bcm2708-rpi-b.dtb /axi/spi-bcm2708 status "okay"

sudo shutdown -r now

ls /dev/spidev*
/dev/spidev0.0  /dev/spidev0.1

Enable i2c

ls /dev/i2c*
ls: cannot access /dev/i2c*: No such file or directory

fdtget /boot/bcm2708-rpi-b.dtb i2c1 status
disabled

sudo fdtput --type s /boot/bcm2708-rpi-b.dtb i2c1 status "okay"

sudo shutdown -r now

ls /dev/i2c*
/dev/i2c-1

Enable onewire

ls -l /sys/bus/w1/devices/
total 0

fdtget /boot/bcm2708-rpi-b.dtb /onewire status
disabled

sudo fdtput --type s /boot/bcm2708-rpi-b.dtb /onewire status "okay"

sudo shutdown -r now

ls -l /sys/bus/w1/devices/
w1_bus_master1

ADS7846 Touch

fdtget /boot/bcm2708-rpi-b.dtb /axi/spi-bcm2708/spidev@1 status
okay
sudo fdtput --type s /boot/bcm2708-rpi-b.dtb /axi/spi-bcm2708/spidev@1 status "disabled"
sudo fdtput --type s /boot/bcm2708-rpi-b.dtb /axi/spi-bcm2708/tsc2046@1 status "okay"

sudo shutdown -r now

ls /dev/spidev*
/dev/spidev0.0

dmesg | grep ADS7846
[    3.507510] input: ADS7846 Touchscreen as /devices/axi.0/20204000.spi-bcm2708/spi_master/spi0/spi0.1/input/input0

bootargs

cat /proc/cmdline
debug dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

fdtget /boot/bcm2708-rpi-b.dtb /chosen bootargs
debug dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

sudo fdtput --type s /boot/bcm2708-rpi-b.dtb /chosen bootargs "dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait"

sudo shutdown -r now

cat /proc/cmdline
dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

Disable display

ls /dev/fb*
/dev/fb0

sudo fdtput -t s /boot/bcm2708-rpi-b.dtb /display status "disabled"

fdtget /boot/bcm2708-rpi-b.dtb /display status
disabled

sudo shutdown -r now

ls /dev/fb*
ls: cannot access /dev/fb*: No such file or directory
Clone this wiki locally