* [GIT PULL] Support for efm32
@ 2013-12-16 19:09 Uwe Kleine-König
2013-12-16 19:12 ` [PATCH 2/2] ARM: device trees for Energy Micro's EFM32 Cortex-M3 SoCs Uwe Kleine-König
2013-12-19 22:45 ` [GIT PULL] Support for efm32 Kevin Hilman
0 siblings, 2 replies; 8+ messages in thread
From: Uwe Kleine-König @ 2013-12-16 19:09 UTC (permalink / raw)
To: linux-arm-kernel
The following changes since commit 319e2e3f63c348a9b66db4667efa73178e18b17d:
Linux 3.13-rc4 (2013-12-15 12:31:33 -0800)
are available in the git repository at:
git://git.pengutronix.de/git/ukl/linux.git tags/efm32
for you to fetch changes up to ef43eff3447f30b4a3cfc61813902c2e57c20245:
ARM: device trees for Energy Micro's EFM32 Cortex-M3 SoCs (2013-12-16 17:51:34 +0100)
----------------------------------------------------------------
These two commits add preliminary support for Energy Micro (now Silicon Labs)
Giant Gecko SoCs. They have a Cortex-M3 core, and so are Thumb2 only and don't
feature an MMU. With these changes merged there is no additional code needed
under arch/arm to run Linux on such a SoC.
----------------------------------------------------------------
Compared to the patch sent a few days ago (v5, Message-Id:
1386694516-5876-1-git-send-email-u.kleine-koenig at pengutronix.de), I let
ARCH_EFM32 temporarily select CLKSRC_MMIO until 4ff3774 (clocksource:
time-efm32: Select CLKSRC_MMIO) hits mainline. Also I just noticed that
the clk support got in v3.13-rc1, so the device tree is buildable now.
This patch adding the device tree sources wasn't sent yet in it's
current form, so I will send it as reply to this mail. I hope it's not
controversal, so the two patches can go in together.
I choosed to base these changes on top of a more recent tree than
armsoc/next/soc currently is based on (v3.13-rc1 vs v3.13-rc4) because
to successfully build for ARM v7-M commit 5091333 (ARM: 7895/1: signal:
fix armv7-m build issue in sigreturn_codes.S) which is included in
v3.13-rc3 (but not earlier).
Uwe Kleine-K?nig (2):
ARM: new platform for Energy Micro's EFM32 Cortex-M3 SoCs
ARM: device trees for Energy Micro's EFM32 Cortex-M3 SoCs
arch/arm/Kconfig | 22 +++-
arch/arm/Makefile | 1 +
arch/arm/boot/dts/Makefile | 1 +
arch/arm/boot/dts/armv7-m.dtsi | 18 +++
arch/arm/boot/dts/efm32gg-dk3750.dts | 86 +++++++++++++
arch/arm/boot/dts/efm32gg.dtsi | 172 +++++++++++++++++++++++++
arch/arm/configs/efm32_defconfig | 102 +++++++++++++++
arch/arm/mach-efm32/Makefile | 1 +
arch/arm/mach-efm32/Makefile.boot | 3 +
arch/arm/mach-efm32/dtmachine.c | 15 +++
arch/arm/mach-efm32/include/mach/entry-macro.S | 4 +
arch/arm/mach-efm32/include/mach/timex.h | 3 +
12 files changed, 427 insertions(+), 1 deletion(-)
create mode 100644 arch/arm/boot/dts/armv7-m.dtsi
create mode 100644 arch/arm/boot/dts/efm32gg-dk3750.dts
create mode 100644 arch/arm/boot/dts/efm32gg.dtsi
create mode 100644 arch/arm/configs/efm32_defconfig
create mode 100644 arch/arm/mach-efm32/Makefile
create mode 100644 arch/arm/mach-efm32/Makefile.boot
create mode 100644 arch/arm/mach-efm32/dtmachine.c
create mode 100644 arch/arm/mach-efm32/include/mach/entry-macro.S
create mode 100644 arch/arm/mach-efm32/include/mach/timex.h
--
Pengutronix e.K. | Uwe Kleine-K?nig |
Industrial Linux Solutions | http://www.pengutronix.de/ |
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 2/2] ARM: device trees for Energy Micro's EFM32 Cortex-M3 SoCs
@ 2013-12-16 19:11 Uwe Kleine-König
0 siblings, 0 replies; 8+ messages in thread
From: Uwe Kleine-König @ 2013-12-16 19:11 UTC (permalink / raw)
To: linux-arm-kernel
Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
---
arch/arm/boot/dts/Makefile | 1 +
arch/arm/boot/dts/armv7-m.dtsi | 18 ++++
arch/arm/boot/dts/efm32gg-dk3750.dts | 86 ++++++++++++++++++
arch/arm/boot/dts/efm32gg.dtsi | 172 +++++++++++++++++++++++++++++++++++
4 files changed, 277 insertions(+)
create mode 100644 arch/arm/boot/dts/armv7-m.dtsi
create mode 100644 arch/arm/boot/dts/efm32gg-dk3750.dts
create mode 100644 arch/arm/boot/dts/efm32gg.dtsi
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index d57c1a6..e4a0bea 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -52,6 +52,7 @@ dtb-$(CONFIG_ARCH_DOVE) += dove-cm-a510.dtb \
dove-d2plug.dtb \
dove-d3plug.dtb \
dove-dove-db.dtb
+dtb-$(CONFIG_ARCH_EFM32) += efm32gg-dk3750.dtb
dtb-$(CONFIG_ARCH_EXYNOS) += exynos4210-origen.dtb \
exynos4210-smdkv310.dtb \
exynos4210-trats.dtb \
diff --git a/arch/arm/boot/dts/armv7-m.dtsi b/arch/arm/boot/dts/armv7-m.dtsi
new file mode 100644
index 0000000..5a660d0
--- /dev/null
+++ b/arch/arm/boot/dts/armv7-m.dtsi
@@ -0,0 +1,18 @@
+#include "skeleton.dtsi"
+
+/ {
+ nvic: nv-interrupt-controller {
+ compatible = "arm,armv7m-nvic";
+ interrupt-controller;
+ #interrupt-cells = <1>;
+ reg = <0xe000e100 0xc00>;
+ };
+
+ soc {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "simple-bus";
+ interrupt-parent = <&nvic>;
+ ranges;
+ };
+};
diff --git a/arch/arm/boot/dts/efm32gg-dk3750.dts b/arch/arm/boot/dts/efm32gg-dk3750.dts
new file mode 100644
index 0000000..aa5c0f6
--- /dev/null
+++ b/arch/arm/boot/dts/efm32gg-dk3750.dts
@@ -0,0 +1,86 @@
+/*
+ * Device tree for EFM32GG-DK3750 development board.
+ *
+ * Documentation available from
+ * http://www.silabs.com/Support%20Documents/TechnicalDocs/efm32gg-dk3750-ug.pdf
+ */
+
+/dts-v1/;
+#include "efm32gg.dtsi"
+
+/ {
+ model = "Energy Micro Giant Gecko Development Kit";
+ compatible = "efm32,dk3750";
+
+ chosen {
+ bootargs = "console=ttyefm4,115200 init=/linuxrc ignore_loglevel ihash_entries=64 dhash_entries=64 earlyprintk uclinux.physaddr=0x8c400000 root=/dev/mtdblock0";
+ };
+
+ memory {
+ reg = <0x88000000 0x400000>;
+ };
+
+ soc {
+ adc at 40002000 {
+ status = "ok";
+ };
+
+ i2c at 4000a000 {
+ location = <3>;
+ status = "ok";
+
+ temp at 48 {
+ compatible = "st,stds75";
+ reg = <0x48>;
+ };
+
+ eeprom at 50 {
+ compatible = "microchip,24c02";
+ reg = <0x50>;
+ pagesize = <16>;
+ };
+ };
+
+ spi0: spi at 4000c000 { /* USART0 */
+ cs-gpios = <&gpio 68 1>; // E4
+ location = <1>;
+ status = "ok";
+
+ microsd at 0 {
+ compatible = "mmc-spi-slot";
+ spi-max-frequency = <100000>;
+ voltage-ranges = <3200 3400>;
+ broken-cd;
+ reg = <0>;
+ };
+ };
+
+ spi1: spi at 4000c400 { /* USART1 */
+ cs-gpios = <&gpio 51 1>; // D3
+ location = <1>;
+ status = "ok";
+
+ ks8851 at 0 {
+ compatible = "ks8851";
+ spi-max-frequency = <6000000>;
+ reg = <0>;
+ interrupt-parent = <&boardfpga>;
+ interrupts = <4>;
+ };
+ };
+
+ uart4: uart at 4000e400 { /* UART1 */
+ location = <2>;
+ status = "ok";
+ };
+
+ boardfpga: boardfpga {
+ compatible = "efm32board";
+ reg = <0x80000000 0x400>;
+ irq-gpios = <&gpio 64 1>;
+ interrupt-controller;
+ #interrupt-cells = <1>;
+ status = "ok";
+ };
+ };
+};
diff --git a/arch/arm/boot/dts/efm32gg.dtsi b/arch/arm/boot/dts/efm32gg.dtsi
new file mode 100644
index 0000000..a342ab0
--- /dev/null
+++ b/arch/arm/boot/dts/efm32gg.dtsi
@@ -0,0 +1,172 @@
+/*
+ * Device tree for Energy Micro EFM32 Giant Gecko SoC.
+ *
+ * Documentation available from
+ * http://www.silabs.com/Support%20Documents/TechnicalDocs/EFM32GG-RM.pdf
+ */
+#include "armv7-m.dtsi"
+#include "dt-bindings/clock/efm32-cmu.h"
+
+/ {
+ aliases {
+ i2c0 = &i2c0;
+ i2c1 = &i2c1;
+ serial0 = &uart0;
+ serial1 = &uart1;
+ serial2 = &uart2;
+ serial3 = &uart3;
+ serial4 = &uart4;
+ spi0 = &spi0;
+ spi1 = &spi1;
+ spi2 = &spi2;
+ };
+
+ soc {
+ adc: adc at 40002000 {
+ compatible = "efm32,adc";
+ reg = <0x40002000 0x400>;
+ interrupts = <7>;
+ clocks = <&cmu clk_HFPERCLKADC0>;
+ status = "disabled";
+ };
+
+ gpio: gpio at 40006000 {
+ compatible = "efm32,gpio";
+ reg = <0x40006000 0x1000>;
+ interrupts = <1 11>;
+ gpio-controller;
+ #gpio-cells = <2>;
+ interrupt-controller;
+ #interrupt-cells = <1>;
+ clocks = <&cmu clk_HFPERCLKGPIO>;
+ status = "ok";
+ };
+
+ i2c0: i2c at 4000a000 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ compatible = "efm32,i2c";
+ reg = <0x4000a000 0x400>;
+ interrupts = <9>;
+ clocks = <&cmu clk_HFPERCLKI2C0>;
+ clock-frequency = <100000>;
+ status = "disabled";
+ };
+
+ i2c1: i2c at 4000a400 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ compatible = "efm32,i2c";
+ reg = <0x4000a400 0x400>;
+ interrupts = <10>;
+ clocks = <&cmu clk_HFPERCLKI2C1>;
+ clock-frequency = <100000>;
+ status = "disabled";
+ };
+
+ spi0: spi at 4000c000 { /* USART0 */
+ #address-cells = <1>;
+ #size-cells = <0>;
+ compatible = "efm32,spi";
+ reg = <0x4000c000 0x400>;
+ interrupts = <3 4>;
+ clocks = <&cmu clk_HFPERCLKUSART0>;
+ status = "disabled";
+ };
+
+ spi1: spi at 4000c400 { /* USART1 */
+ #address-cells = <1>;
+ #size-cells = <0>;
+ compatible = "efm32,spi";
+ reg = <0x4000c400 0x400>;
+ interrupts = <15 16>;
+ clocks = <&cmu clk_HFPERCLKUSART1>;
+ status = "disabled";
+ };
+
+ spi2: spi at 40x4000c800 { /* USART2 */
+ #address-cells = <1>;
+ #size-cells = <0>;
+ compatible = "efm32,spi";
+ reg = <0x4000c800 0x400>;
+ interrupts = <18 19>;
+ clocks = <&cmu clk_HFPERCLKUSART2>;
+ status = "disabled";
+ };
+
+ uart0: uart at 4000c000 { /* USART0 */
+ compatible = "efm32,uart";
+ reg = <0x4000c000 0x400>;
+ interrupts = <3 4>;
+ clocks = <&cmu clk_HFPERCLKUSART0>;
+ status = "disabled";
+ };
+
+ uart1: uart at 4000c400 { /* USART1 */
+ compatible = "efm32,uart";
+ reg = <0x4000c400 0x400>;
+ interrupts = <15 16>;
+ clocks = <&cmu clk_HFPERCLKUSART1>;
+ status = "disabled";
+ };
+
+ uart2: uart at 40x4000c800 { /* USART2 */
+ compatible = "efm32,uart";
+ reg = <0x4000c800 0x400>;
+ interrupts = <18 19>;
+ clocks = <&cmu clk_HFPERCLKUSART2>;
+ status = "disabled";
+ };
+
+ uart3: uart at 4000e000 { /* UART0 */
+ compatible = "efm32,uart";
+ reg = <0x4000e000 0x400>;
+ interrupts = <20 21>;
+ clocks = <&cmu clk_HFPERCLKUART0>;
+ status = "disabled";
+ };
+
+ uart4: uart at 4000e400 { /* UART1 */
+ compatible = "efm32,uart";
+ reg = <0x4000e400 0x400>;
+ interrupts = <22 23>;
+ clocks = <&cmu clk_HFPERCLKUART1>;
+ status = "disabled";
+ };
+
+ timer0: timer at 40010000 {
+ compatible = "efm32,timer";
+ reg = <0x40010000 0x400>;
+ interrupts = <2>;
+ clocks = <&cmu clk_HFPERCLKTIMER0>;
+ };
+
+ timer1: timer at 40010400 {
+ compatible = "efm32,timer";
+ reg = <0x40010400 0x400>;
+ interrupts = <12>;
+ clocks = <&cmu clk_HFPERCLKTIMER1>;
+ };
+
+ timer2: timer at 40010800 {
+ compatible = "efm32,timer";
+ reg = <0x40010800 0x400>;
+ interrupts = <13>;
+ clocks = <&cmu clk_HFPERCLKTIMER2>;
+ };
+
+ timer3: timer at 40010c00 {
+ compatible = "efm32,timer";
+ reg = <0x40010c00 0x400>;
+ interrupts = <14>;
+ clocks = <&cmu clk_HFPERCLKTIMER3>;
+ };
+
+ cmu: cmu at 400c8000 {
+ compatible = "efm32gg,cmu";
+ reg = <0x400c8000 0x400>;
+ interrupts = <32>;
+ #clock-cells = <1>;
+ };
+ };
+};
--
1.8.4.4
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 2/2] ARM: device trees for Energy Micro's EFM32 Cortex-M3 SoCs
2013-12-16 19:09 [GIT PULL] Support for efm32 Uwe Kleine-König
@ 2013-12-16 19:12 ` Uwe Kleine-König
2013-12-17 11:37 ` Richard Cochran
2013-12-19 22:45 ` [GIT PULL] Support for efm32 Kevin Hilman
1 sibling, 1 reply; 8+ messages in thread
From: Uwe Kleine-König @ 2013-12-16 19:12 UTC (permalink / raw)
To: linux-arm-kernel
Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
---
arch/arm/boot/dts/Makefile | 1 +
arch/arm/boot/dts/armv7-m.dtsi | 18 ++++
arch/arm/boot/dts/efm32gg-dk3750.dts | 86 ++++++++++++++++++
arch/arm/boot/dts/efm32gg.dtsi | 172 +++++++++++++++++++++++++++++++++++
4 files changed, 277 insertions(+)
create mode 100644 arch/arm/boot/dts/armv7-m.dtsi
create mode 100644 arch/arm/boot/dts/efm32gg-dk3750.dts
create mode 100644 arch/arm/boot/dts/efm32gg.dtsi
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index d57c1a6..e4a0bea 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -52,6 +52,7 @@ dtb-$(CONFIG_ARCH_DOVE) += dove-cm-a510.dtb \
dove-d2plug.dtb \
dove-d3plug.dtb \
dove-dove-db.dtb
+dtb-$(CONFIG_ARCH_EFM32) += efm32gg-dk3750.dtb
dtb-$(CONFIG_ARCH_EXYNOS) += exynos4210-origen.dtb \
exynos4210-smdkv310.dtb \
exynos4210-trats.dtb \
diff --git a/arch/arm/boot/dts/armv7-m.dtsi b/arch/arm/boot/dts/armv7-m.dtsi
new file mode 100644
index 0000000..5a660d0
--- /dev/null
+++ b/arch/arm/boot/dts/armv7-m.dtsi
@@ -0,0 +1,18 @@
+#include "skeleton.dtsi"
+
+/ {
+ nvic: nv-interrupt-controller {
+ compatible = "arm,armv7m-nvic";
+ interrupt-controller;
+ #interrupt-cells = <1>;
+ reg = <0xe000e100 0xc00>;
+ };
+
+ soc {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "simple-bus";
+ interrupt-parent = <&nvic>;
+ ranges;
+ };
+};
diff --git a/arch/arm/boot/dts/efm32gg-dk3750.dts b/arch/arm/boot/dts/efm32gg-dk3750.dts
new file mode 100644
index 0000000..aa5c0f6
--- /dev/null
+++ b/arch/arm/boot/dts/efm32gg-dk3750.dts
@@ -0,0 +1,86 @@
+/*
+ * Device tree for EFM32GG-DK3750 development board.
+ *
+ * Documentation available from
+ * http://www.silabs.com/Support%20Documents/TechnicalDocs/efm32gg-dk3750-ug.pdf
+ */
+
+/dts-v1/;
+#include "efm32gg.dtsi"
+
+/ {
+ model = "Energy Micro Giant Gecko Development Kit";
+ compatible = "efm32,dk3750";
+
+ chosen {
+ bootargs = "console=ttyefm4,115200 init=/linuxrc ignore_loglevel ihash_entries=64 dhash_entries=64 earlyprintk uclinux.physaddr=0x8c400000 root=/dev/mtdblock0";
+ };
+
+ memory {
+ reg = <0x88000000 0x400000>;
+ };
+
+ soc {
+ adc at 40002000 {
+ status = "ok";
+ };
+
+ i2c at 4000a000 {
+ location = <3>;
+ status = "ok";
+
+ temp at 48 {
+ compatible = "st,stds75";
+ reg = <0x48>;
+ };
+
+ eeprom at 50 {
+ compatible = "microchip,24c02";
+ reg = <0x50>;
+ pagesize = <16>;
+ };
+ };
+
+ spi0: spi at 4000c000 { /* USART0 */
+ cs-gpios = <&gpio 68 1>; // E4
+ location = <1>;
+ status = "ok";
+
+ microsd at 0 {
+ compatible = "mmc-spi-slot";
+ spi-max-frequency = <100000>;
+ voltage-ranges = <3200 3400>;
+ broken-cd;
+ reg = <0>;
+ };
+ };
+
+ spi1: spi at 4000c400 { /* USART1 */
+ cs-gpios = <&gpio 51 1>; // D3
+ location = <1>;
+ status = "ok";
+
+ ks8851 at 0 {
+ compatible = "ks8851";
+ spi-max-frequency = <6000000>;
+ reg = <0>;
+ interrupt-parent = <&boardfpga>;
+ interrupts = <4>;
+ };
+ };
+
+ uart4: uart at 4000e400 { /* UART1 */
+ location = <2>;
+ status = "ok";
+ };
+
+ boardfpga: boardfpga {
+ compatible = "efm32board";
+ reg = <0x80000000 0x400>;
+ irq-gpios = <&gpio 64 1>;
+ interrupt-controller;
+ #interrupt-cells = <1>;
+ status = "ok";
+ };
+ };
+};
diff --git a/arch/arm/boot/dts/efm32gg.dtsi b/arch/arm/boot/dts/efm32gg.dtsi
new file mode 100644
index 0000000..a342ab0
--- /dev/null
+++ b/arch/arm/boot/dts/efm32gg.dtsi
@@ -0,0 +1,172 @@
+/*
+ * Device tree for Energy Micro EFM32 Giant Gecko SoC.
+ *
+ * Documentation available from
+ * http://www.silabs.com/Support%20Documents/TechnicalDocs/EFM32GG-RM.pdf
+ */
+#include "armv7-m.dtsi"
+#include "dt-bindings/clock/efm32-cmu.h"
+
+/ {
+ aliases {
+ i2c0 = &i2c0;
+ i2c1 = &i2c1;
+ serial0 = &uart0;
+ serial1 = &uart1;
+ serial2 = &uart2;
+ serial3 = &uart3;
+ serial4 = &uart4;
+ spi0 = &spi0;
+ spi1 = &spi1;
+ spi2 = &spi2;
+ };
+
+ soc {
+ adc: adc at 40002000 {
+ compatible = "efm32,adc";
+ reg = <0x40002000 0x400>;
+ interrupts = <7>;
+ clocks = <&cmu clk_HFPERCLKADC0>;
+ status = "disabled";
+ };
+
+ gpio: gpio at 40006000 {
+ compatible = "efm32,gpio";
+ reg = <0x40006000 0x1000>;
+ interrupts = <1 11>;
+ gpio-controller;
+ #gpio-cells = <2>;
+ interrupt-controller;
+ #interrupt-cells = <1>;
+ clocks = <&cmu clk_HFPERCLKGPIO>;
+ status = "ok";
+ };
+
+ i2c0: i2c at 4000a000 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ compatible = "efm32,i2c";
+ reg = <0x4000a000 0x400>;
+ interrupts = <9>;
+ clocks = <&cmu clk_HFPERCLKI2C0>;
+ clock-frequency = <100000>;
+ status = "disabled";
+ };
+
+ i2c1: i2c at 4000a400 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ compatible = "efm32,i2c";
+ reg = <0x4000a400 0x400>;
+ interrupts = <10>;
+ clocks = <&cmu clk_HFPERCLKI2C1>;
+ clock-frequency = <100000>;
+ status = "disabled";
+ };
+
+ spi0: spi at 4000c000 { /* USART0 */
+ #address-cells = <1>;
+ #size-cells = <0>;
+ compatible = "efm32,spi";
+ reg = <0x4000c000 0x400>;
+ interrupts = <3 4>;
+ clocks = <&cmu clk_HFPERCLKUSART0>;
+ status = "disabled";
+ };
+
+ spi1: spi at 4000c400 { /* USART1 */
+ #address-cells = <1>;
+ #size-cells = <0>;
+ compatible = "efm32,spi";
+ reg = <0x4000c400 0x400>;
+ interrupts = <15 16>;
+ clocks = <&cmu clk_HFPERCLKUSART1>;
+ status = "disabled";
+ };
+
+ spi2: spi at 40x4000c800 { /* USART2 */
+ #address-cells = <1>;
+ #size-cells = <0>;
+ compatible = "efm32,spi";
+ reg = <0x4000c800 0x400>;
+ interrupts = <18 19>;
+ clocks = <&cmu clk_HFPERCLKUSART2>;
+ status = "disabled";
+ };
+
+ uart0: uart at 4000c000 { /* USART0 */
+ compatible = "efm32,uart";
+ reg = <0x4000c000 0x400>;
+ interrupts = <3 4>;
+ clocks = <&cmu clk_HFPERCLKUSART0>;
+ status = "disabled";
+ };
+
+ uart1: uart at 4000c400 { /* USART1 */
+ compatible = "efm32,uart";
+ reg = <0x4000c400 0x400>;
+ interrupts = <15 16>;
+ clocks = <&cmu clk_HFPERCLKUSART1>;
+ status = "disabled";
+ };
+
+ uart2: uart at 40x4000c800 { /* USART2 */
+ compatible = "efm32,uart";
+ reg = <0x4000c800 0x400>;
+ interrupts = <18 19>;
+ clocks = <&cmu clk_HFPERCLKUSART2>;
+ status = "disabled";
+ };
+
+ uart3: uart at 4000e000 { /* UART0 */
+ compatible = "efm32,uart";
+ reg = <0x4000e000 0x400>;
+ interrupts = <20 21>;
+ clocks = <&cmu clk_HFPERCLKUART0>;
+ status = "disabled";
+ };
+
+ uart4: uart at 4000e400 { /* UART1 */
+ compatible = "efm32,uart";
+ reg = <0x4000e400 0x400>;
+ interrupts = <22 23>;
+ clocks = <&cmu clk_HFPERCLKUART1>;
+ status = "disabled";
+ };
+
+ timer0: timer at 40010000 {
+ compatible = "efm32,timer";
+ reg = <0x40010000 0x400>;
+ interrupts = <2>;
+ clocks = <&cmu clk_HFPERCLKTIMER0>;
+ };
+
+ timer1: timer at 40010400 {
+ compatible = "efm32,timer";
+ reg = <0x40010400 0x400>;
+ interrupts = <12>;
+ clocks = <&cmu clk_HFPERCLKTIMER1>;
+ };
+
+ timer2: timer at 40010800 {
+ compatible = "efm32,timer";
+ reg = <0x40010800 0x400>;
+ interrupts = <13>;
+ clocks = <&cmu clk_HFPERCLKTIMER2>;
+ };
+
+ timer3: timer at 40010c00 {
+ compatible = "efm32,timer";
+ reg = <0x40010c00 0x400>;
+ interrupts = <14>;
+ clocks = <&cmu clk_HFPERCLKTIMER3>;
+ };
+
+ cmu: cmu at 400c8000 {
+ compatible = "efm32gg,cmu";
+ reg = <0x400c8000 0x400>;
+ interrupts = <32>;
+ #clock-cells = <1>;
+ };
+ };
+};
--
1.8.4.4
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 2/2] ARM: device trees for Energy Micro's EFM32 Cortex-M3 SoCs
2013-12-16 19:12 ` [PATCH 2/2] ARM: device trees for Energy Micro's EFM32 Cortex-M3 SoCs Uwe Kleine-König
@ 2013-12-17 11:37 ` Richard Cochran
2013-12-17 13:17 ` Uwe Kleine-König
0 siblings, 1 reply; 8+ messages in thread
From: Richard Cochran @ 2013-12-17 11:37 UTC (permalink / raw)
To: linux-arm-kernel
On Mon, Dec 16, 2013 at 08:12:03PM +0100, Uwe Kleine-K?nig wrote:
> + cmu: cmu at 400c8000 {
> + compatible = "efm32gg,cmu";
I was able to run this on the EFM32LG without problems. Are you sure
this CMU node is specific to the GG, or can it be shared?
Thanks,
Richard
> + reg = <0x400c8000 0x400>;
> + interrupts = <32>;
> + #clock-cells = <1>;
> + };
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 2/2] ARM: device trees for Energy Micro's EFM32 Cortex-M3 SoCs
2013-12-17 11:37 ` Richard Cochran
@ 2013-12-17 13:17 ` Uwe Kleine-König
2013-12-17 15:31 ` Richard Cochran
0 siblings, 1 reply; 8+ messages in thread
From: Uwe Kleine-König @ 2013-12-17 13:17 UTC (permalink / raw)
To: linux-arm-kernel
On Tue, Dec 17, 2013 at 12:37:51PM +0100, Richard Cochran wrote:
> On Mon, Dec 16, 2013 at 08:12:03PM +0100, Uwe Kleine-K?nig wrote:
>
> > + cmu: cmu at 400c8000 {
> > + compatible = "efm32gg,cmu";
>
> I was able to run this on the EFM32LG without problems. Are you sure
> this CMU node is specific to the GG, or can it be shared?
I remember me being grumpy because I found some differences between the
GG and some other efm32 device. After looking again I cannot find the
problem. Maybe the LG is compatible but some other is not.
Can I assume your feedback as Tested-by:?
Best regards
Uwe
--
Pengutronix e.K. | Uwe Kleine-K?nig |
Industrial Linux Solutions | http://www.pengutronix.de/ |
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 2/2] ARM: device trees for Energy Micro's EFM32 Cortex-M3 SoCs
2013-12-17 13:17 ` Uwe Kleine-König
@ 2013-12-17 15:31 ` Richard Cochran
2013-12-17 16:16 ` Uwe Kleine-König
0 siblings, 1 reply; 8+ messages in thread
From: Richard Cochran @ 2013-12-17 15:31 UTC (permalink / raw)
To: linux-arm-kernel
On Tue, Dec 17, 2013 at 02:17:30PM +0100, Uwe Kleine-K?nig wrote:
> On Tue, Dec 17, 2013 at 12:37:51PM +0100, Richard Cochran wrote:
> > On Mon, Dec 16, 2013 at 08:12:03PM +0100, Uwe Kleine-K?nig wrote:
> >
> > > + cmu: cmu at 400c8000 {
> > > + compatible = "efm32gg,cmu";
> >
> > I was able to run this on the EFM32LG without problems. Are you sure
> > this CMU node is specific to the GG, or can it be shared?
> I remember me being grumpy because I found some differences between the
> GG and some other efm32 device. After looking again I cannot find the
> problem. Maybe the LG is compatible but some other is not.
It looked like to me that the only differences are flash and ram
sizes, and presence or absence of peripherals, but I don't know all of
the many EM parts that well, just these two.
> Can I assume your feedback as Tested-by:?
Yes, by all means, please do.
Thanks,
Richard
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 2/2] ARM: device trees for Energy Micro's EFM32 Cortex-M3 SoCs
2013-12-17 15:31 ` Richard Cochran
@ 2013-12-17 16:16 ` Uwe Kleine-König
0 siblings, 0 replies; 8+ messages in thread
From: Uwe Kleine-König @ 2013-12-17 16:16 UTC (permalink / raw)
To: linux-arm-kernel
Hello Richard,
On Tue, Dec 17, 2013 at 04:31:38PM +0100, Richard Cochran wrote:
> On Tue, Dec 17, 2013 at 02:17:30PM +0100, Uwe Kleine-K?nig wrote:
> > On Tue, Dec 17, 2013 at 12:37:51PM +0100, Richard Cochran wrote:
> > > On Mon, Dec 16, 2013 at 08:12:03PM +0100, Uwe Kleine-K?nig wrote:
> > >
> > > > + cmu: cmu at 400c8000 {
> > > > + compatible = "efm32gg,cmu";
> > >
> > > I was able to run this on the EFM32LG without problems. Are you sure
> > > this CMU node is specific to the GG, or can it be shared?
> > I remember me being grumpy because I found some differences between the
> > GG and some other efm32 device. After looking again I cannot find the
> > problem. Maybe the LG is compatible but some other is not.
>
> It looked like to me that the only differences are flash and ram
> sizes, and presence or absence of peripherals, but I don't know all of
> the many EM parts that well, just these two.
I asked my contact at Silabs, and he told that LG, GG and WG are
similar. Looking at the reference manual of the Gecko Series you can see
that for example the bits in CMU_HFPERCLKEN0 are different.
A tool to judge about differences of the different SoCs would be nice.
> > Can I assume your feedback as Tested-by:?
>
> Yes, by all means, please do.
Thanks
Uwe
--
Pengutronix e.K. | Uwe Kleine-K?nig |
Industrial Linux Solutions | http://www.pengutronix.de/ |
^ permalink raw reply [flat|nested] 8+ messages in thread
* [GIT PULL] Support for efm32
2013-12-16 19:09 [GIT PULL] Support for efm32 Uwe Kleine-König
2013-12-16 19:12 ` [PATCH 2/2] ARM: device trees for Energy Micro's EFM32 Cortex-M3 SoCs Uwe Kleine-König
@ 2013-12-19 22:45 ` Kevin Hilman
1 sibling, 0 replies; 8+ messages in thread
From: Kevin Hilman @ 2013-12-19 22:45 UTC (permalink / raw)
To: linux-arm-kernel
Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de> writes:
> The following changes since commit 319e2e3f63c348a9b66db4667efa73178e18b17d:
>
> Linux 3.13-rc4 (2013-12-15 12:31:33 -0800)
>
> are available in the git repository at:
>
> git://git.pengutronix.de/git/ukl/linux.git tags/efm32
>
> for you to fetch changes up to ef43eff3447f30b4a3cfc61813902c2e57c20245:
>
> ARM: device trees for Energy Micro's EFM32 Cortex-M3 SoCs (2013-12-16 17:51:34 +0100)
>
> ----------------------------------------------------------------
> These two commits add preliminary support for Energy Micro (now Silicon Labs)
> Giant Gecko SoCs. They have a Cortex-M3 core, and so are Thumb2 only and don't
> feature an MMU. With these changes merged there is no additional code needed
> under arch/arm to run Linux on such a SoC.
> ----------------------------------------------------------------
>
> Compared to the patch sent a few days ago (v5, Message-Id:
> 1386694516-5876-1-git-send-email-u.kleine-koenig at pengutronix.de), I let
> ARCH_EFM32 temporarily select CLKSRC_MMIO until 4ff3774 (clocksource:
> time-efm32: Select CLKSRC_MMIO) hits mainline.
OK.
> Also I just noticed that
> the clk support got in v3.13-rc1, so the device tree is buildable now.
> This patch adding the device tree sources wasn't sent yet in it's
> current form, so I will send it as reply to this mail. I hope it's not
> controversal, so the two patches can go in together.
Looks straight foward to me.
> I choosed to base these changes on top of a more recent tree than
> armsoc/next/soc currently is based on (v3.13-rc1 vs v3.13-rc4) because
> to successfully build for ARM v7-M commit 5091333 (ARM: 7895/1: signal:
> fix armv7-m build issue in sigreturn_codes.S) which is included in
> v3.13-rc3 (but not earlier).
Yeah, we prefer using older -rcs where possible, but when you have a
good reason and describe it thoroughly (like you did), that's perfectly
fine.
Thanks for the detailed description.
Pulled into next/soc,
Kevin
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2013-12-19 22:45 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-12-16 19:09 [GIT PULL] Support for efm32 Uwe Kleine-König
2013-12-16 19:12 ` [PATCH 2/2] ARM: device trees for Energy Micro's EFM32 Cortex-M3 SoCs Uwe Kleine-König
2013-12-17 11:37 ` Richard Cochran
2013-12-17 13:17 ` Uwe Kleine-König
2013-12-17 15:31 ` Richard Cochran
2013-12-17 16:16 ` Uwe Kleine-König
2013-12-19 22:45 ` [GIT PULL] Support for efm32 Kevin Hilman
-- strict thread matches above, loose matches on Subject: below --
2013-12-16 19:11 [PATCH 2/2] ARM: device trees for Energy Micro's EFM32 Cortex-M3 SoCs Uwe Kleine-König
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).