Can I ask you to check what I understood about Device tree? and How to understand

Hi.
This post is for asking you to check my knowledge of device tree.

spi@3210000 {
– 3210000 is starting address of SPI1.

	compatible = "nvidia,tegra186-spi";				
	-- Name of device.

	reg = <0x0 0x3210000 0x0 0x10000>;			
	-- Define specific address of SPI1, first 2 cells means starting address of SPI1 with <Address base><length>
	-- Next 2 cells means length of SPI1 with <Address base><length>
	>> I'm not sure about 1st cell and 3rd cell, I think it is base address, is it right?

	interrupts = <0x0 0x24 0x4>;
	--  I can understand about 0x24, it means interrupt number of SPI1 module.
	>> But what is 1st cell and 3rd cell?

	#address-cells = <0x1>;
	#size-cells = <0x0>;
	-- This 2 values define address & size cell length of child node.
	-- This may the reason why 'reg' value of child node spidev@0 has only one value. one value is address.

	iommus = <0x2 0x20>;
	-- I can't find iommus, where can I find this kinds of preset values name and what it means?

	dma-coherent;
	dmas = <0x1e 0xf 0x1e 0xf>;
	-- I can't find information about cells.
	-- Maybe 2nd & 4th cell means SPI1 GPCDMA_COMMON_REQUESTORS value, but I'm not sure

	dma-names = "rx", "tx";
	spi-max-frequency = <0x3dfd240>;
	-- This value will set SPI module frequency as 65000000 Hz.(this is maximum speed of Xavier SPI)
	-- But where can I find <spi-max-frequency> exactly pointing?

	nvidia,clk-parents = "pll_p", "clk_m";
	-- I can imagine about this, it maybe select clock source of modules.
	-- But also where can I find the value <nvidia,clk-parents> really targetting?

	clocks = <0x4 0x87 0x4 0x66 0x4 0xe>;
	-- This cells are maybe coupled, 1st & 2nd, 3rd & 4th, 5th & 6th.
	--  But I can't understand. where clocks value targetting, and what cells means.

	clock-names = "spi", "pll_p", "clk_m";
	resets = <0x5 0x5b>;
	reset-names = "spi";
	status = "okay";
	linux,phandle = <0x172>;
	phandle = <0x172>;
	
	spidev@0 {
		compatible = "spidev";
		reg = <0x0>;
		spi-max-frequency = <0x1312d00>;
		-- And why there is another <spi-max-frequency>... it's already shown up there.
	};
	
};

So… this is summary of my Question.

  1. How can I know which names(such as clock, phandle) are possible for SPI node?
  2. How can I find which address the name points to.
  3. If value of cells are coupled, how can I understand?

I think this is not only problems of JETSON but also Linux.
But still, I believe there is documents or post about this.
(Like this link shown in below. it is for NXP, and they tell about meaning of device tree node cells.)
Please helps!

Thanks.

BTW, Thanks @kayccc.
I usally forgot to select tags.
I appreciate your correction.
Thanks.

Have a check the kernel document may help like …/Documentation/devicetree/bindings/interrupt-controller/interrupts.txt for interrupt.

…/kernel/kernel-4.9/Documentation/devicetree/bindings/***