2013-04-18 13:01:17

by Nicolas Ferre

[permalink] [raw]
Subject: [PATCH 0/5] ARM: at91: some more DT enhancements

Addition of the Acme systems Fox G20 board and some additions to the
at91sam9x5 DT and Aria board.

Douglas Gilbert (1):
ARM: at91: add Acme Systems Fox G20 board

Nicolas Ferre (4):
ARM: at91: at91sam9x5 RTC is not compatible with at91rm9200 one
ARM: at91/at91-ariag25.dts: add RTC node
ARM: at91/at91sam9x5.dtsi: add UART0/1 nodes
ARM: at91/at91-ariag25.dts: UART0/1 nodes are disabled

arch/arm/boot/dts/Makefile | 1 +
arch/arm/boot/dts/at91-ariag25.dts | 21 +++--
arch/arm/boot/dts/at91-foxg20.dts | 166 +++++++++++++++++++++++++++++++++++++
arch/arm/boot/dts/at91sam9x5.dtsi | 20 ++++-
4 files changed, 201 insertions(+), 7 deletions(-)
create mode 100644 arch/arm/boot/dts/at91-foxg20.dts

--
1.8.0


2013-04-18 13:01:28

by Nicolas Ferre

[permalink] [raw]
Subject: [PATCH 1/5] ARM: at91: at91sam9x5 RTC is not compatible with at91rm9200 one

Due to a bug with RTC IMR, we cannot consider at91sam9x5 RTC compatible
with the previous one. Modify DT compatibility string, even if the driver
is not yet modified to take it into account.

Signed-off-by: Nicolas Ferre <[email protected]>
---
arch/arm/boot/dts/at91sam9x5.dtsi | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm/boot/dts/at91sam9x5.dtsi b/arch/arm/boot/dts/at91sam9x5.dtsi
index a3d4464..58747f3 100644
--- a/arch/arm/boot/dts/at91sam9x5.dtsi
+++ b/arch/arm/boot/dts/at91sam9x5.dtsi
@@ -564,7 +564,7 @@
};

rtc@fffffeb0 {
- compatible = "atmel,at91rm9200-rtc";
+ compatible = "atmel,at91sam9x5-rtc";
reg = <0xfffffeb0 0x40>;
interrupts = <1 4 7>;
status = "disabled";
--
1.8.0

2013-04-18 13:01:31

by Nicolas Ferre

[permalink] [raw]
Subject: [PATCH 2/5] ARM: at91/at91-ariag25.dts: add RTC node

Reported-by: Douglas Gilbert <[email protected]>
Signed-off-by: Nicolas Ferre <[email protected]>
---
arch/arm/boot/dts/at91-ariag25.dts | 4 ++++
1 file changed, 4 insertions(+)

diff --git a/arch/arm/boot/dts/at91-ariag25.dts b/arch/arm/boot/dts/at91-ariag25.dts
index c7aebba..1de619c 100644
--- a/arch/arm/boot/dts/at91-ariag25.dts
+++ b/arch/arm/boot/dts/at91-ariag25.dts
@@ -138,6 +138,10 @@
};
};
};
+
+ rtc@fffffeb0 {
+ status = "okay";
+ };
};

usb0: ohci@00600000 {
--
1.8.0

2013-04-18 13:01:35

by Nicolas Ferre

[permalink] [raw]
Subject: [PATCH 3/5] ARM: at91/at91sam9x5.dtsi: add UART0/1 nodes

Reported-by: Douglas Gilbert <[email protected]>
Signed-off-by: Nicolas Ferre <[email protected]>
---
arch/arm/boot/dts/at91sam9x5.dtsi | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)

diff --git a/arch/arm/boot/dts/at91sam9x5.dtsi b/arch/arm/boot/dts/at91sam9x5.dtsi
index 58747f3..2cc33fb 100644
--- a/arch/arm/boot/dts/at91sam9x5.dtsi
+++ b/arch/arm/boot/dts/at91sam9x5.dtsi
@@ -522,6 +522,24 @@
status = "disabled";
};

+ uart0: serial@f8040000 {
+ compatible = "atmel,at91sam9260-usart";
+ reg = <0xf8040000 0x200>;
+ interrupts = <15 4 5>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_uart0>;
+ status = "disabled";
+ };
+
+ uart1: serial@f8044000 {
+ compatible = "atmel,at91sam9260-usart";
+ reg = <0xf8044000 0x200>;
+ interrupts = <16 4 5>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_uart1>;
+ status = "disabled";
+ };
+
adc0: adc@f804c000 {
compatible = "atmel,at91sam9260-adc";
reg = <0xf804c000 0x100>;
--
1.8.0

2013-04-18 13:01:41

by Nicolas Ferre

[permalink] [raw]
Subject: [PATCH 4/5] ARM: at91/at91-ariag25.dts: UART0/1 nodes are disabled

UART0 is moved to generic at91sam9x5.dtsi file.
Both uarts are "disabled" as the corresponding pins on
Aria documentation are shown as GPIOs.

Signed-off-by: Nicolas Ferre <[email protected]>
---
arch/arm/boot/dts/at91-ariag25.dts | 17 +++++++++++------
1 file changed, 11 insertions(+), 6 deletions(-)

diff --git a/arch/arm/boot/dts/at91-ariag25.dts b/arch/arm/boot/dts/at91-ariag25.dts
index 1de619c..5b07380 100644
--- a/arch/arm/boot/dts/at91-ariag25.dts
+++ b/arch/arm/boot/dts/at91-ariag25.dts
@@ -21,6 +21,7 @@
serial3 = &usart2;
serial4 = &usart3;
serial5 = &uart0;
+ serial6 = &uart1;
};

chosen {
@@ -112,13 +113,17 @@
status = "okay";
};

+ /*
+ * UART0/1 pins are marked as GPIO on
+ * Aria documentation.
+ * Change to "okay" if you need additional serial ports
+ */
uart0: serial@f8040000 {
- compatible = "atmel,at91sam9260-usart";
- reg = <0xf8040000 0x200>;
- interrupts = <15 4 5>;
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_uart0>;
- status = "okay";
+ status = "disabled";
+ };
+
+ uart1: serial@f8044000 {
+ status = "disabled";
};

adc0: adc@f804c000 {
--
1.8.0

2013-04-18 13:01:47

by Nicolas Ferre

[permalink] [raw]
Subject: [PATCH 5/5] ARM: at91: add Acme Systems Fox G20 board

From: Douglas Gilbert <[email protected]>

Signed-off-by: Douglas Gilbert <[email protected]>
Signed-off-by: Nicolas Ferre <[email protected]>
---
arch/arm/boot/dts/Makefile | 1 +
arch/arm/boot/dts/at91-foxg20.dts | 166 ++++++++++++++++++++++++++++++++++++++
2 files changed, 167 insertions(+)
create mode 100644 arch/arm/boot/dts/at91-foxg20.dts

diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index b07f162..914fe65 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -16,6 +16,7 @@ dtb-$(CONFIG_ARCH_AT91) += at91sam9263ek.dtb
dtb-$(CONFIG_ARCH_AT91) += tny_a9263.dtb
dtb-$(CONFIG_ARCH_AT91) += usb_a9263.dtb
# sam9g20
+dtb-$(CONFIG_ARCH_AT91) += at91-foxg20.dtb
dtb-$(CONFIG_ARCH_AT91) += at91sam9g20ek.dtb
dtb-$(CONFIG_ARCH_AT91) += at91sam9g20ek_2mmc.dtb
dtb-$(CONFIG_ARCH_AT91) += kizbox.dtb
diff --git a/arch/arm/boot/dts/at91-foxg20.dts b/arch/arm/boot/dts/at91-foxg20.dts
new file mode 100644
index 0000000..7d24ef7
--- /dev/null
+++ b/arch/arm/boot/dts/at91-foxg20.dts
@@ -0,0 +1,166 @@
+/*
+ * at91-foxg20.dts - Device Tree file for Acme Systems FoxG20 board
+ *
+ * Based on DT files for at91sam9g20ek evaluation board (AT91SAM9G20 SoC)
+ *
+ * Copyright (C) 2013 Douglas Gilbert <[email protected]>
+ *
+ * Licensed under GPLv2 or later.
+ */
+/dts-v1/;
+/include/ "at91sam9g20.dtsi"
+
+/ {
+ model = "Acme Systems FoxG20";
+ compatible = "acme,foxg20", "atmel,at91sam9g20", "atmel,at91sam9";
+
+ chosen {
+ bootargs = "console=ttyS0,115200 root=/dev/mmcblk0p2 rw rootwait";
+ };
+
+ memory {
+ reg = <0x20000000 0x4000000>;
+ };
+
+ clocks {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges;
+
+ main_clock: clock@0 {
+ compatible = "atmel,osc", "fixed-clock";
+ clock-frequency = <18432000>;
+ };
+ };
+
+ ahb {
+ apb {
+ usb1: gadget@fffa4000 {
+ atmel,vbus-gpio = <&pioC 6 0>;
+ status = "okay";
+ };
+
+ mmc0: mmc@fffa8000 {
+ pinctrl-0 = <
+ &pinctrl_mmc0_clk
+ &pinctrl_mmc0_slot1_cmd_dat0
+ &pinctrl_mmc0_slot1_dat1_3>;
+ status = "okay";
+ slot@1 {
+ reg = <1>;
+ bus-width = <4>;
+ };
+ };
+
+ usart0: serial@fffb0000 {
+ pinctrl-0 =
+ <&pinctrl_usart0
+ &pinctrl_usart0_rts
+ &pinctrl_usart0_cts
+ >;
+ status = "okay";
+ };
+
+ usart1: serial@fffb4000 {
+ status = "okay";
+ };
+
+ usart2: serial@fffb8000 {
+ status = "okay";
+ };
+
+ macb0: ethernet@fffc4000 {
+ phy-mode = "rmii";
+ status = "okay";
+ };
+
+ spi0: spi@fffc8000 {
+ cs-gpios = <0>, <&pioC 11 0>, <0>, <0>;
+ mtd_dataflash@0 {
+ compatible = "atmel,at45", "atmel,dataflash";
+ spi-max-frequency = <50000000>;
+ reg = <1>;
+ };
+ status = "disabled";
+ };
+
+ usart3: serial@fffd0000 {
+ status = "okay";
+ };
+
+ uart0: serial@fffd4000 {
+ status = "okay";
+ };
+
+ uart1: serial@fffd8000 {
+ status = "okay";
+ };
+
+ dbgu: serial@fffff200 {
+ status = "okay";
+ };
+
+ pinctrl@fffff400 {
+ board {
+ pinctrl_pck0_as_mck: pck0_as_mck {
+ atmel,pins =
+ <2 1 0x2 0x0>; /* PC1 periph B */
+ };
+ };
+
+ mmc0_slot1 {
+ pinctrl_board_mmc0_slot1: mmc0_slot1-board {
+ atmel,pins =
+ <2 9 0x0 0x5>; /* PC9 gpio CD pin pull up and deglitch */
+ };
+ };
+
+ i2c0 {
+ pinctrl_i2c0: i2c0-0 {
+ atmel,pins =
+ <0 23 0x1 0x2 /* TWD (SDA) PA23 periph A, open drain */
+ 0 24 0x1 0x2>; /* TWCK (SCL) PA24 periph A, open drain */
+ };
+ };
+ };
+
+ watchdog@fffffd40 {
+ status = "okay";
+ };
+ };
+
+ usb0: ohci@00500000 {
+ num-ports = <2>;
+ status = "okay";
+ };
+ };
+
+ i2c@0 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_i2c0>;
+ i2c-gpio,delay-us = <5>; /* ~85 kHz */
+ status = "okay";
+ };
+
+ leds {
+ compatible = "gpio-leds";
+
+ /* red LED marked "PC7" near mini USB (device) receptacle */
+ user_led {
+ label = "user_led";
+ gpios = <&pioC 7 0>; /* PC7 */
+ linux,default-trigger = "heartbeat";
+ };
+ };
+
+ gpio_keys {
+ compatible = "gpio-keys";
+
+ btn {
+ label = "Button";
+ gpios = <&pioC 4 1>;
+ linux,code = <0x103>;
+ gpio-key,wakeup;
+ };
+ };
+};
--
1.8.0

2013-04-18 16:34:47

by Nicolas Ferre

[permalink] [raw]
Subject: Re: [PATCH 5/5] ARM: at91: add Acme Systems Fox G20 board

On 04/18/2013 03:01 PM, Nicolas Ferre :
> From: Douglas Gilbert <[email protected]>
>
> Signed-off-by: Douglas Gilbert <[email protected]>
> Signed-off-by: Nicolas Ferre <[email protected]>
> ---
> arch/arm/boot/dts/Makefile | 1 +
> arch/arm/boot/dts/at91-foxg20.dts | 166 ++++++++++++++++++++++++++++++++++++++

FYI: I have to review this one: error while compiling.

> 2 files changed, 167 insertions(+)
> create mode 100644 arch/arm/boot/dts/at91-foxg20.dts
>
> diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
> index b07f162..914fe65 100644
> --- a/arch/arm/boot/dts/Makefile
> +++ b/arch/arm/boot/dts/Makefile
> @@ -16,6 +16,7 @@ dtb-$(CONFIG_ARCH_AT91) += at91sam9263ek.dtb
> dtb-$(CONFIG_ARCH_AT91) += tny_a9263.dtb
> dtb-$(CONFIG_ARCH_AT91) += usb_a9263.dtb
> # sam9g20
> +dtb-$(CONFIG_ARCH_AT91) += at91-foxg20.dtb
> dtb-$(CONFIG_ARCH_AT91) += at91sam9g20ek.dtb
> dtb-$(CONFIG_ARCH_AT91) += at91sam9g20ek_2mmc.dtb
> dtb-$(CONFIG_ARCH_AT91) += kizbox.dtb
> diff --git a/arch/arm/boot/dts/at91-foxg20.dts b/arch/arm/boot/dts/at91-foxg20.dts
> new file mode 100644
> index 0000000..7d24ef7
> --- /dev/null
> +++ b/arch/arm/boot/dts/at91-foxg20.dts
> @@ -0,0 +1,166 @@
> +/*
> + * at91-foxg20.dts - Device Tree file for Acme Systems FoxG20 board
> + *
> + * Based on DT files for at91sam9g20ek evaluation board (AT91SAM9G20 SoC)
> + *
> + * Copyright (C) 2013 Douglas Gilbert <[email protected]>
> + *
> + * Licensed under GPLv2 or later.
> + */
> +/dts-v1/;
> +/include/ "at91sam9g20.dtsi"
> +
> +/ {
> + model = "Acme Systems FoxG20";
> + compatible = "acme,foxg20", "atmel,at91sam9g20", "atmel,at91sam9";
> +
> + chosen {
> + bootargs = "console=ttyS0,115200 root=/dev/mmcblk0p2 rw rootwait";
> + };
> +
> + memory {
> + reg = <0x20000000 0x4000000>;
> + };
> +
> + clocks {
> + #address-cells = <1>;
> + #size-cells = <1>;
> + ranges;
> +
> + main_clock: clock@0 {
> + compatible = "atmel,osc", "fixed-clock";
> + clock-frequency = <18432000>;
> + };
> + };
> +
> + ahb {
> + apb {
> + usb1: gadget@fffa4000 {
> + atmel,vbus-gpio = <&pioC 6 0>;
> + status = "okay";
> + };
> +
> + mmc0: mmc@fffa8000 {
> + pinctrl-0 = <
> + &pinctrl_mmc0_clk
> + &pinctrl_mmc0_slot1_cmd_dat0
> + &pinctrl_mmc0_slot1_dat1_3>;
> + status = "okay";
> + slot@1 {
> + reg = <1>;
> + bus-width = <4>;
> + };
> + };
> +
> + usart0: serial@fffb0000 {
> + pinctrl-0 =
> + <&pinctrl_usart0
> + &pinctrl_usart0_rts
> + &pinctrl_usart0_cts
> + >;
> + status = "okay";
> + };
> +
> + usart1: serial@fffb4000 {
> + status = "okay";
> + };
> +
> + usart2: serial@fffb8000 {
> + status = "okay";
> + };
> +
> + macb0: ethernet@fffc4000 {
> + phy-mode = "rmii";
> + status = "okay";
> + };
> +
> + spi0: spi@fffc8000 {
> + cs-gpios = <0>, <&pioC 11 0>, <0>, <0>;
> + mtd_dataflash@0 {
> + compatible = "atmel,at45", "atmel,dataflash";
> + spi-max-frequency = <50000000>;
> + reg = <1>;
> + };
> + status = "disabled";
> + };
> +
> + usart3: serial@fffd0000 {
> + status = "okay";
> + };
> +
> + uart0: serial@fffd4000 {
> + status = "okay";
> + };
> +
> + uart1: serial@fffd8000 {
> + status = "okay";
> + };
> +
> + dbgu: serial@fffff200 {
> + status = "okay";
> + };
> +
> + pinctrl@fffff400 {
> + board {
> + pinctrl_pck0_as_mck: pck0_as_mck {
> + atmel,pins =
> + <2 1 0x2 0x0>; /* PC1 periph B */
> + };
> + };
> +
> + mmc0_slot1 {
> + pinctrl_board_mmc0_slot1: mmc0_slot1-board {
> + atmel,pins =
> + <2 9 0x0 0x5>; /* PC9 gpio CD pin pull up and deglitch */
> + };
> + };
> +
> + i2c0 {
> + pinctrl_i2c0: i2c0-0 {
> + atmel,pins =
> + <0 23 0x1 0x2 /* TWD (SDA) PA23 periph A, open drain */
> + 0 24 0x1 0x2>; /* TWCK (SCL) PA24 periph A, open drain */
> + };
> + };
> + };
> +
> + watchdog@fffffd40 {
> + status = "okay";
> + };
> + };
> +
> + usb0: ohci@00500000 {
> + num-ports = <2>;
> + status = "okay";
> + };
> + };
> +
> + i2c@0 {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_i2c0>;
> + i2c-gpio,delay-us = <5>; /* ~85 kHz */
> + status = "okay";
> + };
> +
> + leds {
> + compatible = "gpio-leds";
> +
> + /* red LED marked "PC7" near mini USB (device) receptacle */
> + user_led {
> + label = "user_led";
> + gpios = <&pioC 7 0>; /* PC7 */
> + linux,default-trigger = "heartbeat";
> + };
> + };
> +
> + gpio_keys {
> + compatible = "gpio-keys";
> +
> + btn {
> + label = "Button";
> + gpios = <&pioC 4 1>;
> + linux,code = <0x103>;
> + gpio-key,wakeup;
> + };
> + };
> +};
>


--
Nicolas Ferre

2013-04-19 08:49:18

by Nicolas Ferre

[permalink] [raw]
Subject: Re: [PATCH 5/5] ARM: at91: add Acme Systems Fox G20 board

On 04/18/2013 06:34 PM, Nicolas Ferre :
> On 04/18/2013 03:01 PM, Nicolas Ferre :
>> From: Douglas Gilbert <[email protected]>
>>
>> Signed-off-by: Douglas Gilbert <[email protected]>
>> Signed-off-by: Nicolas Ferre <[email protected]>
>> ---
>> arch/arm/boot/dts/Makefile | 1 +
>> arch/arm/boot/dts/at91-foxg20.dts | 166 ++++++++++++++++++++++++++++++++++++++
>
> FYI: I have to review this one: error while compiling.

Okay, corrected now: see below...

>
>> 2 files changed, 167 insertions(+)
>> create mode 100644 arch/arm/boot/dts/at91-foxg20.dts
>>
>> diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
>> index b07f162..914fe65 100644
>> --- a/arch/arm/boot/dts/Makefile
>> +++ b/arch/arm/boot/dts/Makefile
>> @@ -16,6 +16,7 @@ dtb-$(CONFIG_ARCH_AT91) += at91sam9263ek.dtb
>> dtb-$(CONFIG_ARCH_AT91) += tny_a9263.dtb
>> dtb-$(CONFIG_ARCH_AT91) += usb_a9263.dtb
>> # sam9g20
>> +dtb-$(CONFIG_ARCH_AT91) += at91-foxg20.dtb
>> dtb-$(CONFIG_ARCH_AT91) += at91sam9g20ek.dtb
>> dtb-$(CONFIG_ARCH_AT91) += at91sam9g20ek_2mmc.dtb
>> dtb-$(CONFIG_ARCH_AT91) += kizbox.dtb
>> diff --git a/arch/arm/boot/dts/at91-foxg20.dts b/arch/arm/boot/dts/at91-foxg20.dts
>> new file mode 100644
>> index 0000000..7d24ef7
>> --- /dev/null
>> +++ b/arch/arm/boot/dts/at91-foxg20.dts
>> @@ -0,0 +1,166 @@
>> +/*
>> + * at91-foxg20.dts - Device Tree file for Acme Systems FoxG20 board
>> + *
>> + * Based on DT files for at91sam9g20ek evaluation board (AT91SAM9G20 SoC)
>> + *
>> + * Copyright (C) 2013 Douglas Gilbert <[email protected]>
>> + *
>> + * Licensed under GPLv2 or later.
>> + */
>> +/dts-v1/;
>> +/include/ "at91sam9g20.dtsi"
>> +
>> +/ {
>> + model = "Acme Systems FoxG20";
>> + compatible = "acme,foxg20", "atmel,at91sam9g20", "atmel,at91sam9";
>> +
>> + chosen {
>> + bootargs = "console=ttyS0,115200 root=/dev/mmcblk0p2 rw rootwait";
>> + };
>> +
>> + memory {
>> + reg = <0x20000000 0x4000000>;
>> + };
>> +
>> + clocks {
>> + #address-cells = <1>;
>> + #size-cells = <1>;
>> + ranges;
>> +
>> + main_clock: clock@0 {
>> + compatible = "atmel,osc", "fixed-clock";
>> + clock-frequency = <18432000>;
>> + };
>> + };
>> +
>> + ahb {
>> + apb {
>> + usb1: gadget@fffa4000 {
>> + atmel,vbus-gpio = <&pioC 6 0>;
>> + status = "okay";
>> + };
>> +
>> + mmc0: mmc@fffa8000 {
>> + pinctrl-0 = <
>> + &pinctrl_mmc0_clk
>> + &pinctrl_mmc0_slot1_cmd_dat0
>> + &pinctrl_mmc0_slot1_dat1_3>;
>> + status = "okay";
>> + slot@1 {
>> + reg = <1>;
>> + bus-width = <4>;
>> + };
>> + };
>> +
>> + usart0: serial@fffb0000 {
>> + pinctrl-0 =
>> + <&pinctrl_usart0
>> + &pinctrl_usart0_rts
>> + &pinctrl_usart0_cts
>> + >;
>> + status = "okay";
>> + };
>> +
>> + usart1: serial@fffb4000 {
>> + status = "okay";
>> + };
>> +
>> + usart2: serial@fffb8000 {
>> + status = "okay";
>> + };
>> +
>> + macb0: ethernet@fffc4000 {
>> + phy-mode = "rmii";
>> + status = "okay";
>> + };
>> +
>> + spi0: spi@fffc8000 {
>> + cs-gpios = <0>, <&pioC 11 0>, <0>, <0>;
>> + mtd_dataflash@0 {
>> + compatible = "atmel,at45", "atmel,dataflash";
>> + spi-max-frequency = <50000000>;
>> + reg = <1>;
>> + };
>> + status = "disabled";

No property after subnodes: moved upwards... but then, completely
removed: spi node is not defined in SoC .dtsi: it was even causing error
of cell definition... ==> we will add it later.

>> + };
>> +
>> + usart3: serial@fffd0000 {
>> + status = "okay";
>> + };
>> +
>> + uart0: serial@fffd4000 {
>> + status = "okay";
>> + };
>> +
>> + uart1: serial@fffd8000 {
>> + status = "okay";
>> + };
>> +
>> + dbgu: serial@fffff200 {
>> + status = "okay";
>> + };
>> +
>> + pinctrl@fffff400 {
>> + board {
>> + pinctrl_pck0_as_mck: pck0_as_mck {
>> + atmel,pins =
>> + <2 1 0x2 0x0>; /* PC1 periph B */
>> + };
>> + };
>> +
>> + mmc0_slot1 {
>> + pinctrl_board_mmc0_slot1: mmc0_slot1-board {
>> + atmel,pins =
>> + <2 9 0x0 0x5>; /* PC9 gpio CD pin pull up and deglitch */
>> + };
>> + };
>> +
>> + i2c0 {
>> + pinctrl_i2c0: i2c0-0 {
>> + atmel,pins =
>> + <0 23 0x1 0x2 /* TWD (SDA) PA23 periph A, open drain */
>> + 0 24 0x1 0x2>; /* TWCK (SCL) PA24 periph A, open drain */
>> + };
>> + };
>> + };
>> +
>> + watchdog@fffffd40 {
>> + status = "okay";
>> + };
>> + };
>> +
>> + usb0: ohci@00500000 {
>> + num-ports = <2>;
>> + status = "okay";
>> + };
>> + };
>> +
>> + i2c@0 {
>> + pinctrl-names = "default";
>> + pinctrl-0 = <&pinctrl_i2c0>;
>> + i2c-gpio,delay-us = <5>; /* ~85 kHz */
>> + status = "okay";
>> + };
>> +
>> + leds {
>> + compatible = "gpio-leds";
>> +
>> + /* red LED marked "PC7" near mini USB (device) receptacle */
>> + user_led {
>> + label = "user_led";
>> + gpios = <&pioC 7 0>; /* PC7 */
>> + linux,default-trigger = "heartbeat";
>> + };
>> + };
>> +
>> + gpio_keys {
>> + compatible = "gpio-keys";
>> +
>> + btn {
>> + label = "Button";
>> + gpios = <&pioC 4 1>;
>> + linux,code = <0x103>;
>> + gpio-key,wakeup;
>> + };
>> + };
>> +};
>>
>
>


--
Nicolas Ferre

2013-04-19 10:40:50

by Nicolas Ferre

[permalink] [raw]
Subject: [PATCH 5/5 v2] ARM: at91: add Acme Systems Fox G20 board

From: Douglas Gilbert <[email protected]>

Signed-off-by: Douglas Gilbert <[email protected]>
[[email protected]: re-arranging nodes, removing nodes and some comments]
Signed-off-by: Nicolas Ferre <[email protected]>
---
v2: - removed the SPI node

arch/arm/boot/dts/Makefile | 1 +
arch/arm/boot/dts/at91-foxg20.dts | 157 ++++++++++++++++++++++++++++++++++++++
2 files changed, 158 insertions(+)
create mode 100644 arch/arm/boot/dts/at91-foxg20.dts

diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index b07f162..914fe65 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -16,6 +16,7 @@ dtb-$(CONFIG_ARCH_AT91) += at91sam9263ek.dtb
dtb-$(CONFIG_ARCH_AT91) += tny_a9263.dtb
dtb-$(CONFIG_ARCH_AT91) += usb_a9263.dtb
# sam9g20
+dtb-$(CONFIG_ARCH_AT91) += at91-foxg20.dtb
dtb-$(CONFIG_ARCH_AT91) += at91sam9g20ek.dtb
dtb-$(CONFIG_ARCH_AT91) += at91sam9g20ek_2mmc.dtb
dtb-$(CONFIG_ARCH_AT91) += kizbox.dtb
diff --git a/arch/arm/boot/dts/at91-foxg20.dts b/arch/arm/boot/dts/at91-foxg20.dts
new file mode 100644
index 0000000..f5e0427
--- /dev/null
+++ b/arch/arm/boot/dts/at91-foxg20.dts
@@ -0,0 +1,157 @@
+/*
+ * at91-foxg20.dts - Device Tree file for Acme Systems FoxG20 board
+ *
+ * Based on DT files for at91sam9g20ek evaluation board (AT91SAM9G20 SoC)
+ *
+ * Copyright (C) 2013 Douglas Gilbert <[email protected]>
+ *
+ * Licensed under GPLv2 or later.
+ */
+/dts-v1/;
+/include/ "at91sam9g20.dtsi"
+
+/ {
+ model = "Acme Systems FoxG20";
+ compatible = "acme,foxg20", "atmel,at91sam9g20", "atmel,at91sam9";
+
+ chosen {
+ bootargs = "console=ttyS0,115200 root=/dev/mmcblk0p2 rw rootwait";
+ };
+
+ memory {
+ reg = <0x20000000 0x4000000>;
+ };
+
+ clocks {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges;
+
+ main_clock: clock@0 {
+ compatible = "atmel,osc", "fixed-clock";
+ clock-frequency = <18432000>;
+ };
+ };
+
+ ahb {
+ apb {
+ usb1: gadget@fffa4000 {
+ atmel,vbus-gpio = <&pioC 6 0>;
+ status = "okay";
+ };
+
+ mmc0: mmc@fffa8000 {
+ pinctrl-0 = <
+ &pinctrl_mmc0_clk
+ &pinctrl_mmc0_slot1_cmd_dat0
+ &pinctrl_mmc0_slot1_dat1_3>;
+ status = "okay";
+
+ slot@1 {
+ reg = <1>;
+ bus-width = <4>;
+ };
+ };
+
+ usart0: serial@fffb0000 {
+ pinctrl-0 =
+ <&pinctrl_usart0
+ &pinctrl_usart0_rts
+ &pinctrl_usart0_cts
+ >;
+ status = "okay";
+ };
+
+ usart1: serial@fffb4000 {
+ status = "okay";
+ };
+
+ usart2: serial@fffb8000 {
+ status = "okay";
+ };
+
+ macb0: ethernet@fffc4000 {
+ phy-mode = "rmii";
+ status = "okay";
+ };
+
+ usart3: serial@fffd0000 {
+ status = "okay";
+ };
+
+ uart0: serial@fffd4000 {
+ status = "okay";
+ };
+
+ uart1: serial@fffd8000 {
+ status = "okay";
+ };
+
+ dbgu: serial@fffff200 {
+ status = "okay";
+ };
+
+ pinctrl@fffff400 {
+ board {
+ pinctrl_pck0_as_mck: pck0_as_mck {
+ atmel,pins =
+ <2 1 0x2 0x0>; /* PC1 periph B */
+ };
+ };
+
+ mmc0_slot1 {
+ pinctrl_board_mmc0_slot1: mmc0_slot1-board {
+ atmel,pins =
+ <2 9 0x0 0x5>; /* PC9 gpio CD pin pull up and deglitch */
+ };
+ };
+
+ i2c0 {
+ pinctrl_i2c0: i2c0-0 {
+ atmel,pins =
+ <0 23 0x1 0x2 /* TWD (SDA) PA23 periph A, open drain */
+ 0 24 0x1 0x2>; /* TWCK (SCL) PA24 periph A, open drain */
+ };
+ };
+ };
+
+ watchdog@fffffd40 {
+ status = "okay";
+ };
+ };
+
+ usb0: ohci@00500000 {
+ num-ports = <2>;
+ status = "okay";
+ };
+ };
+
+ i2c@0 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_i2c0>;
+ i2c-gpio,delay-us = <5>; /* ~85 kHz */
+ status = "okay";
+ };
+
+ leds {
+ compatible = "gpio-leds";
+
+ /* red LED marked "PC7" near mini USB (device) receptacle */
+ user_led {
+ label = "user_led";
+ gpios = <&pioC 7 0>; /* PC7 */
+ linux,default-trigger = "heartbeat";
+ };
+ };
+
+ gpio_keys {
+ compatible = "gpio-keys";
+
+ btn {
+ label = "Button";
+ gpios = <&pioC 4 1>;
+ linux,code = <0x103>;
+ gpio-key,wakeup;
+ };
+ };
+};
--
1.8.0

2013-04-19 13:55:09

by Sergei Shtylyov

[permalink] [raw]
Subject: Re: [PATCH 1/5] ARM: at91: at91sam9x5 RTC is not compatible with at91rm9200 one

Hello.

On 18-04-2013 17:01, Nicolas Ferre wrote:

> Due to a bug with RTC IMR, we cannot consider at91sam9x5 RTC compatible
> with the previous one. Modify DT compatibility string, even if the driver
> is not yet modified to take it into account.

> Signed-off-by: Nicolas Ferre <[email protected]>
> ---
> arch/arm/boot/dts/at91sam9x5.dtsi | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)

> diff --git a/arch/arm/boot/dts/at91sam9x5.dtsi b/arch/arm/boot/dts/at91sam9x5.dtsi
> index a3d4464..58747f3 100644
> --- a/arch/arm/boot/dts/at91sam9x5.dtsi
> +++ b/arch/arm/boot/dts/at91sam9x5.dtsi
> @@ -564,7 +564,7 @@
> };
>
> rtc@fffffeb0 {
> - compatible = "atmel,at91rm9200-rtc";
> + compatible = "atmel,at91sam9x5-rtc";

Do not use wildcards in the "compatible" prop values (I guess 'x' is a
wildcard).

WBR, Sergei

2013-04-19 14:06:07

by Nicolas Ferre

[permalink] [raw]
Subject: Re: [PATCH 1/5] ARM: at91: at91sam9x5 RTC is not compatible with at91rm9200 one

On 04/19/2013 03:53 PM, Sergei Shtylyov :
> Hello.
>
> On 18-04-2013 17:01, Nicolas Ferre wrote:
>
>> Due to a bug with RTC IMR, we cannot consider at91sam9x5 RTC compatible
>> with the previous one. Modify DT compatibility string, even if the driver
>> is not yet modified to take it into account.
>
>> Signed-off-by: Nicolas Ferre <[email protected]>
>> ---
>> arch/arm/boot/dts/at91sam9x5.dtsi | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>
>> diff --git a/arch/arm/boot/dts/at91sam9x5.dtsi
>> b/arch/arm/boot/dts/at91sam9x5.dtsi
>> index a3d4464..58747f3 100644
>> --- a/arch/arm/boot/dts/at91sam9x5.dtsi
>> +++ b/arch/arm/boot/dts/at91sam9x5.dtsi
>> @@ -564,7 +564,7 @@
>> };
>>
>> rtc@fffffeb0 {
>> - compatible = "atmel,at91rm9200-rtc";
>> + compatible = "atmel,at91sam9x5-rtc";
>
> Do not use wildcards in the "compatible" prop values (I guess 'x' is
> a wildcard).

Well, it is for naming a series of hardware, not for giving a generic
name that could cover different hardware.

In the sense of Atmel it is our way to call the at91sam9x5 series of
SoC: you will see that the code that covers these SoCs is always named
like this.
In fact, the hardware contained in these SoC cannot be different from
one flavor of the family to the other.

Best regards,
--
Nicolas Ferre

2013-04-19 14:50:56

by Sergei Shtylyov

[permalink] [raw]
Subject: Re: [PATCH 1/5] ARM: at91: at91sam9x5 RTC is not compatible with at91rm9200 one

On 19-04-2013 18:05, Nicolas Ferre wrote:

>>> Due to a bug with RTC IMR, we cannot consider at91sam9x5 RTC compatible
>>> with the previous one. Modify DT compatibility string, even if the driver
>>> is not yet modified to take it into account.

>>> Signed-off-by: Nicolas Ferre <[email protected]>
>>> ---
>>> arch/arm/boot/dts/at91sam9x5.dtsi | 2 +-
>>> 1 file changed, 1 insertion(+), 1 deletion(-)

>>> diff --git a/arch/arm/boot/dts/at91sam9x5.dtsi
>>> b/arch/arm/boot/dts/at91sam9x5.dtsi
>>> index a3d4464..58747f3 100644
>>> --- a/arch/arm/boot/dts/at91sam9x5.dtsi
>>> +++ b/arch/arm/boot/dts/at91sam9x5.dtsi
>>> @@ -564,7 +564,7 @@
>>> };
>>>
>>> rtc@fffffeb0 {
>>> - compatible = "atmel,at91rm9200-rtc";
>>> + compatible = "atmel,at91sam9x5-rtc";

>> Do not use wildcards in the "compatible" prop values (I guess 'x' is
>> a wildcard).

> Well, it is for naming a series of hardware, not for giving a generic
> name that could cover different hardware.

> In the sense of Atmel it is our way to call the at91sam9x5 series of
> SoC: you will see that the code that covers these SoCs is always named
> like this.
> In fact, the hardware contained in these SoC cannot be different from
> one flavor of the family to the other.

Nevertheless, the wildcards shouldn't be used. Use the name of e.g. the
first member of the family.

> Best regards,

WBR, Sergei

Subject: Re: [PATCH 1/5] ARM: at91: at91sam9x5 RTC is not compatible with at91rm9200 one

On 18:49 Fri 19 Apr , Sergei Shtylyov wrote:
> On 19-04-2013 18:05, Nicolas Ferre wrote:
>
> >>>Due to a bug with RTC IMR, we cannot consider at91sam9x5 RTC compatible
> >>>with the previous one. Modify DT compatibility string, even if the driver
> >>>is not yet modified to take it into account.
>
> >>>Signed-off-by: Nicolas Ferre <[email protected]>
> >>>---
> >>> arch/arm/boot/dts/at91sam9x5.dtsi | 2 +-
> >>> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> >>>diff --git a/arch/arm/boot/dts/at91sam9x5.dtsi
> >>>b/arch/arm/boot/dts/at91sam9x5.dtsi
> >>>index a3d4464..58747f3 100644
> >>>--- a/arch/arm/boot/dts/at91sam9x5.dtsi
> >>>+++ b/arch/arm/boot/dts/at91sam9x5.dtsi
> >>>@@ -564,7 +564,7 @@
> >>> };
> >>>
> >>> rtc@fffffeb0 {
> >>>- compatible = "atmel,at91rm9200-rtc";
> >>>+ compatible = "atmel,at91sam9x5-rtc";
>
> >> Do not use wildcards in the "compatible" prop values (I guess 'x' is
> >>a wildcard).
>
> >Well, it is for naming a series of hardware, not for giving a generic
> >name that could cover different hardware.
>
> >In the sense of Atmel it is our way to call the at91sam9x5 series of
> >SoC: you will see that the code that covers these SoCs is always named
> >like this.
> >In fact, the hardware contained in these SoC cannot be different from
> >one flavor of the family to the other.
>
> Nevertheless, the wildcards shouldn't be used. Use the name of
> e.g. the first member of the family.
we use this across others bindings

at91sam9x5 is the name of the Family

Best Regards,
J.

2013-04-19 15:05:45

by Nicolas Ferre

[permalink] [raw]
Subject: Re: [PATCH 1/5] ARM: at91: at91sam9x5 RTC is not compatible with at91rm9200 one

On 04/19/2013 04:49 PM, Sergei Shtylyov :
> On 19-04-2013 18:05, Nicolas Ferre wrote:
>
>>>> Due to a bug with RTC IMR, we cannot consider at91sam9x5 RTC compatible
>>>> with the previous one. Modify DT compatibility string, even if the
>>>> driver
>>>> is not yet modified to take it into account.
>
>>>> Signed-off-by: Nicolas Ferre <[email protected]>
>>>> ---
>>>> arch/arm/boot/dts/at91sam9x5.dtsi | 2 +-
>>>> 1 file changed, 1 insertion(+), 1 deletion(-)
>
>>>> diff --git a/arch/arm/boot/dts/at91sam9x5.dtsi
>>>> b/arch/arm/boot/dts/at91sam9x5.dtsi
>>>> index a3d4464..58747f3 100644
>>>> --- a/arch/arm/boot/dts/at91sam9x5.dtsi
>>>> +++ b/arch/arm/boot/dts/at91sam9x5.dtsi
>>>> @@ -564,7 +564,7 @@
>>>> };
>>>>
>>>> rtc@fffffeb0 {
>>>> - compatible = "atmel,at91rm9200-rtc";
>>>> + compatible = "atmel,at91sam9x5-rtc";
>
>>> Do not use wildcards in the "compatible" prop values (I guess 'x' is
>>> a wildcard).
>
>> Well, it is for naming a series of hardware, not for giving a generic
>> name that could cover different hardware.
>
>> In the sense of Atmel it is our way to call the at91sam9x5 series of
>> SoC: you will see that the code that covers these SoCs is always named
>> like this.
>> In fact, the hardware contained in these SoC cannot be different from
>> one flavor of the family to the other.
>
> Nevertheless, the wildcards shouldn't be used. Use the name of e.g.
> the first member of the family.

There is not "first" there is no "last" they are all the same from a
hardware perspective. The only difference is activation of peripherals.

So, no, we will not change this.

Cf:
find arch/arm/boot/dts/ | xargs grep compatible | grep at91sam9x5

Best regards,
--
Nicolas Ferre