[PATCH 03/14] at91sam9x5ek: Add preliminary device tree support
Andrey Smirnov
andrew.smirnov at gmail.com
Thu Mar 23 06:23:47 PDT 2017
Add basic code to build and pass board device tree blob to Barebox
initialization code.
Signed-off-by: Andrey Smirnov <andrew.smirnov at gmail.com>
---
arch/arm/boards/at91sam9x5ek/lowlevel.c | 7 ++++++-
arch/arm/configs/at91sam9x5ek_defconfig | 2 ++
arch/arm/dts/Makefile | 2 ++
arch/arm/dts/at91sam9x5ek.dts | 9 +++++++++
arch/arm/mach-at91/Kconfig | 1 +
5 files changed, 20 insertions(+), 1 deletion(-)
create mode 100644 arch/arm/dts/at91sam9x5ek.dts
diff --git a/arch/arm/boards/at91sam9x5ek/lowlevel.c b/arch/arm/boards/at91sam9x5ek/lowlevel.c
index 9b5c926..acf80d7 100644
--- a/arch/arm/boards/at91sam9x5ek/lowlevel.c
+++ b/arch/arm/boards/at91sam9x5ek/lowlevel.c
@@ -6,11 +6,16 @@
#include <io.h>
#include <debug_ll.h>
+extern char __dtb_at91sam9x5ek_start[];
ENTRY_FUNCTION(start_at91sam9x5ek, r0, r1, r2)
{
+ void *fdt;
+
arm_cpu_lowlevel_init();
arm_setup_stack(AT91SAM9X5_SRAM_BASE + AT91SAM9X5_SRAM_SIZE - 16);
- barebox_arm_entry(AT91_CHIPSELECT_1, at91sam9x5_get_ddram_size(), NULL);
+ fdt = __dtb_at91sam9x5ek_start - get_runtime_offset();
+
+ barebox_arm_entry(AT91_CHIPSELECT_1, at91sam9x5_get_ddram_size(), fdt);
}
diff --git a/arch/arm/configs/at91sam9x5ek_defconfig b/arch/arm/configs/at91sam9x5ek_defconfig
index d6f18b2..0691145 100644
--- a/arch/arm/configs/at91sam9x5ek_defconfig
+++ b/arch/arm/configs/at91sam9x5ek_defconfig
@@ -51,6 +51,7 @@ CONFIG_CMD_OFTREE=y
CONFIG_NET=y
CONFIG_NET_NFS=y
CONFIG_NET_NETCONSOLE=y
+CONFIG_OF_BAREBOX_DRIVERS=y
CONFIG_DRIVER_NET_MACB=y
CONFIG_NET_USB=y
CONFIG_NET_USB_ASIX=y
@@ -74,6 +75,7 @@ CONFIG_USB_STORAGE=y
CONFIG_MCI=y
CONFIG_MCI_STARTUP=y
CONFIG_MCI_ATMEL=y
+CONFIG_MFD_SYSCON=y
CONFIG_LED=y
CONFIG_LED_GPIO=y
CONFIG_LED_TRIGGERS=y
diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
index 70359d8..c9a0946 100644
--- a/arch/arm/dts/Makefile
+++ b/arch/arm/dts/Makefile
@@ -89,5 +89,7 @@ pbl-dtb-$(CONFIG_MACH_ZII_VF610_DEV) += \
vf610-zii-spu3-rev-a.dtb.o \
vf610-zii-scu4-aib-rev-c.dtb.o
+pbl-dtb-$(CONFIG_MACH_AT91SAM9X5EK) += at91sam9x5ek.dtb.o
+
clean-files := *.dtb *.dtb.S .*.dtc .*.pre .*.dts *.dtb.lzo
diff --git a/arch/arm/dts/at91sam9x5ek.dts b/arch/arm/dts/at91sam9x5ek.dts
new file mode 100644
index 0000000..db1bd67
--- /dev/null
+++ b/arch/arm/dts/at91sam9x5ek.dts
@@ -0,0 +1,9 @@
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/pinctrl/at91.h>
+
+#include <arm/at91sam9x5.dtsi>
+#include <arm/at91sam9x5_lcd.dtsi>
+#include <arm/at91sam9x5dm.dtsi>
+#include <arm/at91sam9x5ek.dtsi>
diff --git a/arch/arm/mach-at91/Kconfig b/arch/arm/mach-at91/Kconfig
index 67238f8..2870bf3 100644
--- a/arch/arm/mach-at91/Kconfig
+++ b/arch/arm/mach-at91/Kconfig
@@ -180,6 +180,7 @@ config ARCH_AT91SAM9G45
config ARCH_AT91SAM9X5
bool "AT91SAM9X5"
select SOC_AT91SAM9X5
+ select OFDEVICE
config ARCH_AT91SAM9N12
bool "AT91SAM9N12"
--
2.9.3
More information about the barebox
mailing list