Re: [PATCH 3/6] ARM: at91/dt: define sama5d3 clocks

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 08/08/2013 11:31, Boris BREZILLON :
Define sama5d3 clocks in sama5d3 device tree.
Add references to the appropriate clocks in each peripheral.

Signed-off-by: Boris BREZILLON <b.brezillon@xxxxxxxxxxx>

Do not forget to remove the macros and change file paths...

---
  arch/arm/boot/dts/sama5d3.dtsi      |  331 ++++++++++++++++++++++++++++++++++-
  arch/arm/boot/dts/sama5d3_can.dtsi  |   19 ++
  arch/arm/boot/dts/sama5d3_emac.dtsi |   12 ++
  arch/arm/boot/dts/sama5d3_gmac.dtsi |   12 ++
  arch/arm/boot/dts/sama5d3_lcd.dtsi  |   17 ++
  arch/arm/boot/dts/sama5d3_mci2.dtsi |   11 ++
  arch/arm/boot/dts/sama5d3_tcb1.dtsi |   12 ++
  arch/arm/boot/dts/sama5d3_uart.dtsi |   19 ++
  8 files changed, 431 insertions(+), 2 deletions(-)

diff --git a/arch/arm/boot/dts/sama5d3.dtsi b/arch/arm/boot/dts/sama5d3.dtsi
index f0ca1ba..e2791c5 100644
--- a/arch/arm/boot/dts/sama5d3.dtsi
+++ b/arch/arm/boot/dts/sama5d3.dtsi
@@ -14,6 +14,10 @@
  #include <dt-bindings/interrupt-controller/irq.h>
  #include <dt-bindings/gpio/gpio.h>
  #include <dt-bindings/at91/sama5d3/peripherals.h>
+#include <dt-bindings/clk/at91/common/clk-system.h>
+#include <dt-bindings/clk/at91/common/pmc.h>
+#include <dt-bindings/clk/at91/at91sam9x5/clk-peripheral.h>
+#include <dt-bindings/clk/at91/common/clk-pll.h>

  / {
  	model = "Atmel SAMA5D3 family SoC";
@@ -52,6 +56,14 @@
  		reg = <0x20000000 0x8000000>;
  	};

+	clocks {
+		adc_op_clk: adc_op_clk{
+			compatible = "fixed-clock";
+			#clock-cells = <0>;
+			clock-frequency = <20000000>;
+		};
+	};
+
  	ahb {
  		compatible = "simple-bus";
  		#address-cells = <1>;
@@ -75,6 +87,8 @@
  				status = "disabled";
  				#address-cells = <1>;
  				#size-cells = <0>;
+				clocks = <&periph SAMA5D3_ID_HSMCI0>;
+				clock-names = "mci_clk";
  			};

  			spi0: spi@f0004000 {
@@ -88,6 +102,8 @@
  				dma-names = "tx", "rx";
  				pinctrl-names = "default";
  				pinctrl-0 = <&pinctrl_spi0>;
+				clocks = <&periph SAMA5D3_ID_SPI0>;
+				clock-names = "spi_clk";
  				status = "disabled";
  			};

@@ -97,6 +113,8 @@
  				interrupts = <SAMA5D3_ID_SSC0 IRQ_TYPE_LEVEL_HIGH 4>;
  				pinctrl-names = "default";
  				pinctrl-0 = <&pinctrl_ssc0_tx &pinctrl_ssc0_rx>;
+				clocks = <&periph SAMA5D3_ID_SSC0>;
+				clock-names = "pclk";
  				status = "disabled";
  			};

@@ -104,6 +122,8 @@
  				compatible = "atmel,at91sam9x5-tcb";
  				reg = <0xf0010000 0x100>;
  				interrupts = <SAMA5D3_ID_TC0 IRQ_TYPE_LEVEL_HIGH 0>;
+				clocks = <&periph SAMA5D3_ID_TC0>;
+				clock-names = "t0_clk";
  			};

  			i2c0: i2c@f0014000 {
@@ -117,6 +137,7 @@
  				pinctrl-0 = <&pinctrl_i2c0>;
  				#address-cells = <1>;
  				#size-cells = <0>;
+				clocks = <&periph SAMA5D3_ID_TWI0>;
  				status = "disabled";
  			};

@@ -131,6 +152,7 @@
  				pinctrl-0 = <&pinctrl_i2c1>;
  				#address-cells = <1>;
  				#size-cells = <0>;
+				clocks = <&periph SAMA5D3_ID_TWI1>;
  				status = "disabled";
  			};

@@ -140,6 +162,8 @@
  				interrupts = <SAMA5D3_ID_USART0 IRQ_TYPE_LEVEL_HIGH 5>;
  				pinctrl-names = "default";
  				pinctrl-0 = <&pinctrl_usart0>;
+				clocks = <&periph SAMA5D3_ID_USART0>;
+				clock-names = "usart";
  				status = "disabled";
  			};

@@ -149,6 +173,8 @@
  				interrupts = <SAMA5D3_ID_USART1 IRQ_TYPE_LEVEL_HIGH 5>;
  				pinctrl-names = "default";
  				pinctrl-0 = <&pinctrl_usart1>;
+				clocks = <&periph SAMA5D3_ID_USART1>;
+				clock-names = "usart";
  				status = "disabled";
  			};

@@ -170,6 +196,8 @@
  				status = "disabled";
  				#address-cells = <1>;
  				#size-cells = <0>;
+				clocks = <&periph SAMA5D3_ID_HSMCI1>;
+				clock-names = "mci_clk";
  			};

  			spi1: spi@f8008000 {
@@ -183,6 +211,8 @@
  				dma-names = "tx", "rx";
  				pinctrl-names = "default";
  				pinctrl-0 = <&pinctrl_spi1>;
+				clocks = <&periph SAMA5D3_ID_SPI1>;
+				clock-names = "spi_clk";
  				status = "disabled";
  			};

@@ -192,6 +222,8 @@
  				interrupts = <SAMA5D3_ID_SSC1 IRQ_TYPE_LEVEL_HIGH 4>;
  				pinctrl-names = "default";
  				pinctrl-0 = <&pinctrl_ssc1_tx &pinctrl_ssc1_rx>;
+				clocks = <&periph SAMA5D3_ID_SSC1>;
+				clock-names = "pclk";
  				status = "disabled";
  			};

@@ -215,6 +247,9 @@
  					&pinctrl_adc0_ad10
  					&pinctrl_adc0_ad11
  					>;
+				clocks = <&periph SAMA5D3_ID_ADC>,
+					 <&adc_op_clk>;
+				clock-names = "adc_clk", "adc_op_clk";
  				atmel,adc-channel-base = <0x50>;
  				atmel,adc-channels-used = <0xfff>;
  				atmel,adc-drdy-mask = <0x1000000>;
@@ -270,6 +305,7 @@
  				dma-names = "tx", "rx";
  				#address-cells = <1>;
  				#size-cells = <0>;
+				clocks = <&periph SAMA5D3_ID_TWI2>;
  				status = "disabled";
  			};

@@ -279,6 +315,8 @@
  				interrupts = <SAMA5D3_ID_USART2 IRQ_TYPE_LEVEL_HIGH 5>;
  				pinctrl-names = "default";
  				pinctrl-0 = <&pinctrl_usart2>;
+				clocks = <&periph SAMA5D3_ID_USART2>;
+				clock-names = "usart";
  				status = "disabled";
  			};

@@ -288,6 +326,8 @@
  				interrupts = <SAMA5D3_ID_USART3 IRQ_TYPE_LEVEL_HIGH 5>;
  				pinctrl-names = "default";
  				pinctrl-0 = <&pinctrl_usart3>;
+				clocks = <&periph SAMA5D3_ID_USART3>;
+				clock-names = "usart";
  				status = "disabled";
  			};

@@ -300,7 +340,7 @@
  			aes@f8038000 {
  				compatible = "atmel,sam9g46-aes";
  				reg = <0xf8038000 0x100>;
-				interrupts = <SAMA5D3_ID_AES 4 0>;
+				interrupts = <SAMA5D3_ID_AES IRQ_TYPE_LEVEL_HIGH 0>;
  			};

  			tdes@f803c000 {
@@ -314,6 +354,8 @@
  				reg = <0xffffe600 0x200>;
  				interrupts = <SAMA5D3_ID_DMA0 IRQ_TYPE_LEVEL_HIGH 0>;
  				#dma-cells = <2>;
+				clocks = <&periph SAMA5D3_ID_DMA0>;
+				clock-names = "dma_clk";
  			};

  			dma1: dma-controller@ffffe800 {
@@ -321,6 +363,8 @@
  				reg = <0xffffe800 0x200>;
  				interrupts = <SAMA5D3_ID_DMA1 IRQ_TYPE_LEVEL_HIGH 0>;
  				#dma-cells = <2>;
+				clocks = <&periph SAMA5D3_ID_DMA1>;
+				clock-names = "dma_clk";
  			};

  			ramc0: ramc@ffffea00 {
@@ -334,6 +378,8 @@
  				interrupts = <SAMA5D3_ID_DBGU IRQ_TYPE_LEVEL_HIGH 7>;
  				pinctrl-names = "default";
  				pinctrl-0 = <&pinctrl_dbgu>;
+				clocks = <&periph 2>;
+				clock-names = "usart";
  				status = "disabled";
  			};

@@ -622,6 +668,7 @@
  					gpio-controller;
  					interrupt-controller;
  					#interrupt-cells = <2>;
+					clocks = <&periph 6>;
  				};

  				pioB: gpio@fffff400 {
@@ -632,6 +679,7 @@
  					gpio-controller;
  					interrupt-controller;
  					#interrupt-cells = <2>;
+					clocks = <&periph 7>;
  				};

  				pioC: gpio@fffff600 {
@@ -642,6 +690,7 @@
  					gpio-controller;
  					interrupt-controller;
  					#interrupt-cells = <2>;
+					clocks = <&periph 8>;
  				};

  				pioD: gpio@fffff800 {
@@ -652,6 +701,7 @@
  					gpio-controller;
  					interrupt-controller;
  					#interrupt-cells = <2>;
+					clocks = <&periph 9>;
  				};

  				pioE: gpio@fffffa00 {
@@ -662,12 +712,279 @@
  					gpio-controller;
  					interrupt-controller;
  					#interrupt-cells = <2>;
+					clocks = <&periph 10>;
  				};
  			};

  			pmc: pmc@fffffc00 {
-				compatible = "atmel,at91rm9200-pmc";
+				compatible = "atmel,sama5d3-pmc";
  				reg = <0xfffffc00 0x120>;
+				interrupts = <AT91_ID_SYS IRQ_TYPE_LEVEL_HIGH 7>;
+				interrupt-controller;
+				#interrupt-cells = <2>;
+
+				clk32k: slck {
+					compatible = "fixed-clock";
+					#clock-cells = <0>;
+					clock-frequency = <32768>;
+				};
+
+				main: mainck {
+					compatible = "atmel,at91rm9200-clk-main";
+					interrupt-parent = <&pmc>;
+					interrupts = <AT91_PMC_MOSCS IRQ_TYPE_LEVEL_HIGH>;
+					#clock-cells = <0>;
+					clocks = <&clk32k>;
+				};
+
+				plla: pllack {
+					compatible = "atmel,sama5d3-clk-pll";
+					interrupt-parent = <&pmc>;
+					interrupts = <AT91_PMC_LOCKA IRQ_TYPE_LEVEL_HIGH>;
+					#clock-cells = <0>;
+					clocks = <&main>;
+					atmel,clk-id = <AT91_PLLA_CLK>;
+					atmel,clk-input-range = <8000000 50000000>;
+					#atmel,pll-clk-output-range-cells = <4>;
+					atmel,pll-clk-output-ranges = <400000000 1000000000 0 0>;
+				};
+
+				plladiv: plladivck {
+					compatible = "atmel,at91sam9x5-clk-plldiv";
+					#clock-cells = <0>;
+					clocks = <&plla>;
+				};
+
+				utmi: utmick {
+					compatible = "atmel,at91sam9x5-clk-utmi";
+					interrupt-parent = <&pmc>;
+					interrupts = <AT91_PMC_LOCKU IRQ_TYPE_LEVEL_HIGH>;
+					#clock-cells = <0>;
+					clocks = <&main>;
+				};
+
+				mck: masterck {
+					compatible = "atmel,at91sam9x5-clk-master";
+					interrupt-parent = <&pmc>;
+					interrupts = <AT91_PMC_MCKRDY IRQ_TYPE_LEVEL_HIGH>;
+					#clock-cells = <0>;
+					clocks = <&clk32k>, <&main>, <&plladiv>, <&utmi>;
+					atmel,clk-output-range = <0 166000000>;
+					atmel,clk-divisors = <1 2 4 3>;
+				};
+
+				usb: usbck {
+					compatible = "atmel,at91sam9x5-clk-usb";
+					#clock-cells = <0>;
+					clocks = <&plladiv>, <&utmi>;
+				};
+
+				prog: progck {
+					compatible = "atmel,at91sam9x5-clk-programmable";
+					interrupt-parent = <&pmc>;
+					#clock-cells = <1>;
+					clocks = <&clk32k>, <&main>, <&plladiv>, <&utmi>, <&mck>;
+
+					prog0 {
+						atmel,clk-id = <0>;
+						interrupts = <AT91_PMC_PCKRDY(0) IRQ_TYPE_LEVEL_HIGH>;
+					};
+
+					prog1 {
+						atmel,clk-id = <1>;
+						interrupts = <AT91_PMC_PCKRDY(1) IRQ_TYPE_LEVEL_HIGH>;
+					};
+
+					prog2 {
+						atmel,clk-id = <2>;
+						interrupts = <AT91_PMC_PCKRDY(2) IRQ_TYPE_LEVEL_HIGH>;
+					};
+				};
+
+				smd: smdclk {
+					compatible = "atmel,at91sam9x5-clk-smd";
+					#clock-cells = <0>;
+					clocks = <&plladiv>, <&utmi>;
+				};
+
+				system: systemck {
+					compatible = "atmel,at91rm9200-clk-system";
+					#clock-cells = <1>;
+
+					ddrck {
+						atmel,clk-id = <AT91_DDRCK_SYS_CLK>;
+					};
+
+					smdck {
+						atmel,clk-id = <AT91_SMDCK_SYS_CLK>;
+					};
+
+					uhpck {
+						atmel,clk-id = <AT91_UHP_SYS_CLK>;
+					};
+
+					udpck {
+						atmel,clk-id = <AT91_UDP_SYS_CLK>;
+					};
+
+					pck0 {
+						atmel,clk-id = <AT91_PROG_SYS_CLK(0)>;
+					};
+
+					pck1 {
+						atmel,clk-id = <AT91_PROG_SYS_CLK(1)>;
+					};
+
+					pck2 {
+						atmel,clk-id = <AT91_PROG_SYS_CLK(2)>;
+					};
+				};
+
+				periph: periphck {
+					compatible = "atmel,at91sam9x5-clk-peripheral";
+					#clock-cells = <1>;
+					clocks = <&mck>;
+
+					dbgu_clk {
+						atmel,clk-id = <SAMA5D3_ID_DBGU>;
+					};
+
+					pioA_clk {
+						atmel,clk-id = <SAMA5D3_ID_PIOA>;
+					};
+
+					pioB_clk {
+						atmel,clk-id = <SAMA5D3_ID_PIOB>;
+					};
+
+					pioC_clk {
+						atmel,clk-id = <SAMA5D3_ID_PIOC>;
+					};
+
+					pioD_clk {
+						atmel,clk-id = <SAMA5D3_ID_PIOD>;
+					};
+
+					pioE_clk {
+						atmel,clk-id = <SAMA5D3_ID_PIOE>;
+					};
+
+					usart0_clk {
+						atmel,clk-id = <SAMA5D3_ID_USART0>;
+						atmel,clk-default-divisor = <AT91SAM9X5_PERIPH_CLK_DIV2>;
+					};
+
+					usart1_clk {
+						atmel,clk-id = <SAMA5D3_ID_USART1>;
+						atmel,clk-default-divisor = <AT91SAM9X5_PERIPH_CLK_DIV2>;
+					};
+
+					usart2_clk {
+						atmel,clk-id = <SAMA5D3_ID_USART2>;
+						atmel,clk-default-divisor = <AT91SAM9X5_PERIPH_CLK_DIV2>;
+					};
+
+					usart3_clk {
+						atmel,clk-id = <SAMA5D3_ID_USART3>;
+						atmel,clk-default-divisor = <AT91SAM9X5_PERIPH_CLK_DIV2>;
+					};
+
+					twi0_clk {
+						atmel,clk-id = <SAMA5D3_ID_TWI0>;
+						atmel,clk-default-divisor = <AT91SAM9X5_PERIPH_CLK_DIV2>;
+					};
+
+					twi1_clk {
+						atmel,clk-id = <SAMA5D3_ID_TWI1>;
+						atmel,clk-default-divisor = <AT91SAM9X5_PERIPH_CLK_DIV2>;
+					};
+
+					twi2_clk {
+						atmel,clk-id = <SAMA5D3_ID_TWI2>;
+						atmel,clk-default-divisor = <AT91SAM9X5_PERIPH_CLK_DIV2>;
+					};
+
+					mci0_clk {
+						atmel,clk-id = <SAMA5D3_ID_HSMCI0>;
+					};
+
+					mci1_clk {
+						atmel,clk-id = <SAMA5D3_ID_HSMCI1>;
+					};
+
+					spi0_clk {
+						atmel,clk-id = <SAMA5D3_ID_SPI0>;
+					};
+
+					spi1_clk {
+						atmel,clk-id = <SAMA5D3_ID_SPI1>;
+					};
+
+					tcb0_clk {
+						atmel,clk-id = <SAMA5D3_ID_TC0>;
+						atmel,clk-default-divisor = <AT91SAM9X5_PERIPH_CLK_DIV2>;
+					};
+
+					pwm_clk {
+						atmel,clk-id = <SAMA5D3_ID_PWM>;
+					};
+
+					adc_clk {
+						atmel,clk-id = <SAMA5D3_ID_ADC>;
+						atmel,clk-default-divisor = <AT91SAM9X5_PERIPH_CLK_DIV2>;
+					};
+
+					dma0_clk {
+						atmel,clk-id = <SAMA5D3_ID_DMA0>;
+					};
+
+					dma1_clk {
+						atmel,clk-id = <SAMA5D3_ID_DMA1>;
+					};
+
+					uhphs_clk {
+						atmel,clk-id = <SAMA5D3_ID_UHPHS>;
+					};
+
+					udphs_clk {
+						atmel,clk-id = <SAMA5D3_ID_UDPHS>;
+					};
+
+					isi_clk {
+						atmel,clk-id = <SAMA5D3_ID_ISI>;
+					};
+
+					ssc0_clk {
+						atmel,clk-id = <SAMA5D3_ID_SSC0>;
+						atmel,clk-default-divisor = <AT91SAM9X5_PERIPH_CLK_DIV2>;
+					};
+
+					ssc1_clk {
+						atmel,clk-id = <SAMA5D3_ID_SSC1>;
+						atmel,clk-default-divisor = <AT91SAM9X5_PERIPH_CLK_DIV2>;
+					};
+
+					sha_clk {
+						atmel,clk-id = <SAMA5D3_ID_SHA>;
+						atmel,clk-default-divisor = <AT91SAM9X5_PERIPH_CLK_DIV8>;
+					};
+
+					aes_clk {
+						atmel,clk-id = <SAMA5D3_ID_AES>;
+					};
+
+					tdes_clk {
+						atmel,clk-id = <SAMA5D3_ID_TDES>;
+					};
+
+					trng_clk {
+						atmel,clk-id = <SAMA5D3_ID_TRNG>;
+					};
+
+					fuse_clk {
+						atmel,clk-id = <SAMA5D3_ID_FUSE>;
+					};
+				};
  			};

  			rstc@fffffe00 {
@@ -679,6 +996,7 @@
  				compatible = "atmel,at91sam9260-pit";
  				reg = <0xfffffe30 0xf>;
  				interrupts = <AT91_ID_PIT IRQ_TYPE_LEVEL_HIGH 5>;
+				clocks = <&mck>;
  			};

  			watchdog@fffffe40 {
@@ -701,6 +1019,8 @@
  			reg = <0x00500000 0x100000
  			       0xf8030000 0x4000>;
  			interrupts = <SAMA5D3_ID_UDPHS IRQ_TYPE_LEVEL_HIGH 2>;
+			clocks = <&periph SAMA5D3_ID_UDPHS>, <&utmi>;
+			clock-names = "pclk", "hclk";
  			status = "disabled";

  			ep0 {
@@ -813,6 +1133,10 @@
  			compatible = "atmel,at91rm9200-ohci", "usb-ohci";
  			reg = <0x00600000 0x100000>;
  			interrupts = <SAMA5D3_ID_UHPHS IRQ_TYPE_LEVEL_HIGH 2>;
+			clocks = <&usb>, <&periph SAMA5D3_ID_UHPHS>,
+				 <&periph SAMA5D3_ID_UHPHS>,
+				 <&system AT91_UHP_SYS_CLK>;
+			clock-names = "usb_clk", "ohci_clk", "hclk", "uhpck";
  			status = "disabled";
  		};

@@ -820,6 +1144,9 @@
  			compatible = "atmel,at91sam9g45-ehci", "usb-ehci";
  			reg = <0x00700000 0x100000>;
  			interrupts = <SAMA5D3_ID_UHPHS IRQ_TYPE_LEVEL_HIGH 2>;
+			clocks = <&periph SAMA5D3_ID_UHPHS>,
+				 <&system AT91_UHP_SYS_CLK>;
+			clock-names = "ehci_clk", "uhpck";
  			status = "disabled";
  		};

diff --git a/arch/arm/boot/dts/sama5d3_can.dtsi b/arch/arm/boot/dts/sama5d3_can.dtsi
index 55b2d9f..0c3fa82 100644
--- a/arch/arm/boot/dts/sama5d3_can.dtsi
+++ b/arch/arm/boot/dts/sama5d3_can.dtsi
@@ -10,6 +10,7 @@
  #include <dt-bindings/pinctrl/at91.h>
  #include <dt-bindings/interrupt-controller/irq.h>
  #include <dt-bindings/at91/sama5d3/peripherals.h>
+#include <dt-bindings/clk/at91/at91sam9x5/clk-peripheral.h>

  / {
  	ahb {
@@ -33,12 +34,28 @@

  			};

+			pmc: pmc@fffffc00 {
+				periph: periphck {
+					can0_clk {
+						atmel,clk-id = <SAMA5D3_ID_CAN0>;
+						atmel,clk-default-divisor = <AT91SAM9X5_PERIPH_CLK_DIV2>;
+					};
+
+					can1_clk {
+						atmel,clk-id = <SAMA5D3_ID_CAN1>;
+						atmel,clk-default-divisor = <AT91SAM9X5_PERIPH_CLK_DIV2>;
+					};
+				};
+			};
+
  			can0: can@f000c000 {
  				compatible = "atmel,at91sam9x5-can";
  				reg = <0xf000c000 0x300>;
  				interrupts = <SAMA5D3_ID_CAN0 IRQ_TYPE_LEVEL_HIGH 3>;
  				pinctrl-names = "default";
  				pinctrl-0 = <&pinctrl_can0_rx_tx>;
+				clocks = <&periph SAMA5D3_ID_CAN0>;
+				clock-names = "can_clk";
  				status = "disabled";
  			};

@@ -48,6 +65,8 @@
  				interrupts = <SAMA5D3_ID_CAN1 IRQ_TYPE_LEVEL_HIGH 3>;
  				pinctrl-names = "default";
  				pinctrl-0 = <&pinctrl_can1_rx_tx>;
+				clocks = <&periph SAMA5D3_ID_CAN1>;
+				clock-names = "can_clk";
  				status = "disabled";
  			};
  		};
diff --git a/arch/arm/boot/dts/sama5d3_emac.dtsi b/arch/arm/boot/dts/sama5d3_emac.dtsi
index fb4628d..d4a9556 100644
--- a/arch/arm/boot/dts/sama5d3_emac.dtsi
+++ b/arch/arm/boot/dts/sama5d3_emac.dtsi
@@ -10,6 +10,7 @@
  #include <dt-bindings/pinctrl/at91.h>
  #include <dt-bindings/interrupt-controller/irq.h>
  #include <dt-bindings/at91/sama5d3/peripherals.h>
+#include <dt-bindings/clk/at91/at91sam9x5/clk-peripheral.h>

  / {
  	ahb {
@@ -32,12 +33,23 @@
  				};
  			};

+			pmc: pmc@fffffc00 {
+				periph: periphck {
+					macb1_clk {
+						atmel,clk-id = <SAMA5D3_ID_EMAC>;
+					};
+				};
+			};
+
  			macb1: ethernet@f802c000 {
  				compatible = "cdns,at32ap7000-macb", "cdns,macb";
  				reg = <0xf802c000 0x100>;
  				interrupts = <SAMA5D3_ID_EMAC IRQ_TYPE_LEVEL_HIGH 3>;
  				pinctrl-names = "default";
  				pinctrl-0 = <&pinctrl_macb1_rmii>;
+				clocks = <&periph SAMA5D3_ID_EMAC>,
+					 <&periph SAMA5D3_ID_EMAC>;
+				clock-names = "hclk", "pclk";
  				status = "disabled";
  			};
  		};
diff --git a/arch/arm/boot/dts/sama5d3_gmac.dtsi b/arch/arm/boot/dts/sama5d3_gmac.dtsi
index f92c721..8082021 100644
--- a/arch/arm/boot/dts/sama5d3_gmac.dtsi
+++ b/arch/arm/boot/dts/sama5d3_gmac.dtsi
@@ -10,6 +10,7 @@
  #include <dt-bindings/pinctrl/at91.h>
  #include <dt-bindings/interrupt-controller/irq.h>
  #include <dt-bindings/at91/sama5d3/peripherals.h>
+#include <dt-bindings/clk/at91/at91sam9x5/clk-peripheral.h>

  / {
  	ahb {
@@ -65,12 +66,23 @@
  				};
  			};

+			pmc: pmc@fffffc00 {
+				periph: periphck {
+					macb0_clk {
+						atmel,clk-id = <SAMA5D3_ID_GMAC>;
+					};
+				};
+			};
+
  			macb0: ethernet@f0028000 {
  				compatible = "cdns,pc302-gem", "cdns,gem";
  				reg = <0xf0028000 0x100>;
  				interrupts = <SAMA5D3_ID_GMAC IRQ_TYPE_LEVEL_HIGH 3>;
  				pinctrl-names = "default";
  				pinctrl-0 = <&pinctrl_macb0_data_rgmii &pinctrl_macb0_signal_rgmii>;
+				clocks = <&periph SAMA5D3_ID_GMAC>,
+					 <&periph SAMA5D3_ID_GMAC>;
+				clock-names = "hclk", "pclk";
  				status = "disabled";
  			};
  		};
diff --git a/arch/arm/boot/dts/sama5d3_lcd.dtsi b/arch/arm/boot/dts/sama5d3_lcd.dtsi
index 01f52a7..15ff059 100644
--- a/arch/arm/boot/dts/sama5d3_lcd.dtsi
+++ b/arch/arm/boot/dts/sama5d3_lcd.dtsi
@@ -9,6 +9,9 @@

  #include <dt-bindings/pinctrl/at91.h>
  #include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/at91/sama5d3/peripherals.h>
+#include <dt-bindings/clk/at91/common/clk-system.h>
+#include <dt-bindings/clk/at91/at91sam9x5/clk-peripheral.h>

  / {
  	ahb {
@@ -50,6 +53,20 @@
  					};
  				};
  			};
+
+			pmc: pmc@fffffc00 {
+				periph: periphck {
+					lcdc_clk {
+						atmel,clk-id = <SAMA5D3_ID_LCDC>;
+					};
+				};
+
+				system: systemck {
+					lcdck {
+						atmel,clk-id = <AT91_LCDCK_SYS_CLK>;
+					};
+				};
+			};
  		};
  	};
  };
diff --git a/arch/arm/boot/dts/sama5d3_mci2.dtsi b/arch/arm/boot/dts/sama5d3_mci2.dtsi
index 6471610..7cef03e 100644
--- a/arch/arm/boot/dts/sama5d3_mci2.dtsi
+++ b/arch/arm/boot/dts/sama5d3_mci2.dtsi
@@ -10,6 +10,7 @@
  #include <dt-bindings/pinctrl/at91.h>
  #include <dt-bindings/interrupt-controller/irq.h>
  #include <dt-bindings/at91/sama5d3/peripherals.h>
+#include <dt-bindings/clk/at91/at91sam9x5/clk-peripheral.h>

  / {
  	ahb {
@@ -31,6 +32,14 @@
  				};
  			};

+			pmc: pmc@fffffc00 {
+				periph: periphck {
+					mci2_clk {
+						atmel,clk-id = <SAMA5D3_ID_HSMCI2>;
+					};
+				};
+			};
+
  			mmc2: mmc@f8004000 {
  				compatible = "atmel,hsmci";
  				reg = <0xf8004000 0x600>;
@@ -39,6 +48,8 @@
  				dma-names = "rxtx";
  				pinctrl-names = "default";
  				pinctrl-0 = <&pinctrl_mmc2_clk_cmd_dat0 &pinctrl_mmc2_dat1_3>;
+				clocks = <&periph SAMA5D3_ID_HSMCI2>;
+				clock-names = "mci_clk";
  				status = "disabled";
  				#address-cells = <1>;
  				#size-cells = <0>;
diff --git a/arch/arm/boot/dts/sama5d3_tcb1.dtsi b/arch/arm/boot/dts/sama5d3_tcb1.dtsi
index bd26568..fb00a22 100644
--- a/arch/arm/boot/dts/sama5d3_tcb1.dtsi
+++ b/arch/arm/boot/dts/sama5d3_tcb1.dtsi
@@ -10,6 +10,7 @@
  #include <dt-bindings/pinctrl/at91.h>
  #include <dt-bindings/interrupt-controller/irq.h>
  #include <dt-bindings/at91/sama5d3/peripherals.h>
+#include <dt-bindings/clk/at91/at91sam9x5/clk-peripheral.h>

  / {
  	aliases {
@@ -18,10 +19,21 @@

  	ahb {
  		apb {
+			pmc: pmc@fffffc00 {
+				periph: periphck {
+					tcb1_clk {
+						atmel,clk-id = <SAMA5D3_ID_TC1>;
+						atmel,clk-default-divisor = <AT91SAM9X5_PERIPH_CLK_DIV2>;
+					};
+				};
+			};
+
  			tcb1: timer@f8014000 {
  				compatible = "atmel,at91sam9x5-tcb";
  				reg = <0xf8014000 0x100>;
  				interrupts = <SAMA5D3_ID_TC1 IRQ_TYPE_LEVEL_HIGH 0>;
+				clocks = <&periph SAMA5D3_ID_TC1>;
+				clock-names = "t0_clk";
  			};
  		};
  	};
diff --git a/arch/arm/boot/dts/sama5d3_uart.dtsi b/arch/arm/boot/dts/sama5d3_uart.dtsi
index 1d89110..675b04d 100644
--- a/arch/arm/boot/dts/sama5d3_uart.dtsi
+++ b/arch/arm/boot/dts/sama5d3_uart.dtsi
@@ -10,6 +10,7 @@
  #include <dt-bindings/pinctrl/at91.h>
  #include <dt-bindings/interrupt-controller/irq.h>
  #include <dt-bindings/at91/sama5d3/peripherals.h>
+#include <dt-bindings/clk/at91/at91sam9x5/clk-peripheral.h>

  / {
  	ahb {
@@ -32,12 +33,28 @@
  				};
  			};

+			pmc: pmc@fffffc00 {
+				periph: periphck {
+					uart0_clk {
+						atmel,clk-id = <SAMA5D3_ID_UART0>;
+						atmel,clk-default-divisor = <AT91SAM9X5_PERIPH_CLK_DIV2>;
+					};
+
+					uart1_clk {
+						atmel,clk-id = <SAMA5D3_ID_UART1>;
+						atmel,clk-default-divisor = <AT91SAM9X5_PERIPH_CLK_DIV2>;
+					};
+				};
+			};
+
  			uart0: serial@f0024000 {
  				compatible = "atmel,at91sam9260-usart";
  				reg = <0xf0024000 0x200>;
  				interrupts = <SAMA5D3_ID_UART0 IRQ_TYPE_LEVEL_HIGH 5>;
  				pinctrl-names = "default";
  				pinctrl-0 = <&pinctrl_uart0>;
+				clocks = <&periph SAMA5D3_ID_UART0>;
+				clock-names = "usart";
  				status = "disabled";
  			};

@@ -47,6 +64,8 @@
  				interrupts = <SAMA5D3_ID_UART1 IRQ_TYPE_LEVEL_HIGH 5>;
  				pinctrl-names = "default";
  				pinctrl-0 = <&pinctrl_uart1>;
+				clocks = <&periph SAMA5D3_ID_UART1>;
+				clock-names = "usart";
  				status = "disabled";
  			};
  		};


... otherwise, it looks good.

Acked-by: Nicolas Ferre <nicolas.ferre@xxxxxxxxx>

--
Nicolas Ferre
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]
  Powered by Linux