Skip to contentSkip to conversation

package/linux-tools: add gpio

PATCH Superseded Marcin Niestroj 3 participants 6 messages Oct 3, 2016 – Oct 5, 2016

v3 of 4 Superseded Latest is v4 →

lore
Share & tools
lore
#0 lore raw

PATCH v3 1/1 package/linux-tools: add gpio

---
Changes v2 -> v3:
* Add info about supported Linux version in Config.in (suggested by Baruch)

Changes v1 -> v2:
* Adapt to new linux-tools infra, which is moved to package/ directory (suggested by Yann)

 package/linux-tools/Config.in          | 12 ++++++++++++
 package/linux-tools/linux-tool-gpio.mk | 28 ++++++++++++++++++++++++++++
 2 files changed, 40 insertions(+)
 create mode 100644 package/linux-tools/linux-tool-gpio.mk
package/linux-tools/Config.in +12 -0
index 61c196f..bd07509 100644
@@ -20,6 +20,18 @@ comment "cpupower needs a toolchain w/ wchar"
 	depends on !BR2_bfin
 	depends on !BR2_USE_WCHAR && BR2_NEEDS_GETTEXT
 
+config BR2_PACKAGE_LINUX_TOOLS_GPIO
+	bool "gpio"
+	select BR2_PACKAGE_LINUX_TOOLS
+	help
+	  gpio is a collection of tools to get information about,
+	  control and monitor gpios present on system.
+
+	  These tools use new gpio ABI which will deprecate sysfs gpio
+	  interface in the future.
+
+	  These tools are available only from kernel version 4.8.
+
 config BR2_PACKAGE_LINUX_TOOLS_PERF
 	bool "perf"
 	select BR2_PACKAGE_LINUX_TOOLS
package/linux-tools/linux-tool-gpio.mk new file +28 -0
new file mode 100644
index 0000000..db0094a
@@ -0,0 +1,28 @@
+################################################################################
+#
+# gpio
+#
+################################################################################
+
+LINUX_TOOLS += gpio
+
+GPIO_MAKE_OPTS = CROSS_COMPILE=$(TARGET_CROSS)
+
+define GPIO_BUILD_CMDS
+	$(Q)if ! grep install $(LINUX_DIR)/tools/gpio/Makefile >/dev/null 2>&1 ; then \
+		echo "Your kernel version is too old and does not have the gpio tools." ; \
+		echo "At least kernel 4.8 must be used." ; \
+		exit 1 ; \
+	fi
+
+	$(TARGET_MAKE_ENV) $(MAKE) -C $(LINUX_DIR)/tools \
+		$(GPIO_MAKE_OPTS) \
+		gpio
+endef
+
+define GPIO_INSTALL_TARGET_CMDS
+	$(TARGET_MAKE_ENV) $(MAKE) -C $(LINUX_DIR)/tools \
+		$(GPIO_MAKE_OPTS) \
+		DESTDIR=$(TARGET_DIR) \
+		gpio_install
+endef
Signature · 1 line
2.10.0
#1 lore raw

PATCH v3 1/1 package/linux-tools: add gpio

Marcin, All,

On 2016-10-03 14:25 +0200, Marcin Niestroj spake thusly:

Quoted 44 lines

---
Changes v2 -> v3:
* Add info about supported Linux version in Config.in (suggested by Baruch)

Changes v1 -> v2:
* Adapt to new linux-tools infra, which is moved to package/ directory (suggested by Yann)

 package/linux-tools/Config.in          | 12 ++++++++++++
 package/linux-tools/linux-tool-gpio.mk | 28 ++++++++++++++++++++++++++++
 2 files changed, 40 insertions(+)
 create mode 100644 package/linux-tools/linux-tool-gpio.mk
package/linux-tools/Config.in +12 -0
index 61c196f..bd07509 100644
@@ -20,6 +20,18 @@ comment "cpupower needs a toolchain w/ wchar"
 	depends on !BR2_bfin
 	depends on !BR2_USE_WCHAR && BR2_NEEDS_GETTEXT
 
+config BR2_PACKAGE_LINUX_TOOLS_GPIO
+	bool "gpio"
+	select BR2_PACKAGE_LINUX_TOOLS
+	help
+	  gpio is a collection of tools to get information about,
+	  control and monitor gpios present on system.
+
+	  These tools use new gpio ABI which will deprecate sysfs gpio
+	  interface in the future.
+
+	  These tools are available only from kernel version 4.8.
+
 config BR2_PACKAGE_LINUX_TOOLS_PERF
 	bool "perf"
 	select BR2_PACKAGE_LINUX_TOOLS
package/linux-tools/linux-tool-gpio.mk new file +0 -0
new file mode 100644
index 0000000..db0094a

package/linux-tools/linux-tool-gpio.mk line 9

Quoted 9 lines
package/linux-tools/linux-tool-gpio.mk new file +9 -0
@@ -0,0 +1,28 @@
+################################################################################
+#
+# gpio
+#
+################################################################################
+
+LINUX_TOOLS += gpio
+
+GPIO_MAKE_OPTS = CROSS_COMPILE=$(TARGET_CROSS)

Any reason not to use $(LINUX_MAKE_FLAGS) in the first place?

    GPIO_MAKE_OPTS = $(LINUX_MAKE_FLAGS)

LINUX_MAKE_FLAGS shall contain all the required variable definitions needed to build for the target.

Yes, cpupower directly defines CROSS_COMPILE et al., but perf and selftests do use LINUX_MAKE_FLAGS, and I think we should use that unless there is a good reason not to.

This would allow use to easily update the compile options/variables.

(Sorry, I forgot to point that out in the previous review...)

Regards,
Yann E. MORIN.

Quoted 25 lines
package/linux-tools/linux-tool-gpio.mk new file +18 -0
+define GPIO_BUILD_CMDS
+	$(Q)if ! grep install $(LINUX_DIR)/tools/gpio/Makefile >/dev/null 2>&1 ; then \
+		echo "Your kernel version is too old and does not have the gpio tools." ; \
+		echo "At least kernel 4.8 must be used." ; \
+		exit 1 ; \
+	fi
+
+	$(TARGET_MAKE_ENV) $(MAKE) -C $(LINUX_DIR)/tools \
+		$(GPIO_MAKE_OPTS) \
+		gpio
+endef
+
+define GPIO_INSTALL_TARGET_CMDS
+	$(TARGET_MAKE_ENV) $(MAKE) -C $(LINUX_DIR)/tools \
+		$(GPIO_MAKE_OPTS) \
+		DESTDIR=$(TARGET_DIR) \
+		gpio_install
+endef
Signature · 6 lines
2.10.0

_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
#2 lore raw

PATCH v3 1/1 package/linux-tools: add gpio

Hi,

Quoted 61 lines · Yann E. MORIN

Marcin, All,

On 2016-10-03 14:25 +0200, Marcin Niestroj spake thusly:

Quoted 44 lines

---
Changes v2 -> v3:
* Add info about supported Linux version in Config.in (suggested by Baruch)

Changes v1 -> v2:
* Adapt to new linux-tools infra, which is moved to package/ directory (suggested by Yann)

 package/linux-tools/Config.in          | 12 ++++++++++++
 package/linux-tools/linux-tool-gpio.mk | 28 ++++++++++++++++++++++++++++
 2 files changed, 40 insertions(+)
 create mode 100644 package/linux-tools/linux-tool-gpio.mk
package/linux-tools/Config.in +12 -0
index 61c196f..bd07509 100644
@@ -20,6 +20,18 @@ comment "cpupower needs a toolchain w/ wchar"
 	depends on !BR2_bfin
 	depends on !BR2_USE_WCHAR && BR2_NEEDS_GETTEXT
 
+config BR2_PACKAGE_LINUX_TOOLS_GPIO
+	bool "gpio"
+	select BR2_PACKAGE_LINUX_TOOLS
+	help
+	  gpio is a collection of tools to get information about,
+	  control and monitor gpios present on system.
+
+	  These tools use new gpio ABI which will deprecate sysfs gpio
+	  interface in the future.
+
+	  These tools are available only from kernel version 4.8.
+
 config BR2_PACKAGE_LINUX_TOOLS_PERF
 	bool "perf"
 	select BR2_PACKAGE_LINUX_TOOLS
package/linux-tools/linux-tool-gpio.mk new file +0 -0
new file mode 100644
index 0000000..db0094a

package/linux-tools/linux-tool-gpio.mk line 9

Quoted 9 lines
package/linux-tools/linux-tool-gpio.mk new file +9 -0
@@ -0,0 +1,28 @@
+################################################################################
+#
+# gpio
+#
+################################################################################
+
+LINUX_TOOLS += gpio
+
+GPIO_MAKE_OPTS = CROSS_COMPILE=$(TARGET_CROSS)

Any reason not to use $(LINUX_MAKE_FLAGS) in the first place?

    GPIO_MAKE_OPTS = $(LINUX_MAKE_FLAGS)
Quoted 8 lines

LINUX_MAKE_FLAGS shall contain all the required variable definitions needed to build for the target.

Yes, cpupower directly defines CROSS_COMPILE et al., but perf and selftests do use LINUX_MAKE_FLAGS, and I think we should use that unless there is a good reason not to.

This would allow use to easily update the compile options/variables.

I just did it similar to cpupower package. But using LINUX_MAKE_FLAGS looks like a better option.

What about specifying also DESTDIR together:
GPIO_MAKE_OPTS = $(LINUX_MAKE_FLAGS) DESTDIR=$(TARGET_DIR) so we can simplify GPIO_INSTALL_TARGET_CMDS?
This would be similar to perf package.

Quoted 32 lines

(Sorry, I forgot to point that out in the previous review...)

Regards,
Yann E. MORIN.

Quoted 25 lines
package/linux-tools/linux-tool-gpio.mk new file +18 -1
+define GPIO_BUILD_CMDS
+	$(Q)if ! grep install $(LINUX_DIR)/tools/gpio/Makefile >/dev/null 2>&1 ; then \
+		echo "Your kernel version is too old and does not have the gpio tools." ; \
+		echo "At least kernel 4.8 must be used." ; \
+		exit 1 ; \
+	fi
+
+	$(TARGET_MAKE_ENV) $(MAKE) -C $(LINUX_DIR)/tools \
+		$(GPIO_MAKE_OPTS) \
+		gpio
+endef
+
+define GPIO_INSTALL_TARGET_CMDS
+	$(TARGET_MAKE_ENV) $(MAKE) -C $(LINUX_DIR)/tools \
+		$(GPIO_MAKE_OPTS) \
+		DESTDIR=$(TARGET_DIR) \
+		gpio_install
+endef
--

2.10.0

_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot

Signature · 1 line
Marcin Niestroj
#3 lore raw

PATCH v3 1/1 package/linux-tools: add gpio

Marcin, All,

On 2016-10-04 08:53 +0200, Marcin Niestroj spake thusly:

Quoted 3 lines · Yann E. MORIN
Quoted 2 lines

On 2016-10-03 14:25 +0200, Marcin Niestroj spake thusly:

Quoted 1 line

[--SNIP--]

Quoted 29 lines
Quoted 20 lines
Quoted 6 lines
package/linux-tools/linux-tool-gpio.mk new file +0 -0
new file mode 100644
index 0000000..db0094a

package/linux-tools/linux-tool-gpio.mk line 9

Quoted 9 lines
package/linux-tools/linux-tool-gpio.mk new file +9 -0
@@ -0,0 +1,28 @@
+################################################################################
+#
+# gpio
+#
+################################################################################
+
+LINUX_TOOLS += gpio
+
+GPIO_MAKE_OPTS = CROSS_COMPILE=$(TARGET_CROSS)

Any reason not to use $(LINUX_MAKE_FLAGS) in the first place?

   GPIO_MAKE_OPTS = $(LINUX_MAKE_FLAGS)
Quoted 8 lines

LINUX_MAKE_FLAGS shall contain all the required variable definitions needed to build for the target.

Yes, cpupower directly defines CROSS_COMPILE et al., but perf and selftests do use LINUX_MAKE_FLAGS, and I think we should use that unless there is a good reason not to.

This would allow use to easily update the compile options/variables.

Quoted 7 lines

I just did it similar to cpupower package. But using LINUX_MAKE_FLAGS looks like a better option.

What about specifying also DESTDIR together:
GPIO_MAKE_OPTS = $(LINUX_MAKE_FLAGS) DESTDIR=$(TARGET_DIR) so we can simplify GPIO_INSTALL_TARGET_CMDS?
This would be similar to perf package.

No, please specify DESTDIR only at install time.

Regards,
Yann E. MORIN.

Quoted 34 lines
Quoted 31 lines

(Sorry, I forgot to point that out in the previous review...)

Regards,
Yann E. MORIN.

Quoted 25 lines
package/linux-tools/linux-tool-gpio.mk new file +18 -1
+define GPIO_BUILD_CMDS
+	$(Q)if ! grep install $(LINUX_DIR)/tools/gpio/Makefile >/dev/null 2>&1 ; then \
+		echo "Your kernel version is too old and does not have the gpio tools." ; \
+		echo "At least kernel 4.8 must be used." ; \
+		exit 1 ; \
+	fi
+
+	$(TARGET_MAKE_ENV) $(MAKE) -C $(LINUX_DIR)/tools \
+		$(GPIO_MAKE_OPTS) \
+		gpio
+endef
+
+define GPIO_INSTALL_TARGET_CMDS
+	$(TARGET_MAKE_ENV) $(MAKE) -C $(LINUX_DIR)/tools \
+		$(GPIO_MAKE_OPTS) \
+		DESTDIR=$(TARGET_DIR) \
+		gpio_install
+endef
--

2.10.0

_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot

Signature · 1 line
Marcin Niestroj
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
#4 lore raw

PATCH v3 1/1 package/linux-tools: add gpio

Quoted 39 lines · Yann E. MORIN

Marcin, All,

On 2016-10-04 08:53 +0200, Marcin Niestroj spake thusly:

Quoted 3 lines · Yann E. MORIN
Quoted 2 lines

On 2016-10-03 14:25 +0200, Marcin Niestroj spake thusly:

Quoted 1 line

[--SNIP--]

Quoted 32 lines
Quoted 20 lines
Quoted 6 lines
package/linux-tools/linux-tool-gpio.mk new file +0 -0
new file mode 100644
index 0000000..db0094a

package/linux-tools/linux-tool-gpio.mk line 9

Quoted 9 lines
package/linux-tools/linux-tool-gpio.mk new file +9 -0
@@ -0,0 +1,28 @@
+################################################################################
+#
+# gpio
+#
+################################################################################
+
+LINUX_TOOLS += gpio
+
+GPIO_MAKE_OPTS = CROSS_COMPILE=$(TARGET_CROSS)

Any reason not to use $(LINUX_MAKE_FLAGS) in the first place?

   GPIO_MAKE_OPTS = $(LINUX_MAKE_FLAGS)
Quoted 8 lines

LINUX_MAKE_FLAGS shall contain all the required variable definitions needed to build for the target.

Yes, cpupower directly defines CROSS_COMPILE et al., but perf and selftests do use LINUX_MAKE_FLAGS, and I think we should use that unless there is a good reason not to.

This would allow use to easily update the compile options/variables.

I just did it similar to cpupower package. But using LINUX_MAKE_FLAGS looks like a better option.

Quoted 6 lines
Quoted 4 lines

What about specifying also DESTDIR together:
GPIO_MAKE_OPTS = $(LINUX_MAKE_FLAGS) DESTDIR=$(TARGET_DIR) so we can simplify GPIO_INSTALL_TARGET_CMDS?
This would be similar to perf package.

No, please specify DESTDIR only at install time.

This is because in general, there may also be installation to staging or
images, and in those cases DESTDIR should be STAGING_DIR resp. IMAGES_DIR. So adding DESTDIR to the general _MAKE_OPTS is semantically incorrect.

Regards,
Arnout

Quoted 39 lines

Regards,
Yann E. MORIN.

Quoted 34 lines
Quoted 31 lines

(Sorry, I forgot to point that out in the previous review...)

Regards,
Yann E. MORIN.

Quoted 25 lines
package/linux-tools/linux-tool-gpio.mk new file +18 -1
+define GPIO_BUILD_CMDS
+	$(Q)if ! grep install $(LINUX_DIR)/tools/gpio/Makefile >/dev/null 2>&1 ; then \
+		echo "Your kernel version is too old and does not have the gpio tools." ; \
+		echo "At least kernel 4.8 must be used." ; \
+		exit 1 ; \
+	fi
+
+	$(TARGET_MAKE_ENV) $(MAKE) -C $(LINUX_DIR)/tools \
+		$(GPIO_MAKE_OPTS) \
+		gpio
+endef
+
+define GPIO_INSTALL_TARGET_CMDS
+	$(TARGET_MAKE_ENV) $(MAKE) -C $(LINUX_DIR)/tools \
+		$(GPIO_MAKE_OPTS) \
+		DESTDIR=$(TARGET_DIR) \
+		gpio_install
+endef
--

2.10.0

_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot

Signature · 1 line
Marcin Niestroj
Signature · 6 lines
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF
#5 lore raw

PATCH v3 1/1 package/linux-tools: add gpio

Quoted 47 lines · Arnout Vandecappelle
Quoted 44 lines · Yann E. MORIN

Marcin, All,

On 2016-10-04 08:53 +0200, Marcin Niestroj spake thusly:

Quoted 3 lines · Yann E. MORIN
Quoted 2 lines

On 2016-10-03 14:25 +0200, Marcin Niestroj spake thusly:

Quoted 1 line

[--SNIP--]

Quoted 36 lines
Quoted 20 lines
Quoted 6 lines
package/linux-tools/linux-tool-gpio.mk new file +0 -0
new file mode 100644
index 0000000..db0094a

package/linux-tools/linux-tool-gpio.mk line 9

Quoted 9 lines
package/linux-tools/linux-tool-gpio.mk new file +9 -0
@@ -0,0 +1,28 @@
+################################################################################
+#
+# gpio
+#
+################################################################################
+
+LINUX_TOOLS += gpio
+
+GPIO_MAKE_OPTS = CROSS_COMPILE=$(TARGET_CROSS)

Any reason not to use $(LINUX_MAKE_FLAGS) in the first place?

   GPIO_MAKE_OPTS = $(LINUX_MAKE_FLAGS)
Quoted 8 lines

LINUX_MAKE_FLAGS shall contain all the required variable definitions needed to build for the target.

Yes, cpupower directly defines CROSS_COMPILE et al., but perf and selftests do use LINUX_MAKE_FLAGS, and I think we should use that unless there is a good reason not to.

This would allow use to easily update the compile options/variables.

I just did it similar to cpupower package. But using LINUX_MAKE_FLAGS looks like a better option.

What about specifying also DESTDIR together:
GPIO_MAKE_OPTS = $(LINUX_MAKE_FLAGS) DESTDIR=$(TARGET_DIR) so we can simplify GPIO_INSTALL_TARGET_CMDS?
This would be similar to perf package.

Quoted 5 lines
Quoted 1 line

No, please specify DESTDIR only at install time.

This is because in general, there may also be installation to staging or
images, and in those cases DESTDIR should be STAGING_DIR resp. IMAGES_DIR. So adding DESTDIR to the general _MAKE_OPTS is semantically incorrect.

Thanks for clarifying that!

Quoted 44 lines

Regards,
Arnout

Quoted 39 lines

Regards,
Yann E. MORIN.

Quoted 34 lines
Quoted 26 lines

(Sorry, I forgot to point that out in the previous review...)

Regards,
Yann E. MORIN.

Quoted 21 lines
package/linux-tools/linux-tool-gpio.mk new file +18 -1
+define GPIO_BUILD_CMDS
+	$(Q)if ! grep install $(LINUX_DIR)/tools/gpio/Makefile >/dev/null 2>&1 ; then \
+		echo "Your kernel version is too old and does not have the gpio tools." ; \
+		echo "At least kernel 4.8 must be used." ; \
+		exit 1 ; \
+	fi
+
+	$(TARGET_MAKE_ENV) $(MAKE) -C $(LINUX_DIR)/tools \
+		$(GPIO_MAKE_OPTS) \
+		gpio
+endef
+
+define GPIO_INSTALL_TARGET_CMDS
+	$(TARGET_MAKE_ENV) $(MAKE) -C $(LINUX_DIR)/tools \
+		$(GPIO_MAKE_OPTS) \
+		DESTDIR=$(TARGET_DIR) \
+		gpio_install
+endef
--

2.10.0

Quoted 5 lines
Quoted 4 lines

_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot

--
Marcin Niestroj

Signature · 1 line
Marcin Niestroj