Commit 85a82c55 authored by Olof Johansson's avatar Olof Johansson

Merge tag 'at91-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/nferre/linux-at91 into next/dt

First batch of DT changes for 4.3:
- some fixes on sama5d4 ADC definition
- adding Image Sensor Interface (aka ISI) on at91sam9m10g45ek board
- update rst controller compatible string on sama5 machines
- new sama5d2 DT definition and its reference board:
  the sama5d2 Xplained. Minimal configuration for now.

* tag 'at91-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/nferre/linux-at91:
  ARM: at91/dt: add minimal sama5d2 Xplained board
  ARM: at91/dt: add basic dtsi for sama5d2 SoC
  ARM: at91/dt: sama5: update rstc to correct compatible string
  ARM: at91/dt: add isi & ov2640 dt nodes for at91sam9m10g45ek board
  ARM: at91/dt: sama5d4: move ADC pinctrl to board device trees
  ARM: at91/dt: sama5d4: fix external trigger property
Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
parents 46a51abb 22b5a0f7
...@@ -41,6 +41,7 @@ dtb-$(CONFIG_SOC_SAM_V4_V5) += \ ...@@ -41,6 +41,7 @@ dtb-$(CONFIG_SOC_SAM_V4_V5) += \
at91sam9x35ek.dtb at91sam9x35ek.dtb
dtb-$(CONFIG_SOC_SAM_V7) += \ dtb-$(CONFIG_SOC_SAM_V7) += \
at91-kizbox2.dtb \ at91-kizbox2.dtb \
at91-sama5d2_xplained.dtb \
at91-sama5d3_xplained.dtb \ at91-sama5d3_xplained.dtb \
sama5d31ek.dtb \ sama5d31ek.dtb \
sama5d33ek.dtb \ sama5d33ek.dtb \
......
/*
* at91-sama5d2_xplained.dts - Device Tree file for SAMA5D2 Xplained board
*
* Copyright (C) 2015 Atmel,
* 2015 Nicolas Ferre <nicolas.ferre@atmel.com>
*
* This file is dual-licensed: you can use it either under the terms
* of the GPL or the X11 license, at your option. Note that this dual
* licensing only applies to this file, and not this project as a
* whole.
*
* a) This file is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This file is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* Or, alternatively,
*
* b) Permission is hereby granted, free of charge, to any person
* obtaining a copy of this software and associated documentation
* files (the "Software"), to deal in the Software without
* restriction, including without limitation the rights to use,
* copy, modify, merge, publish, distribute, sublicense, and/or
* sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following
* conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
* OTHER DEALINGS IN THE SOFTWARE.
*/
/dts-v1/;
#include "sama5d2.dtsi"
/ {
model = "Atmel SAMA5D2 Xplained";
compatible = "atmel,sama5d2-xplained", "atmel,sama5d2", "atmel,sama5";
chosen {
stdout-path = "serial0:115200n8";
};
memory {
reg = <0x20000000 0x80000>;
};
clocks {
#address-cells = <1>;
#size-cells = <1>;
ranges;
main_clock: clock@0 {
compatible = "atmel,osc", "fixed-clock";
clock-frequency = <12000000>;
};
slow_xtal {
clock-frequency = <32768>;
};
main_xtal {
clock-frequency = <12000000>;
};
};
ahb {
usb0: gadget@00300000 {
status = "okay";
};
usb1: ohci@00400000 {
num-ports = <3>;
status = "okay";
};
usb2: ehci@00500000 {
status = "okay";
};
apb {
spi0: spi@f8000000 {
status = "okay";
m25p80@0 {
compatible = "atmel,at25df321a";
reg = <0>;
spi-max-frequency = <50000000>;
};
};
macb0: ethernet@f8008000 {
phy-mode = "rmii";
status = "okay";
};
uart1: serial@f8020000 {
status = "okay";
};
i2c0: i2c@f8028000 {
dmas = <0>, <0>;
status = "okay";
};
uart3: serial@fc008000 {
status = "okay";
};
i2c1: i2c@fc028000 {
dmas = <0>, <0>;
status = "okay";
at24@54 {
compatible = "atmel,24c02";
reg = <0x54>;
pagesize = <16>;
};
};
};
};
};
...@@ -131,6 +131,15 @@ spi1: spi@fc018000 { ...@@ -131,6 +131,15 @@ spi1: spi@fc018000 {
}; };
adc0: adc@fc034000 { adc0: adc@fc034000 {
pinctrl-names = "default";
pinctrl-0 = <
/* external trigger conflicts with USBA_VBUS */
&pinctrl_adc0_ad0
&pinctrl_adc0_ad1
&pinctrl_adc0_ad2
&pinctrl_adc0_ad3
&pinctrl_adc0_ad4
>;
atmel,adc-vref = <3300>; atmel,adc-vref = <3300>;
status = "okay"; status = "okay";
}; };
......
...@@ -100,6 +100,15 @@ lcdheo1@f0000340 { ...@@ -100,6 +100,15 @@ lcdheo1@f0000340 {
}; };
adc0: adc@fc034000 { adc0: adc@fc034000 {
pinctrl-names = "default";
pinctrl-0 = <
/* external trigger conflicts with USBA_VBUS */
&pinctrl_adc0_ad0
&pinctrl_adc0_ad1
&pinctrl_adc0_ad2
&pinctrl_adc0_ad3
&pinctrl_adc0_ad4
>;
/* The vref depends on JP22 of EK. If connect 1-2 then use 3.3V. connect 2-3 use 3.0V */ /* The vref depends on JP22 of EK. If connect 1-2 then use 3.3V. connect 2-3 use 3.0V */
atmel,adc-vref = <3300>; atmel,adc-vref = <3300>;
/*atmel,adc-ts-wires = <4>;*/ /* Set up ADC touch screen */ /*atmel,adc-ts-wires = <4>;*/ /* Set up ADC touch screen */
......
...@@ -498,23 +498,31 @@ pinctrl_i2c1: i2c1-0 { ...@@ -498,23 +498,31 @@ pinctrl_i2c1: i2c1-0 {
}; };
isi { isi {
pinctrl_isi: isi-0 { pinctrl_isi_data_0_7: isi-0-data-0-7 {
atmel,pins = <AT91_PIOB 8 AT91_PERIPH_B AT91_PINCTRL_NONE /* D8 */ atmel,pins =
AT91_PIOB 9 AT91_PERIPH_B AT91_PINCTRL_NONE /* D9 */ <AT91_PIOB 20 AT91_PERIPH_A AT91_PINCTRL_NONE /* D0 */
AT91_PIOB 10 AT91_PERIPH_B AT91_PINCTRL_NONE /* D10 */ AT91_PIOB 21 AT91_PERIPH_A AT91_PINCTRL_NONE /* D1 */
AT91_PIOB 11 AT91_PERIPH_B AT91_PINCTRL_NONE /* D11 */ AT91_PIOB 22 AT91_PERIPH_A AT91_PINCTRL_NONE /* D2 */
AT91_PIOB 20 AT91_PERIPH_A AT91_PINCTRL_NONE /* D0 */ AT91_PIOB 23 AT91_PERIPH_A AT91_PINCTRL_NONE /* D3 */
AT91_PIOB 21 AT91_PERIPH_A AT91_PINCTRL_NONE /* D1 */ AT91_PIOB 24 AT91_PERIPH_A AT91_PINCTRL_NONE /* D4 */
AT91_PIOB 22 AT91_PERIPH_A AT91_PINCTRL_NONE /* D2 */ AT91_PIOB 25 AT91_PERIPH_A AT91_PINCTRL_NONE /* D5 */
AT91_PIOB 23 AT91_PERIPH_A AT91_PINCTRL_NONE /* D3 */ AT91_PIOB 26 AT91_PERIPH_A AT91_PINCTRL_NONE /* D6 */
AT91_PIOB 24 AT91_PERIPH_A AT91_PINCTRL_NONE /* D4 */ AT91_PIOB 27 AT91_PERIPH_A AT91_PINCTRL_NONE /* D7 */
AT91_PIOB 25 AT91_PERIPH_A AT91_PINCTRL_NONE /* D5 */ AT91_PIOB 28 AT91_PERIPH_A AT91_PINCTRL_NONE /* PCK */
AT91_PIOB 26 AT91_PERIPH_A AT91_PINCTRL_NONE /* D6 */ AT91_PIOB 29 AT91_PERIPH_A AT91_PINCTRL_NONE /* VSYNC */
AT91_PIOB 27 AT91_PERIPH_A AT91_PINCTRL_NONE /* D7 */ AT91_PIOB 30 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* HSYNC */
AT91_PIOB 28 AT91_PERIPH_A AT91_PINCTRL_NONE /* PCK */ };
AT91_PIOB 29 AT91_PERIPH_A AT91_PINCTRL_NONE /* VSYNC */
AT91_PIOB 30 AT91_PERIPH_A AT91_PINCTRL_NONE /* HSYNC */ pinctrl_isi_data_8_9: isi-0-data-8-9 {
AT91_PIOB 31 AT91_PERIPH_A AT91_PINCTRL_NONE /* MCK */>; atmel,pins =
<AT91_PIOB 8 AT91_PERIPH_B AT91_PINCTRL_NONE /* D8 */
AT91_PIOB 9 AT91_PERIPH_B AT91_PINCTRL_NONE>; /* D9 */
};
pinctrl_isi_data_10_11: isi-0-data-10-11 {
atmel,pins =
<AT91_PIOB 10 AT91_PERIPH_B AT91_PINCTRL_NONE /* D10 */
AT91_PIOB 11 AT91_PERIPH_B AT91_PINCTRL_NONE>; /* D11 */
}; };
}; };
...@@ -1067,9 +1075,11 @@ isi@fffb4000 { ...@@ -1067,9 +1075,11 @@ isi@fffb4000 {
interrupts = <26 IRQ_TYPE_LEVEL_HIGH 5>; interrupts = <26 IRQ_TYPE_LEVEL_HIGH 5>;
clocks = <&isi_clk>; clocks = <&isi_clk>;
clock-names = "isi_clk"; clock-names = "isi_clk";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_isi>;
status = "disabled"; status = "disabled";
port {
#address-cells = <1>;
#size-cells = <0>;
};
}; };
pwm0: pwm@fffb8000 { pwm0: pwm@fffb8000 {
......
...@@ -63,6 +63,25 @@ macb0: ethernet@fffbc000 { ...@@ -63,6 +63,25 @@ macb0: ethernet@fffbc000 {
i2c0: i2c@fff84000 { i2c0: i2c@fff84000 {
status = "okay"; status = "okay";
ov2640: camera@30 {
compatible = "ovti,ov2640";
reg = <0x30>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_pck1_as_isi_mck &pinctrl_sensor_power &pinctrl_sensor_reset>;
resetb-gpios = <&pioD 12 GPIO_ACTIVE_LOW>;
pwdn-gpios = <&pioD 13 GPIO_ACTIVE_HIGH>;
clocks = <&pck1>;
clock-names = "xvclk";
assigned-clocks = <&pck1>;
assigned-clock-rates = <25000000>;
port {
ov2640_0: endpoint {
remote-endpoint = <&isi_0>;
bus-width = <8>;
};
};
};
}; };
i2c1: i2c@fff88000 { i2c1: i2c@fff88000 {
...@@ -101,6 +120,22 @@ slot@0 { ...@@ -101,6 +120,22 @@ slot@0 {
}; };
pinctrl@fffff200 { pinctrl@fffff200 {
camera_sensor {
pinctrl_pck1_as_isi_mck: pck1_as_isi_mck-0 {
atmel,pins =
<AT91_PIOB 31 AT91_PERIPH_B AT91_PINCTRL_NONE>;
};
pinctrl_sensor_reset: sensor_reset-0 {
atmel,pins =
<AT91_PIOD 12 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
};
pinctrl_sensor_power: sensor_power-0 {
atmel,pins =
<AT91_PIOD 13 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
};
};
mmc0 { mmc0 {
pinctrl_board_mmc0: mmc0-board { pinctrl_board_mmc0: mmc0-board {
atmel,pins = atmel,pins =
...@@ -155,6 +190,18 @@ &pinctrl_adc0_ad6 ...@@ -155,6 +190,18 @@ &pinctrl_adc0_ad6
status = "okay"; status = "okay";
}; };
isi@fffb4000 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_isi_data_0_7>;
status = "okay";
port {
isi_0: endpoint {
remote-endpoint = <&ov2640_0>;
bus-width = <8>;
};
};
};
pwm0: pwm@fffb8000 { pwm0: pwm@fffb8000 {
status = "okay"; status = "okay";
......
This diff is collapsed.
...@@ -1259,7 +1259,7 @@ mpddr_clk: mpddr_clk { ...@@ -1259,7 +1259,7 @@ mpddr_clk: mpddr_clk {
}; };
rstc@fffffe00 { rstc@fffffe00 {
compatible = "atmel,at91sam9g45-rstc"; compatible = "atmel,sama5d3-rstc", "atmel,at91sam9g45-rstc";
reg = <0xfffffe00 0x10>; reg = <0xfffffe00 0x10>;
}; };
......
...@@ -1193,21 +1193,12 @@ adc0: adc@fc034000 { ...@@ -1193,21 +1193,12 @@ adc0: adc@fc034000 {
compatible = "atmel,at91sam9x5-adc"; compatible = "atmel,at91sam9x5-adc";
reg = <0xfc034000 0x100>; reg = <0xfc034000 0x100>;
interrupts = <44 IRQ_TYPE_LEVEL_HIGH 5>; interrupts = <44 IRQ_TYPE_LEVEL_HIGH 5>;
pinctrl-names = "default";
pinctrl-0 = <
/* external trigger is conflict with USBA_VBUS */
&pinctrl_adc0_ad0
&pinctrl_adc0_ad1
&pinctrl_adc0_ad2
&pinctrl_adc0_ad3
&pinctrl_adc0_ad4
>;
clocks = <&adc_clk>, clocks = <&adc_clk>,
<&adc_op_clk>; <&adc_op_clk>;
clock-names = "adc_clk", "adc_op_clk"; clock-names = "adc_clk", "adc_op_clk";
atmel,adc-channels-used = <0x01f>; atmel,adc-channels-used = <0x01f>;
atmel,adc-startup-time = <40>; atmel,adc-startup-time = <40>;
atmel,adc-use-external; atmel,adc-use-external-triggers;
atmel,adc-vref = <3000>; atmel,adc-vref = <3000>;
atmel,adc-res = <8 10>; atmel,adc-res = <8 10>;
atmel,adc-sample-hold-time = <11>; atmel,adc-sample-hold-time = <11>;
...@@ -1277,7 +1268,7 @@ sha@fc050000 { ...@@ -1277,7 +1268,7 @@ sha@fc050000 {
}; };
rstc@fc068600 { rstc@fc068600 {
compatible = "atmel,at91sam9g45-rstc"; compatible = "atmel,sama5d3-rstc", "atmel,at91sam9g45-rstc";
reg = <0xfc068600 0x10>; reg = <0xfc068600 0x10>;
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment