linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/4] Add STM32 timers to stm32mp157c
@ 2018-04-17 13:45 Fabrice Gasnier
  2018-04-17 13:45 ` [PATCH 1/4] ARM: dts: stm32: add timers support " Fabrice Gasnier
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: Fabrice Gasnier @ 2018-04-17 13:45 UTC (permalink / raw)
  To: alexandre.torgue, robh+dt
  Cc: mcoquelin.stm32, mark.rutland, devicetree, linux-arm-kernel,
	linux-kernel, fabrice.gasnier

This series adds support for STM32 timers to stm32mp157c. These
timers can act PWM, trigger and/or encoder.
Populate stm32mp157c SOC and ed1/ev1 boards.

Fabrice Gasnier (4):
  ARM: dts: stm32: add timers support to stm32mp157c
  ARM: dts: stm32: add PWM pins used on stm32mp157c-ev1 board
  ARM: dts: stm32: add PWM and triggers on stm32mp157c-ev1 board
  ARM: dts: stm32: enable timer trigger 6 on stm32mp157c-ed1

 arch/arm/boot/dts/stm32mp157-pinctrl.dtsi |  27 +++
 arch/arm/boot/dts/stm32mp157c-ed1.dts     |   7 +
 arch/arm/boot/dts/stm32mp157c-ev1.dts     |  36 ++++
 arch/arm/boot/dts/stm32mp157c.dtsi        | 283 ++++++++++++++++++++++++++++++
 4 files changed, 353 insertions(+)

-- 
1.9.1

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH 1/4] ARM: dts: stm32: add timers support to stm32mp157c
  2018-04-17 13:45 [PATCH 0/4] Add STM32 timers to stm32mp157c Fabrice Gasnier
@ 2018-04-17 13:45 ` Fabrice Gasnier
  2018-04-17 13:45 ` [PATCH 2/4] ARM: dts: stm32: add PWM pins used on stm32mp157c-ev1 board Fabrice Gasnier
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Fabrice Gasnier @ 2018-04-17 13:45 UTC (permalink / raw)
  To: alexandre.torgue, robh+dt
  Cc: mcoquelin.stm32, mark.rutland, devicetree, linux-arm-kernel,
	linux-kernel, fabrice.gasnier

Add PWM and trigger support to stm32mp157c.

Signed-off-by: Fabrice Gasnier <fabrice.gasnier@st.com>
---
 arch/arm/boot/dts/stm32mp157c.dtsi | 283 +++++++++++++++++++++++++++++++++++++
 1 file changed, 283 insertions(+)

diff --git a/arch/arm/boot/dts/stm32mp157c.dtsi b/arch/arm/boot/dts/stm32mp157c.dtsi
index bc3eddc..115ec73 100644
--- a/arch/arm/boot/dts/stm32mp157c.dtsi
+++ b/arch/arm/boot/dts/stm32mp157c.dtsi
@@ -104,6 +104,185 @@
 		interrupt-parent = <&intc>;
 		ranges;
 
+		timers2: timer@40000000 {
+			#address-cells = <1>;
+			#size-cells = <0>;
+			compatible = "st,stm32-timers";
+			reg = <0x40000000 0x400>;
+			clocks = <&rcc TIM2_K>;
+			clock-names = "int";
+			status = "disabled";
+
+			pwm {
+				compatible = "st,stm32-pwm";
+				status = "disabled";
+			};
+
+			timer@1 {
+				compatible = "st,stm32h7-timer-trigger";
+				reg = <1>;
+				status = "disabled";
+			};
+		};
+
+		timers3: timer@40001000 {
+			#address-cells = <1>;
+			#size-cells = <0>;
+			compatible = "st,stm32-timers";
+			reg = <0x40001000 0x400>;
+			clocks = <&rcc TIM3_K>;
+			clock-names = "int";
+			status = "disabled";
+
+			pwm {
+				compatible = "st,stm32-pwm";
+				status = "disabled";
+			};
+
+			timer@2 {
+				compatible = "st,stm32h7-timer-trigger";
+				reg = <2>;
+				status = "disabled";
+			};
+		};
+
+		timers4: timer@40002000 {
+			#address-cells = <1>;
+			#size-cells = <0>;
+			compatible = "st,stm32-timers";
+			reg = <0x40002000 0x400>;
+			clocks = <&rcc TIM4_K>;
+			clock-names = "int";
+			status = "disabled";
+
+			pwm {
+				compatible = "st,stm32-pwm";
+				status = "disabled";
+			};
+
+			timer@3 {
+				compatible = "st,stm32h7-timer-trigger";
+				reg = <3>;
+				status = "disabled";
+			};
+		};
+
+		timers5: timer@40003000 {
+			#address-cells = <1>;
+			#size-cells = <0>;
+			compatible = "st,stm32-timers";
+			reg = <0x40003000 0x400>;
+			clocks = <&rcc TIM5_K>;
+			clock-names = "int";
+			status = "disabled";
+
+			pwm {
+				compatible = "st,stm32-pwm";
+				status = "disabled";
+			};
+
+			timer@4 {
+				compatible = "st,stm32h7-timer-trigger";
+				reg = <4>;
+				status = "disabled";
+			};
+		};
+
+		timers6: timer@40004000 {
+			#address-cells = <1>;
+			#size-cells = <0>;
+			compatible = "st,stm32-timers";
+			reg = <0x40004000 0x400>;
+			clocks = <&rcc TIM6_K>;
+			clock-names = "int";
+			status = "disabled";
+
+			timer@5 {
+				compatible = "st,stm32h7-timer-trigger";
+				reg = <5>;
+				status = "disabled";
+			};
+		};
+
+		timers7: timer@40005000 {
+			#address-cells = <1>;
+			#size-cells = <0>;
+			compatible = "st,stm32-timers";
+			reg = <0x40005000 0x400>;
+			clocks = <&rcc TIM7_K>;
+			clock-names = "int";
+			status = "disabled";
+
+			timer@6 {
+				compatible = "st,stm32h7-timer-trigger";
+				reg = <6>;
+				status = "disabled";
+			};
+		};
+
+		timers12: timer@40006000 {
+			#address-cells = <1>;
+			#size-cells = <0>;
+			compatible = "st,stm32-timers";
+			reg = <0x40006000 0x400>;
+			clocks = <&rcc TIM12_K>;
+			clock-names = "int";
+			status = "disabled";
+
+			pwm {
+				compatible = "st,stm32-pwm";
+				status = "disabled";
+			};
+
+			timer@11 {
+				compatible = "st,stm32h7-timer-trigger";
+				reg = <11>;
+				status = "disabled";
+			};
+		};
+
+		timers13: timer@40007000 {
+			#address-cells = <1>;
+			#size-cells = <0>;
+			compatible = "st,stm32-timers";
+			reg = <0x40007000 0x400>;
+			clocks = <&rcc TIM13_K>;
+			clock-names = "int";
+			status = "disabled";
+
+			pwm {
+				compatible = "st,stm32-pwm";
+				status = "disabled";
+			};
+
+			timer@12 {
+				compatible = "st,stm32h7-timer-trigger";
+				reg = <12>;
+				status = "disabled";
+			};
+		};
+
+		timers14: timer@40008000 {
+			#address-cells = <1>;
+			#size-cells = <0>;
+			compatible = "st,stm32-timers";
+			reg = <0x40008000 0x400>;
+			clocks = <&rcc TIM14_K>;
+			clock-names = "int";
+			status = "disabled";
+
+			pwm {
+				compatible = "st,stm32-pwm";
+				status = "disabled";
+			};
+
+			timer@13 {
+				compatible = "st,stm32h7-timer-trigger";
+				reg = <13>;
+				status = "disabled";
+			};
+		};
+
 		usart2: serial@4000e000 {
 			compatible = "st,stm32h7-uart";
 			reg = <0x4000e000 0x400>;
@@ -152,6 +331,48 @@
 			status = "disabled";
 		};
 
+		timers1: timer@44000000 {
+			#address-cells = <1>;
+			#size-cells = <0>;
+			compatible = "st,stm32-timers";
+			reg = <0x44000000 0x400>;
+			clocks = <&rcc TIM1_K>;
+			clock-names = "int";
+			status = "disabled";
+
+			pwm {
+				compatible = "st,stm32-pwm";
+				status = "disabled";
+			};
+
+			timer@0 {
+				compatible = "st,stm32h7-timer-trigger";
+				reg = <0>;
+				status = "disabled";
+			};
+		};
+
+		timers8: timer@44001000 {
+			#address-cells = <1>;
+			#size-cells = <0>;
+			compatible = "st,stm32-timers";
+			reg = <0x44001000 0x400>;
+			clocks = <&rcc TIM8_K>;
+			clock-names = "int";
+			status = "disabled";
+
+			pwm {
+				compatible = "st,stm32-pwm";
+				status = "disabled";
+			};
+
+			timer@7 {
+				compatible = "st,stm32h7-timer-trigger";
+				reg = <7>;
+				status = "disabled";
+			};
+		};
+
 		usart6: serial@44003000 {
 			compatible = "st,stm32h7-uart";
 			reg = <0x44003000 0x400>;
@@ -160,6 +381,68 @@
 			status = "disabled";
 		};
 
+		timers15: timer@44006000 {
+			#address-cells = <1>;
+			#size-cells = <0>;
+			compatible = "st,stm32-timers";
+			reg = <0x44006000 0x400>;
+			clocks = <&rcc TIM15_K>;
+			clock-names = "int";
+			status = "disabled";
+
+			pwm {
+				compatible = "st,stm32-pwm";
+				status = "disabled";
+			};
+
+			timer@14 {
+				compatible = "st,stm32h7-timer-trigger";
+				reg = <14>;
+				status = "disabled";
+			};
+		};
+
+		timers16: timer@44007000 {
+			#address-cells = <1>;
+			#size-cells = <0>;
+			compatible = "st,stm32-timers";
+			reg = <0x44007000 0x400>;
+			clocks = <&rcc TIM16_K>;
+			clock-names = "int";
+			status = "disabled";
+
+			pwm {
+				compatible = "st,stm32-pwm";
+				status = "disabled";
+			};
+			timer@15 {
+				compatible = "st,stm32h7-timer-trigger";
+				reg = <15>;
+				status = "disabled";
+			};
+		};
+
+		timers17: timer@44008000 {
+			#address-cells = <1>;
+			#size-cells = <0>;
+			compatible = "st,stm32-timers";
+			reg = <0x44008000 0x400>;
+			clocks = <&rcc TIM17_K>;
+			clock-names = "int";
+			status = "disabled";
+
+			pwm {
+				compatible = "st,stm32-pwm";
+				status = "disabled";
+			};
+
+			timer@16 {
+				compatible = "st,stm32h7-timer-trigger";
+				reg = <16>;
+				status = "disabled";
+			};
+		};
+
 		rcc: rcc@50000000 {
 			compatible = "st,stm32mp1-rcc", "syscon";
 			reg = <0x50000000 0x1000>;
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 2/4] ARM: dts: stm32: add PWM pins used on stm32mp157c-ev1 board
  2018-04-17 13:45 [PATCH 0/4] Add STM32 timers to stm32mp157c Fabrice Gasnier
  2018-04-17 13:45 ` [PATCH 1/4] ARM: dts: stm32: add timers support " Fabrice Gasnier
@ 2018-04-17 13:45 ` Fabrice Gasnier
  2018-04-17 13:45 ` [PATCH 3/4] ARM: dts: stm32: add PWM and triggers " Fabrice Gasnier
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Fabrice Gasnier @ 2018-04-17 13:45 UTC (permalink / raw)
  To: alexandre.torgue, robh+dt
  Cc: mcoquelin.stm32, mark.rutland, devicetree, linux-arm-kernel,
	linux-kernel, fabrice.gasnier

stm32mp157c evaluation board has following PWM pins available on GPIO
expansion connector:
- TIM2_CH4 (PA3)
- TIM8_CH4 (PI2)
- TIM12_CH1 (PH6)

Signed-off-by: Fabrice Gasnier <fabrice.gasnier@st.com>
---
 arch/arm/boot/dts/stm32mp157-pinctrl.dtsi | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/arch/arm/boot/dts/stm32mp157-pinctrl.dtsi b/arch/arm/boot/dts/stm32mp157-pinctrl.dtsi
index 6f044100..867cfeb 100644
--- a/arch/arm/boot/dts/stm32mp157-pinctrl.dtsi
+++ b/arch/arm/boot/dts/stm32mp157-pinctrl.dtsi
@@ -158,6 +158,33 @@
 					bias-disable;
 				};
 			};
+
+			pwm2_pins_a: pwm2@0 {
+				pins {
+					pinmux = <STM32_PINMUX('A', 3, AF1)>; /* TIM2_CH4 */
+					bias-pull-down;
+					drive-push-pull;
+					slew-rate = <0>;
+				};
+			};
+
+			pwm8_pins_a: pwm8@0 {
+				pins {
+					pinmux = <STM32_PINMUX('I', 2, AF3)>; /* TIM8_CH4 */
+					bias-pull-down;
+					drive-push-pull;
+					slew-rate = <0>;
+				};
+			};
+
+			pwm12_pins_a: pwm12@0 {
+				pins {
+					pinmux = <STM32_PINMUX('H', 6, AF2)>; /* TIM12_CH1 */
+					bias-pull-down;
+					drive-push-pull;
+					slew-rate = <0>;
+				};
+			};
 		};
 
 		pinctrl_z: pin-controller-z {
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 3/4] ARM: dts: stm32: add PWM and triggers on stm32mp157c-ev1 board
  2018-04-17 13:45 [PATCH 0/4] Add STM32 timers to stm32mp157c Fabrice Gasnier
  2018-04-17 13:45 ` [PATCH 1/4] ARM: dts: stm32: add timers support " Fabrice Gasnier
  2018-04-17 13:45 ` [PATCH 2/4] ARM: dts: stm32: add PWM pins used on stm32mp157c-ev1 board Fabrice Gasnier
@ 2018-04-17 13:45 ` Fabrice Gasnier
  2018-04-17 13:45 ` [PATCH 4/4] ARM: dts: stm32: enable timer trigger 6 on stm32mp157c-ed1 Fabrice Gasnier
  2018-05-02  8:13 ` [PATCH 0/4] Add STM32 timers to stm32mp157c Alexandre Torgue
  4 siblings, 0 replies; 6+ messages in thread
From: Fabrice Gasnier @ 2018-04-17 13:45 UTC (permalink / raw)
  To: alexandre.torgue, robh+dt
  Cc: mcoquelin.stm32, mark.rutland, devicetree, linux-arm-kernel,
	linux-kernel, fabrice.gasnier

stm32mp157c evaluation board has TIM2_CH4, TIM8_CH4 and TIM12_CH1
available on GPIO expansion connector.
Add PWM and associated triggers (for ADC/DAC) on these timers.
Keep them disabled so these pins can be used as GPIOs by default.

Signed-off-by: Fabrice Gasnier <fabrice.gasnier@st.com>
---
 arch/arm/boot/dts/stm32mp157c-ev1.dts | 36 +++++++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)

diff --git a/arch/arm/boot/dts/stm32mp157c-ev1.dts b/arch/arm/boot/dts/stm32mp157c-ev1.dts
index 57e6dbc..2109558 100644
--- a/arch/arm/boot/dts/stm32mp157c-ev1.dts
+++ b/arch/arm/boot/dts/stm32mp157c-ev1.dts
@@ -19,3 +19,39 @@
 		serial0 = &uart4;
 	};
 };
+
+&timers2 {
+	status = "disabled";
+	pwm {
+		pinctrl-0 = <&pwm2_pins_a>;
+		pinctrl-names = "default";
+		status = "okay";
+	};
+	timer@1 {
+		status = "okay";
+	};
+};
+
+&timers8 {
+	status = "disabled";
+	pwm {
+		pinctrl-0 = <&pwm8_pins_a>;
+		pinctrl-names = "default";
+		status = "okay";
+	};
+	timer@7 {
+		status = "okay";
+	};
+};
+
+&timers12 {
+	status = "disabled";
+	pwm {
+		pinctrl-0 = <&pwm12_pins_a>;
+		pinctrl-names = "default";
+		status = "okay";
+	};
+	timer@11 {
+		status = "okay";
+	};
+};
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 4/4] ARM: dts: stm32: enable timer trigger 6 on stm32mp157c-ed1
  2018-04-17 13:45 [PATCH 0/4] Add STM32 timers to stm32mp157c Fabrice Gasnier
                   ` (2 preceding siblings ...)
  2018-04-17 13:45 ` [PATCH 3/4] ARM: dts: stm32: add PWM and triggers " Fabrice Gasnier
@ 2018-04-17 13:45 ` Fabrice Gasnier
  2018-05-02  8:13 ` [PATCH 0/4] Add STM32 timers to stm32mp157c Alexandre Torgue
  4 siblings, 0 replies; 6+ messages in thread
From: Fabrice Gasnier @ 2018-04-17 13:45 UTC (permalink / raw)
  To: alexandre.torgue, robh+dt
  Cc: mcoquelin.stm32, mark.rutland, devicetree, linux-arm-kernel,
	linux-kernel, fabrice.gasnier

Enable timer 6 on stm32mp157c-ed1 that can serve as trigger for
ADC for instance.

Signed-off-by: Fabrice Gasnier <fabrice.gasnier@st.com>
---
 arch/arm/boot/dts/stm32mp157c-ed1.dts | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/arch/arm/boot/dts/stm32mp157c-ed1.dts b/arch/arm/boot/dts/stm32mp157c-ed1.dts
index 9f90337a..4f12225 100644
--- a/arch/arm/boot/dts/stm32mp157c-ed1.dts
+++ b/arch/arm/boot/dts/stm32mp157c-ed1.dts
@@ -25,6 +25,13 @@
 	};
 };
 
+&timers6 {
+	status = "okay";
+	timer@5 {
+		status = "okay";
+	};
+};
+
 &uart4 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&uart4_pins_a>;
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH 0/4] Add STM32 timers to stm32mp157c
  2018-04-17 13:45 [PATCH 0/4] Add STM32 timers to stm32mp157c Fabrice Gasnier
                   ` (3 preceding siblings ...)
  2018-04-17 13:45 ` [PATCH 4/4] ARM: dts: stm32: enable timer trigger 6 on stm32mp157c-ed1 Fabrice Gasnier
@ 2018-05-02  8:13 ` Alexandre Torgue
  4 siblings, 0 replies; 6+ messages in thread
From: Alexandre Torgue @ 2018-05-02  8:13 UTC (permalink / raw)
  To: Fabrice Gasnier, robh+dt
  Cc: mcoquelin.stm32, mark.rutland, devicetree, linux-arm-kernel,
	linux-kernel

Hi Fabrice,

On 04/17/2018 03:45 PM, Fabrice Gasnier wrote:
> This series adds support for STM32 timers to stm32mp157c. These
> timers can act PWM, trigger and/or encoder.
> Populate stm32mp157c SOC and ed1/ev1 boards.
> 
> Fabrice Gasnier (4):
>    ARM: dts: stm32: add timers support to stm32mp157c
>    ARM: dts: stm32: add PWM pins used on stm32mp157c-ev1 board
>    ARM: dts: stm32: add PWM and triggers on stm32mp157c-ev1 board
>    ARM: dts: stm32: enable timer trigger 6 on stm32mp157c-ed1
> 
>   arch/arm/boot/dts/stm32mp157-pinctrl.dtsi |  27 +++
>   arch/arm/boot/dts/stm32mp157c-ed1.dts     |   7 +
>   arch/arm/boot/dts/stm32mp157c-ev1.dts     |  36 ++++
>   arch/arm/boot/dts/stm32mp157c.dtsi        | 283 ++++++++++++++++++++++++++++++
>   4 files changed, 353 insertions(+)
> 

Series applied on stm32-next.
Note that I modified pinctrl patch to fix DTC warnings when make W=12 is 
used.

Regards
Alex

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2018-05-02  8:14 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-04-17 13:45 [PATCH 0/4] Add STM32 timers to stm32mp157c Fabrice Gasnier
2018-04-17 13:45 ` [PATCH 1/4] ARM: dts: stm32: add timers support " Fabrice Gasnier
2018-04-17 13:45 ` [PATCH 2/4] ARM: dts: stm32: add PWM pins used on stm32mp157c-ev1 board Fabrice Gasnier
2018-04-17 13:45 ` [PATCH 3/4] ARM: dts: stm32: add PWM and triggers " Fabrice Gasnier
2018-04-17 13:45 ` [PATCH 4/4] ARM: dts: stm32: enable timer trigger 6 on stm32mp157c-ed1 Fabrice Gasnier
2018-05-02  8:13 ` [PATCH 0/4] Add STM32 timers to stm32mp157c Alexandre Torgue

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).