Skip to contentSkip to conversation

ARM: dts: Add LEGO MINDSTORMS EV3 dts

PATCH In review David Lechner 3 participants 5 messages Jan 12, 2017 – Jan 15, 2017

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH v3 1/1 ARM: dts: Add LEGO MINDSTORMS EV3 dts

This adds a device tree definition file for LEGO MINDSTORMS EV3.

What is working:

* Pin muxing
* Pinconf
* GPIOs
* MicroSD card reader
* UART on input port 1
* Buttons
* LEDs
* Poweroff/reset
* Flash memory
* EEPROM
* USB host port
* USB peripheral port

What is not working/to be added later:

* Speaker - have patch submitted to get pwm-beeper working - maybe someday it will have a real sound driver that uses PRU
* A/DC chip - have driver submitted and accepted - waiting for ack on device tree bindings
* Display - waiting for "simple DRM" to be mainlined
* Bluetooth - needs new driver for sequencing power/enable/clock
* Input and output ports - need some sort of new phy or extcon driver as well as PRU UART and PRU I2C drivers
* Battery indication - needs new power supply driver

Note on flash partitions:

These partitions are based on the official EV3 firmware from LEGO. It is expected that most users of the mainline kernel on EV3 will be booting from an SD card while retaining the official firmware in the flash memory. Furthermore, the official firmware uses an ancient U-Boot (2009) that has no device tree support. So, it makes sense to have this partition table in the EV3 device tree file. In the unlikely case that anyone does create their own firmware image with different partitioning, they can use a modern U-Boot in their own firmware image that modifies the device tree with the custom partitions.

---

v3 changes:
* required defconfig patches have been picked up in linux-davinci tree, so this is the only patch left in the series
* Added aliases node for consistent naming of serial ports
* Added memory node
* Removed nodes that are not finalized yet
* Renamed button labels to match EV3 users manual

v2 changes:
* Dropped defconfig patches that have already been pick up
* Added some new defconfig patches
* Updated device tree file based on feedback and new available bindings
* Renamed file to include da850- prefix
* Changed button labels
* Fixed LED names
* Added beeper device for sound
* Added regulators for USB and A/DC
* Removed unused pinmux nodes
* Added pinconf for buttons
* Enabled pwms
* Used preferred bindings for flash partitions
* Added A/DC spi device
* Enabled USB

 arch/arm/boot/dts/Makefile           |   3 +-
 arch/arm/boot/dts/da850-lego-ev3.dts | 313 +++++++++++++++++++++++++++++++++++
 2 files changed, 315 insertions(+), 1 deletion(-)
 create mode 100644 arch/arm/boot/dts/da850-lego-ev3.dts
arch/arm/boot/dts/Makefile +2 -1
index 78a94b7..1a19e7a 100644
@@ -130,7 +130,8 @@ dtb-$(CONFIG_ARCH_CLPS711X) += \
 dtb-$(CONFIG_ARCH_DAVINCI) += \
 	da850-lcdk.dtb \
 	da850-enbw-cmc.dtb \
-	da850-evm.dtb
+	da850-evm.dtb \
+	da850-lego-ev3.dtb
 dtb-$(CONFIG_ARCH_DIGICOLOR) += \
 	cx92755_equinox.dtb
 dtb-$(CONFIG_ARCH_EFM32) += \
arch/arm/boot/dts/da850-lego-ev3.dts new file +313 -0

313 lines not on this page · raw message

Signature · 1 line
2.7.4
#1 lore raw
Quoted 41 lines · David Lechner

This adds a device tree definition file for LEGO MINDSTORMS EV3.

What is working:

* Pin muxing
* Pinconf
* GPIOs
* MicroSD card reader
* UART on input port 1
* Buttons
* LEDs
* Poweroff/reset
* Flash memory
* EEPROM
* USB host port
* USB peripheral port

What is not working/to be added later:

* Speaker - have patch submitted to get pwm-beeper working - maybe someday it will have a real sound driver that uses PRU
* A/DC chip - have driver submitted and accepted - waiting for ack on device tree bindings
* Display - waiting for "simple DRM" to be mainlined
* Bluetooth - needs new driver for sequencing power/enable/clock
* Input and output ports - need some sort of new phy or extcon driver as well as PRU UART and PRU I2C drivers
* Battery indication - needs new power supply driver

Note on flash partitions:

These partitions are based on the official EV3 firmware from LEGO. It is expected that most users of the mainline kernel on EV3 will be booting from an SD card while retaining the official firmware in the flash memory. Furthermore, the official firmware uses an ancient U-Boot (2009) that has no device tree support. So, it makes sense to have this partition table in the EV3 device tree file. In the unlikely case that anyone does create their own firmware image with different partitioning, they can use a modern U-Boot in their own firmware image that modifies the device tree with the custom partitions.

Quoted 1 line

There are couple of checkpatch errors that show up. The compatible "lego,ev3" needs to be documented in Documentation/devicetree/bindings/arm/davinci.txt

"at24,24c128" is undocumented. Is that an atmel chip on the EV3? If the manufacturer name is not clear, Documentation/devicetree/bindings/eeprom/eeprom.txt advises using just "24c128"

Finally, lego needs to be added to Documentation/devicetree/bindings/vendor-prefixes.txt

Can you please submit the documentation portions as separate patches in a series along with this patch.

Thanks,
Sekhar

#2 lore raw
Quoted 3 lines · Sekhar Nori
Quoted 2 lines · David Lechner

This adds a device tree definition file for LEGO MINDSTORMS EV3.

...

Quoted 9 lines

There are couple of checkpatch errors that show up. The compatible "lego,ev3" needs to be documented in Documentation/devicetree/bindings/arm/davinci.txt

"at24,24c128" is undocumented. Is that an atmel chip on the EV3? If the manufacturer name is not clear, Documentation/devicetree/bindings/eeprom/eeprom.txt advises using just "24c128"

The mfg is microchip, so I guess I will just go with "24c128"

Quoted 6 lines

Finally, lego needs to be added to Documentation/devicetree/bindings/vendor-prefixes.txt

Can you please submit the documentation portions as separate patches in a series along with this patch.

Yes.

Quoted 4 lines

Thanks,
Sekhar

#3 lore raw
Quoted 10 lines · David Lechner
Quoted 3 lines · Sekhar Nori
Quoted 2 lines · David Lechner

This adds a device tree definition file for LEGO MINDSTORMS EV3.

...

Quoted 5 lines

There are couple of checkpatch errors that show up. The compatible "lego,ev3" needs to be documented in Documentation/devicetree/bindings/arm/davinci.txt

Quoted 6 lines
Quoted 4 lines

"at24,24c128" is undocumented. Is that an atmel chip on the EV3? If the manufacturer name is not clear, Documentation/devicetree/bindings/eeprom/eeprom.txt advises using just "24c128"

The mfg is microchip, so I guess I will just go with "24c128"

I think I have let the device tree bindings doc confuse me. On second though, I think the correct thing is to included the manufacturer.

Quoted 15 lines
Quoted 7 lines

Finally, lego needs to be added to Documentation/devicetree/bindings/vendor-prefixes.txt

Can you please submit the documentation portions as separate patches in a series along with this patch.

Yes.

Quoted 4 lines

Thanks,
Sekhar

#4 lore raw
In reply to David Lechner
reproduce: wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree…

Hi David,

[auto build test ERROR on robh/for-next]
[also build test ERROR on v4.10-rc3 next-20170113]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/David-Lechner/ARM-dts-Add-LEGO-MINDSTORMS-EV3-dts/20170114-145113
base:   https://git.kernel.org/pub/scm/linux/kernel/git/robh/linux.git for-next
config: arm-u300_defconfig (attached as .config)
compiler: arm-linux-gnueabi-gcc (Debian 6.1.1-9) 6.1.1 20160705

reproduce:
wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
make.cross ARCH=arm

All errors (new ones prefixed by >>):

>> Error: arch/arm/boot/dts/da850-lego-ev3.dts:310.1-6 Label or path usb1 not found

FATAL ERROR: Syntax error parsing input tree

---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 12462 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20170115/a5b32497/attachment-0001.gz>