From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S964777Ab3HHIro (ORCPT ); Thu, 8 Aug 2013 04:47:44 -0400 Received: from 10.mo4.mail-out.ovh.net ([188.165.33.109]:34769 "EHLO mo4.mail-out.ovh.net" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S933813Ab3HHIrk (ORCPT ); Thu, 8 Aug 2013 04:47:40 -0400 From: Boris BREZILLON To: Russell King , Andrew Victor , Nicolas Ferre , Jean-Christophe Plagniol-Villard , Ludovic Desroches , Lorenzo Pieralisi Cc: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Boris BREZILLON X-Ovh-Mailout: 178.32.228.4 (mo4.mail-out.ovh.net) Subject: [PATCH 3/6] ARM: at91/dt: define sama5d3 clocks Date: Thu, 8 Aug 2013 10:47:24 +0200 Message-Id: <1375951644-10941-1-git-send-email-b.brezillon@overkiz.com> X-Mailer: git-send-email 1.7.9.5 X-Ovh-Tracer-Id: 6625920952700532915 X-Ovh-Remote: 78.236.240.82 (cha74-5-78-236-240-82.fbx.proxad.net) X-Ovh-Local: 213.186.33.20 (ns0.ovh.net) X-OVH-SPAMSTATE: OK X-OVH-SPAMSCORE: -100 X-OVH-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrfeeikedrtdehucetufdoteggodetrfcurfhrohhfihhlvgemucfqggfjnecuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd X-Spam-Check: DONE|U 0.5/N X-VR-SPAMSTATE: OK X-VR-SPAMSCORE: -100 X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrfeeikedrtdehucetufdoteggodetrfcurfhrohhfihhlvgemucfqggfjnecuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Define sama5d3 clocks in sama5d3 device tree. Add references to the appropriate clocks in each peripheral. Signed-off-by: Boris BREZILLON --- 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 #include #include +#include +#include +#include +#include / { 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 = ; 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 = ; + 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 = ; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_usart0>; + clocks = <&periph SAMA5D3_ID_USART0>; + clock-names = "usart"; status = "disabled"; }; @@ -149,6 +173,8 @@ interrupts = ; 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 = ; 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 = ; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_usart2>; + clocks = <&periph SAMA5D3_ID_USART2>; + clock-names = "usart"; status = "disabled"; }; @@ -288,6 +326,8 @@ interrupts = ; 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 = ; + interrupts = ; }; tdes@f803c000 { @@ -314,6 +354,8 @@ reg = <0xffffe600 0x200>; interrupts = ; #dma-cells = <2>; + clocks = <&periph SAMA5D3_ID_DMA0>; + clock-names = "dma_clk"; }; dma1: dma-controller@ffffe800 { @@ -321,6 +363,8 @@ reg = <0xffffe800 0x200>; interrupts = ; #dma-cells = <2>; + clocks = <&periph SAMA5D3_ID_DMA1>; + clock-names = "dma_clk"; }; ramc0: ramc@ffffea00 { @@ -334,6 +378,8 @@ interrupts = ; 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 = ; + 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 = ; + #clock-cells = <0>; + clocks = <&clk32k>; + }; + + plla: pllack { + compatible = "atmel,sama5d3-clk-pll"; + interrupt-parent = <&pmc>; + interrupts = ; + #clock-cells = <0>; + clocks = <&main>; + atmel,clk-id = ; + 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 = ; + #clock-cells = <0>; + clocks = <&main>; + }; + + mck: masterck { + compatible = "atmel,at91sam9x5-clk-master"; + interrupt-parent = <&pmc>; + interrupts = ; + #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 = ; + }; + + prog1 { + atmel,clk-id = <1>; + interrupts = ; + }; + + prog2 { + atmel,clk-id = <2>; + interrupts = ; + }; + }; + + 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 = ; + }; + + smdck { + atmel,clk-id = ; + }; + + uhpck { + atmel,clk-id = ; + }; + + udpck { + atmel,clk-id = ; + }; + + pck0 { + atmel,clk-id = ; + }; + + pck1 { + atmel,clk-id = ; + }; + + pck2 { + atmel,clk-id = ; + }; + }; + + periph: periphck { + compatible = "atmel,at91sam9x5-clk-peripheral"; + #clock-cells = <1>; + clocks = <&mck>; + + dbgu_clk { + atmel,clk-id = ; + }; + + pioA_clk { + atmel,clk-id = ; + }; + + pioB_clk { + atmel,clk-id = ; + }; + + pioC_clk { + atmel,clk-id = ; + }; + + pioD_clk { + atmel,clk-id = ; + }; + + pioE_clk { + atmel,clk-id = ; + }; + + usart0_clk { + atmel,clk-id = ; + atmel,clk-default-divisor = ; + }; + + usart1_clk { + atmel,clk-id = ; + atmel,clk-default-divisor = ; + }; + + usart2_clk { + atmel,clk-id = ; + atmel,clk-default-divisor = ; + }; + + usart3_clk { + atmel,clk-id = ; + atmel,clk-default-divisor = ; + }; + + twi0_clk { + atmel,clk-id = ; + atmel,clk-default-divisor = ; + }; + + twi1_clk { + atmel,clk-id = ; + atmel,clk-default-divisor = ; + }; + + twi2_clk { + atmel,clk-id = ; + atmel,clk-default-divisor = ; + }; + + mci0_clk { + atmel,clk-id = ; + }; + + mci1_clk { + atmel,clk-id = ; + }; + + spi0_clk { + atmel,clk-id = ; + }; + + spi1_clk { + atmel,clk-id = ; + }; + + tcb0_clk { + atmel,clk-id = ; + atmel,clk-default-divisor = ; + }; + + pwm_clk { + atmel,clk-id = ; + }; + + adc_clk { + atmel,clk-id = ; + atmel,clk-default-divisor = ; + }; + + dma0_clk { + atmel,clk-id = ; + }; + + dma1_clk { + atmel,clk-id = ; + }; + + uhphs_clk { + atmel,clk-id = ; + }; + + udphs_clk { + atmel,clk-id = ; + }; + + isi_clk { + atmel,clk-id = ; + }; + + ssc0_clk { + atmel,clk-id = ; + atmel,clk-default-divisor = ; + }; + + ssc1_clk { + atmel,clk-id = ; + atmel,clk-default-divisor = ; + }; + + sha_clk { + atmel,clk-id = ; + atmel,clk-default-divisor = ; + }; + + aes_clk { + atmel,clk-id = ; + }; + + tdes_clk { + atmel,clk-id = ; + }; + + trng_clk { + atmel,clk-id = ; + }; + + fuse_clk { + atmel,clk-id = ; + }; + }; }; rstc@fffffe00 { @@ -679,6 +996,7 @@ compatible = "atmel,at91sam9260-pit"; reg = <0xfffffe30 0xf>; interrupts = ; + clocks = <&mck>; }; watchdog@fffffe40 { @@ -701,6 +1019,8 @@ reg = <0x00500000 0x100000 0xf8030000 0x4000>; interrupts = ; + 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 = ; + 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 = ; + 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 #include #include +#include / { ahb { @@ -33,12 +34,28 @@ }; + pmc: pmc@fffffc00 { + periph: periphck { + can0_clk { + atmel,clk-id = ; + atmel,clk-default-divisor = ; + }; + + can1_clk { + atmel,clk-id = ; + atmel,clk-default-divisor = ; + }; + }; + }; + can0: can@f000c000 { compatible = "atmel,at91sam9x5-can"; reg = <0xf000c000 0x300>; interrupts = ; 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 = ; 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 #include #include +#include / { ahb { @@ -32,12 +33,23 @@ }; }; + pmc: pmc@fffffc00 { + periph: periphck { + macb1_clk { + atmel,clk-id = ; + }; + }; + }; + macb1: ethernet@f802c000 { compatible = "cdns,at32ap7000-macb", "cdns,macb"; reg = <0xf802c000 0x100>; interrupts = ; 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 #include #include +#include / { ahb { @@ -65,12 +66,23 @@ }; }; + pmc: pmc@fffffc00 { + periph: periphck { + macb0_clk { + atmel,clk-id = ; + }; + }; + }; + macb0: ethernet@f0028000 { compatible = "cdns,pc302-gem", "cdns,gem"; reg = <0xf0028000 0x100>; interrupts = ; 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 #include +#include +#include +#include / { ahb { @@ -50,6 +53,20 @@ }; }; }; + + pmc: pmc@fffffc00 { + periph: periphck { + lcdc_clk { + atmel,clk-id = ; + }; + }; + + system: systemck { + lcdck { + atmel,clk-id = ; + }; + }; + }; }; }; }; 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 #include #include +#include / { ahb { @@ -31,6 +32,14 @@ }; }; + pmc: pmc@fffffc00 { + periph: periphck { + mci2_clk { + atmel,clk-id = ; + }; + }; + }; + 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 #include #include +#include / { aliases { @@ -18,10 +19,21 @@ ahb { apb { + pmc: pmc@fffffc00 { + periph: periphck { + tcb1_clk { + atmel,clk-id = ; + atmel,clk-default-divisor = ; + }; + }; + }; + tcb1: timer@f8014000 { compatible = "atmel,at91sam9x5-tcb"; reg = <0xf8014000 0x100>; interrupts = ; + 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 #include #include +#include / { ahb { @@ -32,12 +33,28 @@ }; }; + pmc: pmc@fffffc00 { + periph: periphck { + uart0_clk { + atmel,clk-id = ; + atmel,clk-default-divisor = ; + }; + + uart1_clk { + atmel,clk-id = ; + atmel,clk-default-divisor = ; + }; + }; + }; + uart0: serial@f0024000 { compatible = "atmel,at91sam9260-usart"; reg = <0xf0024000 0x200>; interrupts = ; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_uart0>; + clocks = <&periph SAMA5D3_ID_UART0>; + clock-names = "usart"; status = "disabled"; }; @@ -47,6 +64,8 @@ interrupts = ; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_uart1>; + clocks = <&periph SAMA5D3_ID_UART1>; + clock-names = "usart"; status = "disabled"; }; }; -- 1.7.9.5