Skip to contentSkip to conversation

arm: add support for PDU001

PATCH Superseded Felix Brack 2 participants 4 messages Jan 22, 2018

Subsystems (3)

v2 of 4 Superseded Latest is v4 →

lore
Share & tools
lore
#0 lore raw

PATCH v2 1/1 arm: add support for PDU001

This patch adds support for the PDU001 board.

---

Changes in v2:
- use DT to configure the board
- use new single-register pin controller
- use new TPS65910 PMIC driver
- eliminate the need of CONFIG_DM_I2C_COMPAT, i.e. use DM for i2c
- clarify the function of the 'Run LED'
- fix ordering of include files
- replace deprecated SPDX license identifiers

 arch/arm/Kconfig                   |   1 +
 arch/arm/dts/Makefile              |   3 +-
 arch/arm/dts/am335x-pdu001.dts     | 612 +++++++++++++++++++++++++++++++++++++
 arch/arm/mach-omap2/am33xx/Kconfig |   9 +
 board/eets/pdu001/Kconfig          |  66 ++++
 board/eets/pdu001/MAINTAINERS      |   6 +
 board/eets/pdu001/Makefile         |  13 +
 board/eets/pdu001/README           |  35 +++
 board/eets/pdu001/board.c          | 276 +++++++++++++++++
 board/eets/pdu001/board.h          |  38 +++
 board/eets/pdu001/mux.c            | 120 ++++++++
 configs/am335x_pdu001_defconfig    |  55 ++++
 include/configs/pdu001.h           |  87 ++++++
 13 files changed, 1320 insertions(+), 1 deletion(-)
 create mode 100644 arch/arm/dts/am335x-pdu001.dts
 create mode 100644 board/eets/pdu001/Kconfig
 create mode 100644 board/eets/pdu001/MAINTAINERS
 create mode 100644 board/eets/pdu001/Makefile
 create mode 100644 board/eets/pdu001/README
 create mode 100644 board/eets/pdu001/board.c
 create mode 100644 board/eets/pdu001/board.h
 create mode 100644 board/eets/pdu001/mux.c
 create mode 100644 configs/am335x_pdu001_defconfig
 create mode 100644 include/configs/pdu001.h
arch/arm/Kconfig +1 -0
index f6d57f5..15349b3 100644
@@ -1339,6 +1339,7 @@ source "board/vscom/baltos/Kconfig"
 source "board/woodburn/Kconfig"
 source "board/work-microwave/work_92105/Kconfig"
 source "board/zipitz2/Kconfig"
+source "board/eets/pdu001/Kconfig"
 
 source "arch/arm/Kconfig.debug"
 
arch/arm/dts/Makefile +2 -1
index 9540ba4..02b3c36 100644
@@ -161,7 +161,8 @@ dtb-$(CONFIG_AM33XX) += am335x-boneblack.dtb am335x-bone.dtb \
 	am335x-bonegreen.dtb \
 	am335x-icev2.dtb \
 	am335x-pxm50.dtb \
-	am335x-rut.dtb
+	am335x-rut.dtb \
+	am335x-pdu001.dtb
 dtb-$(CONFIG_AM43XX) += am437x-gp-evm.dtb am437x-sk-evm.dtb	\
 	am43x-epos-evm.dtb \
 	am437x-idk-evm.dtb
arch/arm/dts/am335x-pdu001.dts new file +612 -0

612 lines not on this page · raw message

arch/arm/mach-omap2/am33xx/Kconfig +9 -0
index 7260d27..9a9ccd7 100644
@@ -185,6 +185,15 @@ config TARGET_THUBAN
 	select DM_SERIAL
 	select DM_GPIO
 
+config TARGET_PDU001
+	bool "Support PDU001"
+	select DM
+	select DM_SERIAL
+	help
+	  Support for PDU001 platform developed by EETS GmbH.
+	  The PDU001 is a processor and display unit developed around
+	  the Computing-Module m2 from bytes at work AG.
+
 endchoice
 
 endif
board/eets/pdu001/Kconfig new file +66 -0

66 lines not on this page · raw message

board/eets/pdu001/MAINTAINERS new file +6 -0
new file mode 100644
index 0000000..fbd47cf
@@ -0,0 +1,6 @@
+PDU001 BOARD
+M:	Felix Brack <[email protected]>
+S:	Maintained
+F:	board/eets/pdu001/
+F:	include/configs/pdu001.h
+F:	configs/pdu001_defconfig
board/eets/pdu001/Makefile new file +13 -0
new file mode 100644
index 0000000..2f2661d
@@ -0,0 +1,13 @@
+#
+# Makefile
+#
+# Copyright (C) 2018 EETS GmbH - http://www.eets.ch/
+#
+# SPDX-License-Identifier: GPL-2.0-or-later
+#
+
+ifeq ($(CONFIG_SKIP_LOWLEVEL_INIT),)
+obj-y	:= mux.o
+endif
+
+obj-y	+= board.o
board/eets/pdu001/README new file +35 -0
new file mode 100644
index 0000000..3592d5c
@@ -0,0 +1,35 @@
+# Copyright (C) 2018 EETS GmbH - http://www.eets.ch/
+#
+# SPDX-License-Identifier: GPL-2.0-or-later
+#
+
+Summary
+=======
+
+This document covers the PDU001 target.
+
+Hardware
+========
+
+The PDU-001 (Processor and Display Unit) is a plugin card for 19" racks. It is
+manufactured by EETS GmbH (https://www.eets.ch). The core of the board is a m2
+SOM from bytes at work (https://www.bytesatwork.ch) which in turn is based on
+AM3352 SOC from TI (http://www.ti.com).
+
+Customization
+=============
+
+As usual the console serial interface is set by CONFIG_CONS_INDEX. Best choice
+is 4 here since UART3 is wired to the connector K2.
+The Run LED on the PDU-001 can be turned on red by setting CONFIG_RUN_LED_RED
+or green by setting CONFIG_RUN_LED_GREEN. Setting CONFIG_RUN_LED_OFF will turn
+off the Run LED.
+
+Booting
+=======
+
+The system boots from either eMMC or SD card cage. It will first try to boot
+from the SD card cage. If this fails (missing or unbootable SD card) it will
+try to boot from the internal eMMC. The root file system is always expected to
+be located in the second partition of the device (eMMC or SD card) that pro-
+vided the boot loader.
board/eets/pdu001/board.c new file +276 -0

276 lines not on this page · raw message

board/eets/pdu001/board.h new file +38 -0
new file mode 100644
index 0000000..3332560
@@ -0,0 +1,38 @@
+/*
+ * board.h
+ *
+ * EETS GmbH PDU001 board information header
+ *
+ * Copyright (C) 2018 EETS GmbH - http://www.eets.ch/
+ *
+ * Copyright (C) 2011, Texas Instruments, Incorporated - http://www.ti.com/
+ *
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ */
+
+#ifndef _BOARD_H_
+#define _BOARD_H_
+
+/*
+ * We have two pin mux functions that must exist. First we need I2C0 to
+ * access the TPS65910 PMIC located on the M2 computing module.
+ * Second, if we want low-level debugging or a early UART (ie. before the
+ * pin controller driver is running), we need one of the UART ports UART0 to
+ * UART5 (usually UART3 since it is wired to K2).
+ * In case of I2C0 access we explicitly don't rely on the the ROM but we could
+ * do so as we use the primary mode (mode 0) for I2C0.
+ * All other multiplexing and pin configuration is done by the DT once it
+ * gets parsed by the pin controller driver.
+ * However we relay on the ROM to configure the pins of MMC0 (eMMC) as well
+ * as MMC1 (microSD card-cage) since these are our boot devices.
+ */
+void enable_uart0_pin_mux(void);
+void enable_uart1_pin_mux(void);
+void enable_uart2_pin_mux(void);
+void enable_uart3_pin_mux(void);
+void enable_uart4_pin_mux(void);
+void enable_uart5_pin_mux(void);
+void enable_uart_pin_mux(u32 addr);
+void enable_i2c0_pin_mux(void);
+
+#endif
board/eets/pdu001/mux.c new file +120 -0

120 lines not on this page · raw message

configs/am335x_pdu001_defconfig new file +55 -0

55 lines not on this page · raw message

include/configs/pdu001.h new file +87 -0

87 lines not on this page · raw message

Signature · 1 line
2.7.4
#1 lore raw

PATCH v2 1/1 arm: add support for PDU001

Quoted 3 lines · Felix Brack

This patch adds support for the PDU001 board.

[snip]

arch/arm/Kconfig source "board/vscom/baltos/Kconfig" · line 1342

Quoted 9 lines
arch/arm/Kconfig +1 -0
index f6d57f5..15349b3 100644
@@ -1339,6 +1339,7 @@ source "board/vscom/baltos/Kconfig"
 source "board/woodburn/Kconfig"
 source "board/work-microwave/work_92105/Kconfig"
 source "board/zipitz2/Kconfig"
+source "board/eets/pdu001/Kconfig"

This should stay alphabetized.

[snip]

arch/arm/dts/am335x-pdu001.dts

Quoted 4 lines

new file mode 100644
index 0000000..0967e82

arch/arm/dts/am335x-pdu001.dts new file +0 -0

So, have you pushed this platform upstream to Linux?

arch/arm/dts/am335x-pdu001.dts line 10

Quoted 11 lines
arch/arm/dts/am335x-pdu001.dts new file +10 -0
@@ -0,0 +1,612 @@
+/*
+ * pdu001.dts
+ *
+ * EETS GmbH PDU001 board device tree file
+ *
+ * Copyright (C) 2018 EETS GmbH - http://www.eets.ch/
+ *
+ * Copyright (C) 2011, Texas Instruments, Incorporated - http://www.ti.com/
+ *
+ * SPDX-License-Identifier:  GPL-2.0-or-later

This is not a free-form tag. Here and elsewhere you want "GPL-2.0+".

[snip]

arch/arm/dts/am335x-pdu001.dts line 100

Quoted 13 lines
arch/arm/dts/am335x-pdu001.dts new file +13 -0
+	ocp {
+		u-boot,dm-pre-reloc;
+	};
+};
+
+&l4_wkup {
+	u-boot,dm-pre-reloc;
+};
+
+&scm {
+	u-boot,dm-pre-reloc;
+};
+

For long term maintenance you'll want to move these U-Boot specific parts to a am335x-pdu001-u-boot.dtsi file so that you can re-sync the main DTS file with Linux and not have any important U-Boot changes be dropped.

Thanks!

Signature · 8 lines
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20180122/52148bd9/attachment.sig>
#2 lore raw

PATCH v2 1/1 arm: add support for PDU001

Hi Tom,

Quoted 6 lines · Tom Rini
Quoted 3 lines · Felix Brack

This patch adds support for the PDU001 board.

[snip]

Quoted 10 lines

arch/arm/Kconfig source "board/vscom/baltos/Kconfig" · line 1342

Quoted 9 lines
arch/arm/Kconfig +1 -0
index f6d57f5..15349b3 100644
@@ -1339,6 +1339,7 @@ source "board/vscom/baltos/Kconfig"
 source "board/woodburn/Kconfig"
 source "board/work-microwave/work_92105/Kconfig"
 source "board/zipitz2/Kconfig"
+source "board/eets/pdu001/Kconfig"

Sorry, missed that one.

Quoted 10 lines

This should stay alphabetized.

[snip]

arch/arm/dts/am335x-pdu001.dts

Quoted 4 lines

new file mode 100644
index 0000000..0967e82

arch/arm/dts/am335x-pdu001.dts new file +0 -0

So, have you pushed this platform upstream to Linux?

Not yet. I would like to follow the same procedure for Linux as I did for U-Boot, i.e. first finish the work on all drivers required by the board.

Quoted 5 lines
Quoted 5 lines
arch/arm/dts/am335x-pdu001.dts new file +4 -0
@@ -0,0 +1,612 @@
+/*
+ * pdu001.dts
+ *
+ * EETS GmbH PDU001 board device tree file
Quoted 9 lines

arch/arm/dts/am335x-pdu001.dts line 10

Quoted 6 lines
arch/arm/dts/am335x-pdu001.dts new file +6 -0
+ *
+ * Copyright (C) 2018 EETS GmbH - http://www.eets.ch/
+ *
+ * Copyright (C) 2011, Texas Instruments, Incorporated - http://www.ti.com/
+ *
+ * SPDX-License-Identifier:  GPL-2.0-or-later

This is not a free-form tag. Here and elsewhere you want "GPL-2.0+".

Well, I followed the advice on https://spdx.org/licenses/ when using this tag. According to SPDX "GPL-2.0+" is deprecated as of V2.0rc2 and the use of "GPL-2.0-or-later" is suggested instead. However I'm fine using "GPL-2.0+", just let me know.

Quoted 11 lines

[snip]

Quoted 10 lines
arch/arm/dts/am335x-pdu001.dts new file +10 -0
+	ocp {
+		u-boot,dm-pre-reloc;
+	};
+};
+
+&l4_wkup {
+	u-boot,dm-pre-reloc;
+};
+
+&scm {
Quoted 9 lines

arch/arm/dts/am335x-pdu001.dts line 92

Quoted 3 lines
arch/arm/dts/am335x-pdu001.dts new file +3 -0
+	u-boot,dm-pre-reloc;
+};
+

For long term maintenance you'll want to move these U-Boot specific parts to a am335x-pdu001-u-boot.dtsi file so that you can re-sync the main DTS file with Linux and not have any important U-Boot changes be dropped.

Thanks for the hint!

regards, Felix

#3 lore raw

PATCH v2 1/1 arm: add support for PDU001

Quoted 31 lines · Felix Brack

Hi Tom,

Quoted 6 lines · Tom Rini
Quoted 3 lines · Felix Brack

This patch adds support for the PDU001 board.

[snip]

Quoted 10 lines

arch/arm/Kconfig source "board/vscom/baltos/Kconfig" · line 1342

Quoted 9 lines
arch/arm/Kconfig +1 -0
index f6d57f5..15349b3 100644
@@ -1339,6 +1339,7 @@ source "board/vscom/baltos/Kconfig"
 source "board/woodburn/Kconfig"
 source "board/work-microwave/work_92105/Kconfig"
 source "board/zipitz2/Kconfig"
+source "board/eets/pdu001/Kconfig"

Sorry, missed that one.

Quoted 10 lines

This should stay alphabetized.

[snip]

arch/arm/dts/am335x-pdu001.dts

Quoted 4 lines

new file mode 100644
index 0000000..0967e82

arch/arm/dts/am335x-pdu001.dts new file +0 -0

So, have you pushed this platform upstream to Linux?

Quoted 2 lines

Not yet. I would like to follow the same procedure for Linux as I did for U-Boot, i.e. first finish the work on all drivers required by the board.

OK. Please just make sure to keep it in sync with feedback you get from upstream there, thanks!

Quoted 14 lines
Quoted 5 lines
Quoted 5 lines
arch/arm/dts/am335x-pdu001.dts new file +4 -0
@@ -0,0 +1,612 @@
+/*
+ * pdu001.dts
+ *
+ * EETS GmbH PDU001 board device tree file
Quoted 9 lines

arch/arm/dts/am335x-pdu001.dts line 10

Quoted 6 lines
arch/arm/dts/am335x-pdu001.dts new file +6 -0
+ *
+ * Copyright (C) 2018 EETS GmbH - http://www.eets.ch/
+ *
+ * Copyright (C) 2011, Texas Instruments, Incorporated - http://www.ti.com/
+ *
+ * SPDX-License-Identifier:  GPL-2.0-or-later

This is not a free-form tag. Here and elsewhere you want "GPL-2.0+".

Quoted 4 lines

Well, I followed the advice on https://spdx.org/licenses/ when using this tag. According to SPDX "GPL-2.0+" is deprecated as of V2.0rc2 and the use of "GPL-2.0-or-later" is suggested instead. However I'm fine using "GPL-2.0+", just let me know.

Ugh. For now, please do GPL-2.0+ and I'll take an action to do a treewide update to match what's preferred as of 3.0.

Signature · 8 lines
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20180122/8eca9652/attachment.sig>