This repository has been archived by the owner on Sep 29, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 32
Device Tree
notro edited this page Jan 7, 2014
·
11 revisions
Device Tree on the Raspberry Pi.
Some notes about changing Device Tree properties.
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/
dtc -v
Version: DTC 1.4.0
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
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
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
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
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
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
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
/chosen/bootargs is filled in by the firmware with the contents from /boot/cmdline.txt
ls -l /proc/device-tree/
total 0
-r--r--r-- 1 root root 4 Nov 4 15:21 #address-cells
dr-xr-xr-x 2 root root 0 Nov 4 15:21 aliases
dr-xr-xr-x 23 root root 0 Nov 4 15:21 axi
dr-xr-xr-x 2 root root 0 Nov 4 15:21 chosen
dr-xr-xr-x 5 root root 0 Nov 4 15:21 clocks
-r--r--r-- 1 root root 13 Nov 4 15:21 compatible
dr-xr-xr-x 2 root root 0 Nov 4 15:21 display
dr-xr-xr-x 3 root root 0 Nov 4 15:21 gpio_keys
dr-xr-xr-x 3 root root 0 Nov 4 15:21 gpio_keys_polled
-r--r--r-- 1 root root 4 Nov 4 15:21 interrupt-parent
dr-xr-xr-x 3 root root 0 Nov 4 15:21 leds
dr-xr-xr-x 2 root root 0 Nov 4 15:21 memory
-r--r--r-- 1 root root 21 Nov 4 15:21 model
-r--r--r-- 1 root root 1 Nov 4 15:21 name
dr-xr-xr-x 2 root root 0 Nov 4 15:21 onewire
-r--r--r-- 1 root root 4 Nov 4 15:21 #size-cells
dr-xr-xr-x 2 root root 0 Nov 4 15:21 system
https://www.kernel.org/doc/Documentation/dynamic-debug-howto.txt
sudo mount -t debugfs none /sys/kernel/debug/
sudo chmod 777 /sys/kernel/debug/
grep pinctrl /sys/kernel/debug/dynamic_debug/control
...
Adding this to /boot/cmdline.txt, gives some Device Tree related debug output:
debug dyndbg="module pinctrl_bcm2708 +p; file drivers/gpio/gpiolib.c +p; file drivers/of/platform.c +p; file kernel/irq/irqdomain.c +p; file kernel/irq/manage.c +p; file kernel/resource.c +p;"
- http://www.devicetree.org/Device_Tree_Usage
- http://elinux.org/Device_Tree
- http://omappedia.org/wiki/Device_Tree
- Specification: https://www.power.org/wp-content/uploads/2012/06/Power_ePAPR_APPROVED_v1.1.pdf
Abbreviations
- DT - Device Tree
- FDT - Flattended Device Tree: a DT representation used in the dtb blob.
- .dtb - Device Tree Binary
- .dts - Device Tree Source
- .dtsi - Device Tree Source Include
- dtc - Device Tree Compiler