Skip to contentSkip to conversation

arm/dts: Add device tree data for AM33XX devices

PATCH Superseded AnilKumar Ch 4 participants 10 messages Sep 6, 2012 – Sep 7, 2012 Device tree bindings

lore
Share & tools
lore
#0 lore raw

v7 cover arm/dts: Add device tree data for AM33XX devices

Add pinctrl and d_can device tree data to AM33XX family of devices. First two patches add support for pinctrl DT data and third one adds dcan DT data.

Reason behind combining these patches is to apply cleanly on linux-omap tree, because these are sequential patches.

These patches were tested on AM335x-Bone, AM335x-EVM and based on linux-omap:master with this patch
http://www.mail-archive.com/linux-omap at vger.kernel.org/msg74393.html

Changes from v6:
- Incorporated Tony's comments on v5
* Moved am3358_pinmux to am33xx_pinmux

Changes from v5:
- Incorporated Koen's comments on v5 series, user leds trigger modifications.
- Dropped 4th and 5th patches, submitted v2 versions of those in their corresponding mailing lists.

d_can:
Changes from v4:
- Incorporated Tony's comments on v4
* Converted all hex numbers to lower-case.
- Updated C_CAN bindings documentation according to recent changes.

Changes from v3:
- Removed d_can1 node from am335x-evm.dts file. Instance one of CAN (d_can1) is available on AM335x-EVM only under a specific CPLD mode selection. am335x-evm.dts does not support this mode so remove the d_can1 node.
- Dropped d_can pinmux settings patch, above comment applies here as well.

Changes from v2:
- Incorporated Vaibhav H's comments on v2
* Added dcan0 instances to am33xx.dtsi file

Changes from v1:
- These two patches separated from c_can DT support patch series.

pinctrl:
Changes from v4:
- Incorporated Tony's comments on v4
* Converted all hex numbers to lower-case.
- Added pinctrl api to leds-gpio driver to configure led pins to GPIO mode.

Changes from v3:
- Updated the reg length based on latest AM335x TRM.

Changes from v2:
- user led pinmux comments updated according to Tony's comment.

Changes from v1:
- Rebased the patches based on latest pinctrl-single driver

AnilKumar Ch (3):
arm/dts: AM33XX: Add basic pinctrl device tree data arm/dts: AM33XX: Configure pinmuxs for user leds control on Bone arm/dts: AM33XX: Add D_CAN device tree data

 arch/arm/boot/dts/am335x-bone.dts |   43 +++++++++++++++++++++++++++++++++++++
 arch/arm/boot/dts/am33xx.dtsi     |   27 +++++++++++++++++++++++
 2 files changed, 70 insertions(+)
Signature · 1 line
1.7.9.5
#1 lore raw

PATCH v7 1/3 arm/dts: AM33XX: Add basic pinctrl device tree data

Adds basic pinctrl device tree data for AM33XX family of devices. This patch is based on the pinctrl-single driver.

---
 arch/arm/boot/dts/am33xx.dtsi |    9 +++++++++
 1 file changed, 9 insertions(+)
arch/arm/boot/dts/am33xx.dtsi +9 -0
index be43511..58cffb7 100644
@@ -40,6 +40,15 @@
 		};
 	};
 
+	am33xx_pinmux: pinmux at 44e10800 {
+		compatible = "pinctrl-single";
+		reg = <0x44e10800 0x0238>;
+		#address-cells = <1>;
+		#size-cells = <0>;
+		pinctrl-single,register-width = <32>;
+		pinctrl-single,function-mask = <0x7f>;
+	};
+
 	/*
 	 * XXX: Use a flat representation of the AM33XX interconnect.
 	 * The real AM33XX interconnect network is quite complex.Since
Signature · 1 line
1.7.9.5
#2 lore raw

PATCH v7 1/3 arm/dts: AM33XX: Add basic pinctrl device tree data

Quoted 4 lines · AnilKumar Ch

Adds basic pinctrl device tree data for AM33XX family of devices. This patch is based on the pinctrl-single driver.

Assuming Benoit will queue this series:

Quoted 27 lines
---
 arch/arm/boot/dts/am33xx.dtsi |    9 +++++++++
 1 file changed, 9 insertions(+)
arch/arm/boot/dts/am33xx.dtsi +9 -0
index be43511..58cffb7 100644
@@ -40,6 +40,15 @@
 		};
 	};
 
+	am33xx_pinmux: pinmux at 44e10800 {
+		compatible = "pinctrl-single";
+		reg = <0x44e10800 0x0238>;
+		#address-cells = <1>;
+		#size-cells = <0>;
+		pinctrl-single,register-width = <32>;
+		pinctrl-single,function-mask = <0x7f>;
+	};
+
 	/*
 	 * XXX: Use a flat representation of the AM33XX interconnect.
 	 * The real AM33XX interconnect network is quite complex.Since
Signature · 1 line
1.7.9.5
#3 lore raw

PATCH v7 2/3 arm/dts: AM33XX: Configure pinmuxs for user leds control on Bone

In reply to AnilKumar Ch

Adds GPIO pinctrl nodes to am3358_pinmux master node to control user leds (USR0, USR1, USR2 and USR3) present on BeagleBone.

[koen at dominion.thruhere.net: led0, led1 suggested by koen]
---
 arch/arm/boot/dts/am335x-bone.dts |   43 +++++++++++++++++++++++++++++++++++++
 1 file changed, 43 insertions(+)
arch/arm/boot/dts/am335x-bone.dts +43 -0
index c634f87..b0a7409 100644
@@ -18,11 +18,54 @@
 		reg = <0x80000000 0x10000000>; /* 256 MB */
 	};
 
+	am33xx_pinmux: pinmux at 44e10800 {
+		userled_pins: pinmux_userled_pins {
+			pinctrl-single,pins = <
+				0x54 0x7	/* gpmc_a5.gpio1_21, OUTPUT | MODE7 */
+				0x58 0x17	/* gpmc_a6.gpio1_22, OUTPUT_PULLUP | MODE7 */
+				0x5c 0x7	/* gpmc_a7.gpio1_23, OUTPUT | MODE7 */
+				0x60 0x17	/* gpmc_a8.gpio1_24, OUTPUT_PULLUP | MODE7 */
+			>;
+		};
+	};
+
 	ocp {
 		uart1: serial at 44e09000 {
 			status = "okay";
 		};
 
+		leds {
+			compatible = "gpio-leds";
+			pinctrl-names = "default";
+			pinctrl-0 = <&userled_pins>;
+
+			heartbeat {
+				label = "beaglebone:green:usr0";
+				gpios = <&gpio2 21 0>;
+				linux,default-trigger = "heartbeat";
+				default-state = "off";
+			};
+
+			mmc {
+				label = "beaglebone:green:usr1";
+				gpios = <&gpio2 22 0>;
+				linux,default-trigger = "mmc0";
+				default-state = "off";
+			};
+
+			led2 {
+				label = "beaglebone:green:usr2";
+				gpios = <&gpio2 23 0>;
+				default-state = "off";
+			};
+
+			led3 {
+				label = "beaglebone:green:usr3";
+				gpios = <&gpio2 24 0>;
+				default-state = "off";
+			};
+		};
+
 		i2c1: i2c at 44e0b000 {
 			status = "okay";
 			clock-frequency = <400000>;
Signature · 1 line
1.7.9.5
#4 lore raw

PATCH v7 2/3 arm/dts: AM33XX: Configure pinmuxs for user leds control on Bone

Op 6 sep. 2012, om 11:38 heeft AnilKumar Ch <[email protected]> het volgende geschreven:

Quoted 5 lines

Adds GPIO pinctrl nodes to am3358_pinmux master node to control user leds (USR0, USR1, USR2 and USR3) present on BeagleBone.

[[email protected]: led0, led1 suggested by koen]
Quoted 71 lines

---
arch/arm/boot/dts/am335x-bone.dts | 43 +++++++++++++++++++++++++++++++++++++

1 file changed, 43 insertions(+)
arch/arm/boot/dts/am335x-bone.dts +43 -0
index c634f87..b0a7409 100644
@@ -18,11 +18,54 @@
 		reg = <0x80000000 0x10000000>; /* 256 MB */
 	};
 
+	am33xx_pinmux: pinmux@44e10800 {
+		userled_pins: pinmux_userled_pins {
+			pinctrl-single,pins = <
+				0x54 0x7	/* gpmc_a5.gpio1_21, OUTPUT | MODE7 */
+				0x58 0x17	/* gpmc_a6.gpio1_22, OUTPUT_PULLUP | MODE7 */
+				0x5c 0x7	/* gpmc_a7.gpio1_23, OUTPUT | MODE7 */
+				0x60 0x17	/* gpmc_a8.gpio1_24, OUTPUT_PULLUP | MODE7 */
+			>;
+		};
+	};
+
 	ocp {
 		uart1: serial@44e09000 {
 			status = "okay";
 		};
 
+		leds {
+			compatible = "gpio-leds";
+			pinctrl-names = "default";
+			pinctrl-0 = <&userled_pins>;
+
+			heartbeat {
+				label = "beaglebone:green:usr0";
+				gpios = <&gpio2 21 0>;
+				linux,default-trigger = "heartbeat";
+				default-state = "off";
+			};
+
+			mmc {
+				label = "beaglebone:green:usr1";
+				gpios = <&gpio2 22 0>;
+				linux,default-trigger = "mmc0";
+				default-state = "off";
+			};
+
+			led2 {
+				label = "beaglebone:green:usr2";
+				gpios = <&gpio2 23 0>;
+				default-state = "off";
+			};
+
+			led3 {
+				label = "beaglebone:green:usr3";
+				gpios = <&gpio2 24 0>;
+				default-state = "off";
+			};
+		};
+
 		i2c1: i2c@44e0b000 {
 			status = "okay";
 			clock-frequency = <400000>;
Signature · 6 lines
1.7.9.5

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
#5 lore raw

PATCH v7 2/3 arm/dts: AM33XX: Configure pinmuxs for user leds control on Bone

Quoted 10 lines · Koen Kooi

Op 6 sep. 2012, om 11:38 heeft AnilKumar Ch <[email protected]> het volgende geschreven:

Quoted 5 lines

Adds GPIO pinctrl nodes to am3358_pinmux master node to control user leds (USR0, USR1, USR2 and USR3) present on BeagleBone.

[koen at dominion.thruhere.net: led0, led1 suggested by koen]

This one still has the discussion going on about if GPIO pins should be muxed by the GPIO controller in the "GPIO only" case for gpio leds driver. But other than that:

Quoted 73 lines
Quoted 72 lines

---
arch/arm/boot/dts/am335x-bone.dts | 43 +++++++++++++++++++++++++++++++++++++

1 file changed, 43 insertions(+)
arch/arm/boot/dts/am335x-bone.dts +43 -0
index c634f87..b0a7409 100644
@@ -18,11 +18,54 @@
 		reg = <0x80000000 0x10000000>; /* 256 MB */
 	};
 
+	am33xx_pinmux: pinmux at 44e10800 {
+		userled_pins: pinmux_userled_pins {
+			pinctrl-single,pins = <
+				0x54 0x7	/* gpmc_a5.gpio1_21, OUTPUT | MODE7 */
+				0x58 0x17	/* gpmc_a6.gpio1_22, OUTPUT_PULLUP | MODE7 */
+				0x5c 0x7	/* gpmc_a7.gpio1_23, OUTPUT | MODE7 */
+				0x60 0x17	/* gpmc_a8.gpio1_24, OUTPUT_PULLUP | MODE7 */
+			>;
+		};
+	};
+
 	ocp {
 		uart1: serial at 44e09000 {
 			status = "okay";
 		};
 
+		leds {
+			compatible = "gpio-leds";
+			pinctrl-names = "default";
+			pinctrl-0 = <&userled_pins>;
+
+			heartbeat {
+				label = "beaglebone:green:usr0";
+				gpios = <&gpio2 21 0>;
+				linux,default-trigger = "heartbeat";
+				default-state = "off";
+			};
+
+			mmc {
+				label = "beaglebone:green:usr1";
+				gpios = <&gpio2 22 0>;
+				linux,default-trigger = "mmc0";
+				default-state = "off";
+			};
+
+			led2 {
+				label = "beaglebone:green:usr2";
+				gpios = <&gpio2 23 0>;
+				default-state = "off";
+			};
+
+			led3 {
+				label = "beaglebone:green:usr3";
+				gpios = <&gpio2 24 0>;
+				default-state = "off";
+			};
+		};
+
 		i2c1: i2c at 44e0b000 {
 			status = "okay";
 			clock-frequency = <400000>;
Signature · 6 lines
1.7.9.5

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo at vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
#6 lore raw

PATCH v7 3/3 arm/dts: AM33XX: Add D_CAN device tree data

In reply to AnilKumar Ch

Add Bosch D_CAN controller device tree data to AM33XX dtsi file by adding d_can device nodes with all the necessary parameters.

---
 arch/arm/boot/dts/am33xx.dtsi |   18 ++++++++++++++++++
 1 file changed, 18 insertions(+)
arch/arm/boot/dts/am33xx.dtsi +18 -0
index 58cffb7..600c3053 100644
@@ -177,5 +177,23 @@
 			compatible = "ti,omap3-wdt";
 			ti,hwmods = "wd_timer2";
 		};
+
+		dcan0: d_can at 481cc000 {
+			compatible = "bosch,d_can";
+			ti,hwmods = "d_can0";
+			reg = <0x481cc000 0x2000>;
+			interrupts = <52>;
+			interrupt-parent = <&intc>;
+			status = "disabled";
+		};
+
+		dcan1: d_can at 481d0000 {
+			compatible = "bosch,d_can";
+			ti,hwmods = "d_can1";
+			reg = <0x481d0000 0x2000>;
+			interrupts = <55>;
+			interrupt-parent = <&intc>;
+			status = "disabled";
+		};
 	};
 };
Signature · 1 line
1.7.9.5
#7 lore raw

v7 cover arm/dts: Add device tree data for AM33XX devices

In reply to AnilKumar Ch
Quoted 11 lines · Chimata

Add pinctrl and d_can device tree data to AM33XX family of devices. First two patches add support for pinctrl DT data and third one adds dcan DT data.

Reason behind combining these patches is to apply cleanly on linux-omap tree, because these are sequential patches.

These patches were tested on AM335x-Bone, AM335x-EVM and based on linux-omap:master with this patch
http://www.mail-archive.com/linux-omap at vger.kernel.org/msg74393.html

If there are no changes in this patch series ACK from reviewers (esp. Tony, koen and Marc) will help.

Thanks
AnilKumar

#8 lore raw

v7 cover arm/dts: Add device tree data for AM33XX devices

Hi Anil,

Quoted 13 lines · Chimata
Quoted 11 lines · Chimata

Add pinctrl and d_can device tree data to AM33XX family of devices. First two patches add support for pinctrl DT data and third one adds dcan DT data.

Reason behind combining these patches is to apply cleanly on linux-omap tree, because these are sequential patches.
Yes,
These patches were tested on AM335x-Bone, AM335x-EVM and based on linux-omap:master with this patch
http://www.mail-archive.com/linux-omap at vger.kernel.org/msg74393.html

Quoted 2 lines

If there are no changes in this patch series ACK from reviewers (esp. Tony, koen and Marc) will help.

Yes, indeed. The series looks good to me, but it will be nice to get some acks from people who commented previous revision.

Regards,
Benoit

#9 lore raw

v7 cover arm/dts: Add device tree data for AM33XX devices

Quoted 16 lines · Benoit Cousson

Hi Anil,

Quoted 13 lines · Chimata
Quoted 11 lines · Chimata

Add pinctrl and d_can device tree data to AM33XX family of devices. First two patches add support for pinctrl DT data and third one adds dcan DT data.

Reason behind combining these patches is to apply cleanly on linux-omap tree, because these are sequential patches.
Yes,
These patches were tested on AM335x-Bone, AM335x-EVM and based on linux-omap:master with this patch
http://www.mail-archive.com/linux-omap at vger.kernel.org/msg74393.html

Quoted 5 lines
Quoted 2 lines

If there are no changes in this patch series ACK from reviewers (esp. Tony, koen and Marc) will help.

Yes, indeed. The series looks good to me, but it will be nice to get some acks from people who commented previous revision.

Acked two of them, but there's still some gpio-leds.c discussion going on that should be resolved first.

Tony