Understanding the Device Tree (SPI)


Can anyone point me in a direction of any documentation regarding how to interpret the device tree (ideally for the Nvidia Jetson TX1/TX2). I would like to be able to understand exactly what is being set and not relying on examples.

I understand the example below corresponds to setting up this particular SPI interface to a SPI Master. Taking the excerpt of the device tree source below, what do the following correspond to:

  1. reg - Is this some sort of hardware registry corresponding to spi@7000d400?
  2. interrupts - what do 0x0, 0x3b and 0x4 relate to?
  3. iommus - what do 0x0, 0x3b and 0x4 relate to?
  4. dmas - Direct Memory Access, I get it, but what do 0x5c, 0xf, 0x5c and 0xf relate to?
  5. nvidia,clk-parents - what is 'pll_p' and 'clk_m'
spi@7000d400 {
		compatible = "nvidia,tegra210-spi";
		reg = <0x0 0x7000d400 0x0 0x200>;
		interrupts = <0x0 0x3b 0x4>;
		nvidia,dma-request-selector = <0x5c 0xf>;
		iommus = <0x57 0xe>;
		#address-cells = <0x1>;
		#size-cells = <0x0>;
		dmas = <0x5c 0xf 0x5c 0xf>;
		dma-names = "rx", "tx";
		nvidia,clk-parents = "pll_p", "clk_m";
		status = "okay";

		prod-settings {
			prod {
				prod = <0x4 0xfffff000 0x0>;
			prod_c_flash {
				status = "disabled";
				prod = <0x4 0xffffffc0 0x7>;
			prod_c_loop {
				status = "disabled";
				prod = <0x4 0xfffff000 0x44b>;

As always, thank you very much for your help.


For the interrupt you can reference to below link.

The ‘pll_p’ and ‘clk_m’ is the clock source you can cat clock tree to know it

cat /sys/kerern/debug/clk/clk_summary

Thanks, Shane.

Sorry, I was looking through the Documentation folder without the kernel sources.

Anyone in a similar position, check out the Documentation folder

  • 'kernel/kernel-4.4/Documentation/devicetree/bindings'
  • 'kernel/kernel-4.4/Documentation/..'