Skip to contentSkip to conversation

board/acmesystems/arietta: new board

PATCH New Angelo Compagnucci 3 participants 5 messages Jun 17, 2015 – Aug 29, 2015

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 board/acmesystems/arietta: new board

This patch adds support to the Arietta board from Acmesystems. This board comes in two memory sizes (128m and 256m) hence the reason for two different configs.

---
 board/acmesystems/arietta/acme-arietta.dts | 182 +++++++++++++++++++++++++++++
 board/acmesystems/arietta/linux-4.0.config |  99 ++++++++++++++++
 board/acmesystems/arietta/readme.txt       |  67 +++++++++++
 configs/acme-arietta-128m_defconfig        |  19 +++
 configs/acme-arietta-256m_defconfig        |  19 +++
 5 files changed, 386 insertions(+)
 create mode 100644 board/acmesystems/arietta/acme-arietta.dts
 create mode 100644 board/acmesystems/arietta/linux-4.0.config
 create mode 100644 board/acmesystems/arietta/readme.txt
 create mode 100644 configs/acme-arietta-128m_defconfig
 create mode 100644 configs/acme-arietta-256m_defconfig
board/acmesystems/arietta/acme-arietta.dts new file +182 -0
new file mode 100644
index 0000000..813f87e
@@ -0,0 +1,182 @@
+/*
+ * acme-arietta.dts - Device Tree file for Arietta G25
+ * Copyright (C) 2015 Sergio Tanzilli <[email protected]>
+ *
+ * Licensed under GPLv2 or later. 
+ */
+/dts-v1/;
+#include "at91sam9g25.dtsi"
+/ {
+	model = "Acme Systems Arietta G25";
+	compatible = "acme,ariettag25", "atmel,at91sam9x5ek","atmel,at91sam9x5", "atmel,at91sam9";
+	aliases {
+		serial0 = &dbgu;
+		serial1 = &usart0;
+		serial2 = &usart1;
+		serial3 = &usart2;
+		serial4 = &usart3;
+		serial5 = &uart0;
+		serial6 = &uart1;
+	};
+
+	chosen {
+		bootargs = "mem=128M console=ttyS0,115200 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait consoleblank=0";
+	};
+
+	memory {
+		reg = <0x20000000 0x8000000>;
+	};
+
+	clocks {
+		#address-cells = <1>;
+		#size-cells = <1>;
+		ranges;
+		main_clock: clock at 0 {
+			compatible = "atmel,osc", "fixed-clock";
+			clock-frequency = <12000000>;
+		};
+
+		main_xtal { 
+			clock-frequency = <12000000>; 
+		}; 
+	};
+
+	ahb {
+		apb {
+			mmc0: mmc at f0008000 {
+				pinctrl-0 = <
+				  &pinctrl_mmc0_slot0_clk_cmd_dat0
+				  &pinctrl_mmc0_slot0_dat1_3>;
+				status = "okay";
+				slot at 0 {
+					reg = <0>;
+					bus-width = <4>;
+				};
+			};
+			i2c0: i2c at f8010000 {
+				status ="disabled";
+				wm8731: wm8731 at 1b {
+					compatible = "wm8731";
+					reg = <0x1b>;
+				};
+			};
+			i2c1: i2c at f8014000 {
+				status ="disabled";
+			};
+			usart0: serial at f801c000 {
+				pinctrl-0 = <&pinctrl_usart0>;
+				status ="disabled";
+			};
+			usart1: serial at f8020000 {
+				pinctrl-0 = <&pinctrl_usart1 &pinctrl_usart1_rts &pinctrl_usart1_cts>;
+				status ="disabled";
+			};
+			usart2: serial at f8024000 {
+				pinctrl-0 = <&pinctrl_usart2>;
+				status ="disabled";
+			};
+			spi1: spi at f0004000 {
+				status = "disabled";
+				cs-gpios = <&pioA 8 0>, <&pioA 0 0>, <&pioA 31 0>, <&pioA 30 0>;
+				device at 0 {
+					compatible = "spidev";
+					spi-max-frequency = <50000000>;	    // 50 MHz
+					reg = <0>;
+				};
+				device at 1 {
+					compatible = "spidev";
+					spi-max-frequency = <50000000>;	    // 50 MHz
+					reg = <1>;
+				};
+				device at 2 {
+					compatible = "spidev";
+					spi-max-frequency = <50000000>;	    // 50 MHz
+					reg = <2>;
+				};
+				device at 3 {
+					compatible = "spidev";
+					spi-max-frequency = <50000000>;	    // 50 MHz
+					reg = <3>;
+				};
+			};
+
+			adc0: adc at f804c000 {
+				status = "disabled";
+				atmel,adc-channels-used = <0xf>;
+				atmel,adc-num-channels = <4>;
+				compatible = "atmel,at91sam9x5-adc";
+				atmel,adc-startup-time = <40>;
+				atmel,adc-status-register = <0x1c>;
+				atmel,adc-trigger-register = <0x08>;
+				atmel,adc-use-external;
+				atmel,adc-vref = <3250>;
+				atmel,adc-res = <8 10>;
+				atmel,adc-res-names = "lowres", "highres";
+				atmel,adc-use-res = "highres";
+				trigger at 0 {
+					trigger-name = "continuous";
+					trigger-value = <0x6>;
+				};
+			};
+
+			pinctrl at fffff400 {
+				pwm0 {
+					pinctrl_pwm0: pwm0-0 {
+						atmel,pins =
+						< AT91_PIOB 11 AT91_PERIPH_B AT91_PINCTRL_NONE
+						  AT91_PIOB 12 AT91_PERIPH_B AT91_PINCTRL_NONE
+						  AT91_PIOB 13 AT91_PERIPH_B AT91_PINCTRL_NONE
+						  AT91_PIOB 14 AT91_PERIPH_B AT91_PINCTRL_NONE >;
+					};
+				};
+			};
+			pwm0: pwm at f8034000 {
+				pinctrl-names = "default";
+				pinctrl-0 = <&pinctrl_pwm0>;
+				status = "disabled";
+			};
+
+			ssc0: ssc at f0010000 {
+				status = "disabled";
+			};
+			usb2: gadget at f803c000 {
+				status = "okay";
+			};
+			dbgu: serial at fffff200 {
+				status = "okay";
+			};
+			pinctrl at fffff400 {
+			};
+			rtc at fffffeb0 {
+				status = "okay";
+			};
+		};
+		usb0: ohci at 00600000 {
+			status = "okay";
+			num-ports = <3>;
+		};
+		usb1: ehci at 00700000 {
+			status = "okay";
+		};
+	};
+	leds {
+		compatible = "gpio-leds";
+		arietta_led {
+			label = "arietta_led";
+			gpios = <&pioB 8 GPIO_ACTIVE_HIGH>; /* PB8 */
+			linux,default-trigger = "heartbeat";
+		};
+	};
+	sound {
+		compatible = "atmel,sam9x5-wm8731-audio";
+		atmel,model = "wm8731 @ AT91SAM9X5EK";
+		atmel,audio-routing =
+		"Headphone Jack", "RHPOUT",
+		"Headphone Jack", "LHPOUT",
+		"LLINEIN", "Line In Jack",
+		"RLINEIN", "Line In Jack";
+		atmel,ssc-controller = <&ssc0>;
+		atmel,audio-codec = <&wm8731>;
+	};
+
+};
board/acmesystems/arietta/linux-4.0.config new file +99 -0

99 lines not on this page · raw message

board/acmesystems/arietta/readme.txt new file +67 -0

67 lines not on this page · raw message

configs/acme-arietta-128m_defconfig new file +19 -0
new file mode 100644
index 0000000..3a8ebf1
@@ -0,0 +1,19 @@
+BR2_arm=y
+BR2_ARM_INSTRUCTIONS_THUMB=y
+BR2_TOOLCHAIN_EXTERNAL=y
+BR2_TARGET_GENERIC_HOSTNAME="arietta"
+BR2_TARGET_GENERIC_ISSUE="Welcome to Arietta by Acmesystems http://www.acmesystems.it!"
+BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV=y
+BR2_TARGET_GENERIC_ROOT_PASSWD="acmesystems"
+BR2_LINUX_KERNEL=y
+BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
+BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/acmesystems/arietta/linux-4.0.config"
+BR2_LINUX_KERNEL_ZIMAGE=y
+BR2_LINUX_KERNEL_DTS_SUPPORT=y
+BR2_LINUX_KERNEL_USE_CUSTOM_DTS=y
+BR2_LINUX_KERNEL_CUSTOM_DTS_PATH="board/acmesystems/arietta/acme-arietta.dts"
+BR2_TARGET_AT91BOOTSTRAP3=y
+BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_GIT=y
+BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_URL="https://github.com/tanzilli/at91bootstrap"
+BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_VERSION="acme"
+BR2_TARGET_AT91BOOTSTRAP3_DEFCONFIG="arietta-128m"
configs/acme-arietta-256m_defconfig new file +19 -0
new file mode 100644
index 0000000..9564b77
@@ -0,0 +1,19 @@
+BR2_arm=y
+BR2_ARM_INSTRUCTIONS_THUMB=y
+BR2_TOOLCHAIN_EXTERNAL=y
+BR2_TARGET_GENERIC_HOSTNAME="arietta"
+BR2_TARGET_GENERIC_ISSUE="Welcome to Arietta by Acmesystems http://www.acmesystems.it!"
+BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV=y
+BR2_TARGET_GENERIC_ROOT_PASSWD="acmesystems"
+BR2_LINUX_KERNEL=y
+BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
+BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/acmesystems/arietta/linux-4.0.config"
+BR2_LINUX_KERNEL_ZIMAGE=y
+BR2_LINUX_KERNEL_DTS_SUPPORT=y
+BR2_LINUX_KERNEL_USE_CUSTOM_DTS=y
+BR2_LINUX_KERNEL_CUSTOM_DTS_PATH="board/acmesystems/arietta/acme-arietta.dts"
+BR2_TARGET_AT91BOOTSTRAP3=y
+BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_GIT=y
+BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_URL="https://github.com/tanzilli/at91bootstrap"
+BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_VERSION="acme"
+BR2_TARGET_AT91BOOTSTRAP3_DEFCONFIG="arietta-256m"
Signature · 1 line
1.9.1
#1 lore raw

PATCH 1/1 board/acmesystems/arietta: new board

Quoted 5 lines · Angelo Compagnucci

This patch adds support to the Arietta board from Acmesystems. This board comes in two memory sizes (128m and 256m) hence the reason for two different configs.

Hi Angelo.
A few nits:

Quoted 1 line
  board/acmesystems/arietta/linux-4.0.config |  99 ++++++++++++++++

Any particular reason you need a custom config instead of being able to use at91_dt (like on the Aria sample i sent)?
I know the Arietta lacks an ethernet PHY, but the DTS should take care of that.

Quoted 1 line

+BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_VERSION="acme"

Also the "acme" tag seems to be the "master" of customization (i.e. a moving target), could you switch to a commit hash? Otherwise it looks OK without having hardware to test and you can have my Acked-by if you address these concerns.
Thanks.
Regards.

#2 lore raw

PATCH 1/1 board/acmesystems/arietta: new board

Hi Gustavo,

2015-06-30 0:25 GMT+02:00 Gustavo Zacarias <[email protected]>:

Quoted 14 lines · Angelo Compagnucci
Quoted 6 lines

This patch adds support to the Arietta board from Acmesystems. This board comes in two memory sizes (128m and 256m) hence the reason for two different configs.

Hi Angelo.
A few nits:

Quoted 7 lines
Quoted 1 line
  board/acmesystems/arietta/linux-4.0.config |  99 ++++++++++++++++

Any particular reason you need a custom config instead of being able to use at91_dt (like on the Aria sample i sent)?
I know the Arietta lacks an ethernet PHY, but the DTS should take care of that.

That configuration is really bloated, it compiles several unneeded modules and it's not really optimized for arietta.

Quoted 5 lines
Quoted 1 line

+BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_VERSION="acme"

Also the "acme" tag seems to be the "master" of customization (i.e. a moving target), could you switch to a commit hash?

Right, changing this for the next revision!

Quoted 4 lines

Otherwise it looks OK without having hardware to test and you can have my Acked-by if you address these concerns.
Thanks.
Regards.

Thanks!

Signature · 1 line
Profile: http://it.linkedin.com/in/compagnucciangelo
#3 lore raw

PATCH 1/1 board/acmesystems/arietta: new board

Quoted 1 line · Angelo Compagnucci

Hi Gustavo,

Hi Angelo.

Quoted 7 lines
Quoted 4 lines

Any particular reason you need a custom config instead of being able to use at91_dt (like on the Aria sample i sent)?
I know the Arietta lacks an ethernet PHY, but the DTS should take care of that.

That configuration is really bloated, it compiles several unneeded modules and it's not really optimized for arietta.

We normally don't try to be too "smart ass" with the config files and try to use the ones shipped with the kernel if they work - after all you can't cover every use scenario out there and we just expect the boards to boot properly (which the default config will probably do). Also since the arietta has at least 128MB RAM and boots from SD (plenty of flash) the bloat scenario isn't severe (many kernel options are built as modules).
Regards.

#4 lore raw

PATCH 1/1 board/acmesystems/arietta: new board

In reply to Angelo Compagnucci

Dear Angelo Compagnucci,

Quoted 7 lines · Angelo Compagnucci
Quoted 5 lines
Quoted 1 line

+BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_VERSION="acme"

Also the "acme" tag seems to be the "master" of customization (i.e. a moving target), could you switch to a commit hash?

Right, changing this for the next revision!

So, I will mark your patch as Changes Requested in patchwork, waiting for the new version.

Thanks!

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com