arm/dts: Add device tree data for AM33XX devices
v6 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 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
PATCH RESEND v5 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
@@ -40,6 +40,15 @@ }; }; + am3358_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
PATCH RESEND v5 1/3 arm/dts: AM33XX: Add basic pinctrl device tree data
Quoted 18 lines · AnilKumar Ch
Adds basic pinctrl device tree data for AM33XX family of devices. This patch is based on the pinctrl-single driver.
Signed-off-by AnilKumar Ch <[email protected]>--- arch/arm/boot/dts/am33xx.dtsi | 9 +++++++++ 1 file changed, 9 insertions(+)arch/arm/boot/dts/am33xx.dtsi +2
-0@@ -40,6 +40,15 @@ }; }; + am3358_pinmux: pinmux at 44e10800 { + compatible = "pinctrl-single";
arch/arm/boot/dts/am33xx.dtsi line 54
Quoted 10 lines
arch/arm/boot/dts/am33xx.dtsi +7
-0+ 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
Sorry meant to comment here on the am3358_pinmux naming vs am33xx_pinmux naming, please check the comment in the earlier version of this patch.
Regards,
Tony
PATCH v6 2/3 arm/dts: AM33XX: Configure pinmuxs for user leds control on Bone
In reply to AnilKumar ChAdds GPIO pinctrl nodes to am3358_pinmux master node to control user leds (USR0, USR1, USR2 and USR3) present on BeagleBone.
--- arch/arm/boot/dts/am335x-bone.dts | 43 +++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+)
arch/arm/boot/dts/am335x-bone.dts +43 -0
@@ -18,11 +18,54 @@ reg = <0x80000000 0x10000000>; /* 256 MB */ }; + am3358_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
PATCH v6 2/3 arm/dts: AM33XX: Configure pinmuxs for user leds control on Bone
Quoted 18 lines · AnilKumar Ch
Adds GPIO pinctrl nodes to
am3358_pinmuxmaster node to control user leds (USR0, USR1, USR2 and USR3) present on BeagleBone.[koen at dominion.thruhere.net: led0, led1 suggested by koen]Signed-off-by AnilKumar Ch <[email protected]>--- arch/arm/boot/dts/am335x-bone.dts | 43 +++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+)arch/arm/boot/dts/am335x-bone.dts +1
-0@@ -18,11 +18,54 @@ reg = <0x80000000 0x10000000>; /* 256 MB */ }; + am3358_pinmux: pinmux at 44e10800 {
arch/arm/boot/dts/am335x-bone.dts line 31
Quoted 10 lines
arch/arm/boot/dts/am335x-bone.dts +10
-0+ 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 */ + >; + }; + }; +
Just checking.. am3358_pinmux should be am33xx_pinmux in this patch too as discussed.
Regards,
Tony
PATCH v6 2/3 arm/dts: AM33XX: Configure pinmuxs for user leds control on Bone
Tony,
Quoted 18 lines · Tony Lindgren
Quoted 17 lines · AnilKumar Ch
Adds GPIO pinctrl nodes to
am3358_pinmuxmaster node to control user leds (USR0, USR1, USR2 and USR3) present on BeagleBone.[koen at dominion.thruhere.net: led0, led1 suggested by koen]Signed-off-by AnilKumar Ch <[email protected]>--- arch/arm/boot/dts/am335x-bone.dts | 43 +++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+)arch/arm/boot/dts/am335x-bone.dts +0
-0@@ -18,11 +18,54 @@ reg = <0x80000000 0x10000000>; /* 256 MB */ };
Quoted 15 lines
arch/arm/boot/dts/am335x-bone.dts line 31
Quoted 11 lines
arch/arm/boot/dts/am335x-bone.dts +11
-0+ am3358_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 */ + >; + }; + }; +Just checking..
am3358_pinmuxshould beam33xx_pinmuxin this patch too as discussed.
Yes, this is also changed in v7.
Thanks
AnilKumar
PATCH RESEND v5 3/3 arm/dts: AM33XX: Add D_CAN device tree data
In reply to AnilKumar ChAdd 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
@@ -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
PATCH RESEND v5 3/3 arm/dts: AM33XX: Add D_CAN device tree data
Quoted 14 lines · AnilKumar Ch
Add Bosch
D_CANcontroller device tree data to AM33XX dtsi file by addingd_candevice nodes with all the necessary parameters.Signed-off-by AnilKumar Ch <[email protected]>--- arch/arm/boot/dts/am33xx.dtsi | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+)arch/arm/boot/dts/am33xx.dtsi +0
-0
arch/arm/boot/dts/am33xx.dtsi line 182
Quoted 6 lines
arch/arm/boot/dts/am33xx.dtsi +3
-0@@ -177,5 +177,23 @@ compatible = "ti,omap3-wdt"; ti,hwmods = "wd_timer2"; }; + + dcan0: d_can at 481cc000 { + compatible = "bosch,d_can";
On imx/mxs we also add a compatible for the current hardware, this may look like this:
compatible = "ti,am33xx-can", "bosch,d_can";
But I don't know if this is a generic policy or just an imx/mxs thing :)
Marc
Quoted 18 lines
arch/arm/boot/dts/am33xx.dtsi +15
-0+ 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 · 12 lines
Pengutronix e.K. | Marc Kleine-Budde | Industrial Linux Solutions | Phone: +49-231-2826-924 | Vertretung West/Dortmund | Fax: +49-5121-206917-5555 | Amtsgericht Hildesheim, HRA 2686 | http://www.pengutronix.de | -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 259 bytes Desc: OpenPGP digital signature URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20120905/e976f849/attachment.sig>
PATCH RESEND v5 3/3 arm/dts: AM33XX: Add D_CAN device tree data
Quoted 25 lines · Marc Kleine-Budde
Quoted 14 lines · AnilKumar Ch
Add Bosch
D_CANcontroller device tree data to AM33XX dtsi file by addingd_candevice nodes with all the necessary parameters.Signed-off-by AnilKumar Ch <[email protected]>--- arch/arm/boot/dts/am33xx.dtsi | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+)arch/arm/boot/dts/am33xx.dtsi +0
-0arch/arm/boot/dts/am33xx.dtsi line 182
Quoted 6 lines
arch/arm/boot/dts/am33xx.dtsi +3
-0@@ -177,5 +177,23 @@ compatible = "ti,omap3-wdt"; ti,hwmods = "wd_timer2"; }; + + dcan0: d_can at 481cc000 { + compatible = "bosch,d_can";On imx/mxs we also add a compatible for the current hardware, this may look like this:
Quoted 4 lines
compatible = "ti,am33xx-can", "bosch,d_can";But I don't know if this is a generic policy or just an imx/mxs thing :)
Marc,
No driver compatible name is ip specific so "ti,am33xx-can" is not required, I am not seeing any advantage if we add this name.
If there are any changes required for am33xx specific in driver then we can add "ti,am33xx-can" name in driver otherwise no use.
Thanks
AnilKumar