--- /dev/null
+CONFIG_BEEP=y
+CONFIG_FEATURE_BEEP_FREQ=440
+CONFIG_FEATURE_BEEP_LENGTH_MS=250
size = 320K
}
partition uimage {
- image = "uImage"
+ image = "uImage.da850-lego-ev3"
size = 3M
offset = 0x50000
}
+CONFIG_ARCH_DAVINCI_DM644x=n
+CONFIG_ARCH_DAVINCI_DM355=n
+CONFIG_ARCH_DAVINCI_DM646x=n
+CONFIG_ARCH_DAVINCI_DA830=n
+CONFIG_ARCH_DAVINCI_DM365=n
+CONFIG_MACH_SFFSDR=n
+CONFIG_MACH_NEUROS_OSD2=n
+CONFIG_MACH_DM355_LEOPARD=n
+CONFIG_MACH_MITYOMAPL138=n
+CONFIG_MACH_OMAPL138_HAWKBOARD=n
+CONFIG_MACH_DAVINCI_DA850_EVM=n
+CONFIG_ATA=n
+CONFIG_MTD=y
+CONFIG_MTD_BLOCK=y
+CONFIG_MTD_M25P80=y
+CONFIG_MTD_SPI_NOR=y
+CONFIG_MTD_UBI=y
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_COUNT=1
CONFIG_BLK_DEV_RAM_SIZE=32768
+CONFIG_INPUT_EVDEV=y
+CONFIG_INPUT_PWM_BEEPER=y
+CONFIG_SPI_DAVINCI=y
+CONFIG_PINCTRL_DA850_PUPD=y
+CONFIG_V4L_PLATFORM_DRIVERS=n
+CONFIG_SOUND=n
+CONFIG_SND=n
+CONFIG_SND_SOC=n
+CONFIG_SND_EDMA_SOC=n
+CONFIG_SND_DAVINCI_SOC_MCASP=n
+CONFIG_SND_SOC_TLV320AIC3X=n
+CONFIG_SND_SIMPLE_CARD=n
+CONFIG_DAVINCI_WATCHDOG=y
+CONFIG_USB=y
+CONFIG_USB_OHCI_HCD=y
+CONFIG_USB_OHCI_HCD_DAVINCI=y
+CONFIG_USB_MUSB_HDRC=y
+CONFIG_USB_MUSB_GADGET=y
+CONFIG_USB_MUSB_DA8XX=y
+CONFIG_NOP_USB_XCEIV=y
+CONFIG_USB_GADGET=y
+CONFIG_LEDS_CLASS=y
+CONFIG_LEDS_GPIO=y
+CONFIG_LEDS_TRIGGER_MTD=y
+CONFIG_LEDS_TRIGGER_HEARTBEAT=y
+CONFIG_LEDS_TRIGGER_CPU=y
+CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
+CONFIG_RTC_DRV_OMAP=y
+CONFIG_IIO=y
+CONFIG_TI_ADS7950=y
+CONFIG_PWM_TIECAP=y
+CONFIG_PWM_TIEHRPWM=y
CONFIG_SQUASHFS=y
CONFIG_SQUASHFS_LZ4=y
CONFIG_SQUASHFS_LZO=y
--- /dev/null
+From 8a81ff173c5c9a0ab1df84fab17971dbcce8490a Mon Sep 17 00:00:00 2001
+From: David Lechner <david@lechnology.com>
+Date: Tue, 7 Feb 2017 13:22:07 -0600
+Subject: ARM: da850-lego-ev3: Add device tree node for A/DC
+
+This adds a node for the TI ADS7957 analog/digital converter on LEGO
+MINDSTORMS EV3 as well as a regulator node that is used by the A/DC node.
+
+Signed-off-by: David Lechner <david@lechnology.com>
+Signed-off-by: Sekhar Nori <nsekhar@ti.com>
+---
+ arch/arm/boot/dts/da850-lego-ev3.dts | 21 +++++++++++++++++++++
+ 1 file changed, 21 insertions(+)
+
+diff --git a/arch/arm/boot/dts/da850-lego-ev3.dts b/arch/arm/boot/dts/da850-lego-ev3.dts
+index 112ec92..0309537 100644
+--- a/arch/arm/boot/dts/da850-lego-ev3.dts
++++ b/arch/arm/boot/dts/da850-lego-ev3.dts
+@@ -139,6 +139,19 @@
+ enable-active-high;
+ regulator-boot-on;
+ };
++
++ /*
++ * This is a simple voltage divider on VCC5V to provide a 2.5V
++ * reference signal to the ADC.
++ */
++ adc_ref: regulator2 {
++ compatible = "regulator-fixed";
++ regulator-name = "adc ref";
++ regulator-min-microvolt = <2500000>;
++ regulator-max-microvolt = <2500000>;
++ regulator-boot-on;
++ vin-supply = <&vcc5v>;
++ };
+ };
+
+ &pmx_core {
+@@ -293,6 +306,14 @@
+ };
+ };
+ };
++
++ adc: adc@3 {
++ compatible = "ti,ads7957";
++ reg = <3>;
++ #io-channel-cells = <1>;
++ spi-max-frequency = <10000000>;
++ vref-supply = <&adc_ref>;
++ };
+ };
+
+ &gpio {
+--
+cgit v1.1
+
--- /dev/null
+From 7723d70bebd749ef24fef19db52d827c7fd7f858 Mon Sep 17 00:00:00 2001
+From: David Lechner <david@lechnology.com>
+Date: Tue, 7 Feb 2017 13:22:09 -0600
+Subject: ARM: da850-lego-ev3: Add device tree node for sound
+
+This adds a device tree node for sound on LEGO MINDSTORMS EV3. The EV3
+uses one of the SoC PWMs connected to an amplifier to create sound from
+a speaker.
+
+The PWM is passed through a low-pass filter, so it is actually possible
+to do PCM playback, but there is no existing driver, so just using
+pwm-beeper for now, since it is also a compatible mode of operation.
+
+Signed-off-by: David Lechner <david@lechnology.com>
+Signed-off-by: Sekhar Nori <nsekhar@ti.com>
+---
+ arch/arm/boot/dts/da850-lego-ev3.dts | 31 +++++++++++++++++++++++++++++++
+ 1 file changed, 31 insertions(+)
+
+diff --git a/arch/arm/boot/dts/da850-lego-ev3.dts b/arch/arm/boot/dts/da850-lego-ev3.dts
+index 0309537..c20580a 100644
+--- a/arch/arm/boot/dts/da850-lego-ev3.dts
++++ b/arch/arm/boot/dts/da850-lego-ev3.dts
+@@ -123,6 +123,14 @@
+ pinctrl-0 = <&system_power_pin>;
+ };
+
++ sound {
++ compatible = "pwm-beeper";
++ pinctrl-names = "default";
++ pinctrl-0 = <&ehrpwm0b_pins>;
++ pwms = <&ehrpwm0 1 1000000 0>;
++ amp-supply = <&>;
++ };
++
+ /*
+ * This is a 5V current limiting regulator that is shared by USB,
+ * the sensor (input) ports, the motor (output) ports and the A/DC.
+@@ -152,6 +160,18 @@
+ regulator-boot-on;
+ vin-supply = <&vcc5v>;
+ };
++
++ /*
++ * This is the amplifier for the speaker.
++ */
++ amp: regulator3 {
++ pinctrl-names = "default";
++ pinctrl-0 = <&_pins>;
++ compatible = "regulator-fixed";
++ regulator-name = "amp";
++ gpio = <&gpio 111 GPIO_ACTIVE_HIGH>;
++ enable-active-high;
++ };
+ };
+
+ &pmx_core {
+@@ -208,6 +228,13 @@
+ 0x4c 0x00008000 0x0000f000
+ >;
+ };
++
++ amp_pins: pinmux_amp_pins {
++ pinctrl-single,bits = <
++ /* GP6[15] */
++ 0x34 0x00000008 0x0000000f
++ >;
++ };
+ };
+
+ &pinconf {
+@@ -316,6 +343,10 @@
+ };
+ };
+
++&ehrpwm0 {
++ status = "okay";
++};
++
+ &gpio {
+ status = "okay";
+ };
+--
+cgit v1.1
+
GENIMAGE_CFG="${BOARD_DIR}/genimage.cfg"
GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp"
+ln -sf "uImage.da850-lego-ev3" "${BINARIES_DIR}/uImage"
+
rm -rf "${GENIMAGE_TMP}"
genimage \
- http://www.lego.com/en-us/mindstorms/products/ev3/31313-mindstorms-ev3/
- http://www.ti.com/product/am1808
-The buildroot configuration uses the Linux kernel of the ev3dev project.
-See:
-- https://github.com/ev3dev/ev3-kernel/
-- https://github.com/ev3dev/lego-linux-drivers/
-- http://www.ev3dev.org/
-
How it works
============
├── rootfs.squashfs
├── sdcard.img
├── u-boot.bin
- └── uImage
+ ├── uImage -> uImage.da850-lego-ev3
+ └── uImage.da850-lego-ev3
Installation
============
BR2_arm=y
BR2_arm926t=y
+# Build options
+BR2_GLOBAL_PATCH_DIR="board/lego/ev3/patches"
+
# system
BR2_TARGET_GENERIC_GETTY=y
BR2_TARGET_GENERIC_GETTY_PORT="ttyS1"
BR2_ROOTFS_POST_IMAGE_SCRIPT="board/lego/ev3/post-image.sh"
-# Linux headers same as kernel, a 4.4 series
-BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_4=y
+# Linux headers same as kernel, a 4.11 series
+BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_11=y
# Kernel
BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_GIT=y
-BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/ev3dev/ev3dev-kernel.git"
-BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="v4.4.19-15-ev3dev-ev3_1"
-BR2_LINUX_KERNEL_DEFCONFIG="ev3dev"
+BR2_LINUX_KERNEL_CUSTOM_VERSION=y
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.11"
+BR2_LINUX_KERNEL_DEFCONFIG="davinci_all"
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/lego/ev3/linux.fragment"
-BR2_LINUX_KERNEL_UIMAGE=y
-BR2_LINUX_KERNEL_EXT_EV3DEV_LINUX_DRIVERS=y
+BR2_LINUX_KERNEL_UIMAGE_LOADADDR="0xc0008000"
+BR2_LINUX_KERNEL_APPENDED_UIMAGE=y
+BR2_LINUX_KERNEL_INTREE_DTS_NAME="da850-lego-ev3"
+
+# Target packages
+BR2_PACKAGE_BUSYBOX_CONFIG_FRAGMENT_FILES="board/lego/ev3/busybox.fragment"
# filesystem
BR2_TARGET_ROOTFS_EXT2=y