From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752378AbdGGQcC (ORCPT ); Fri, 7 Jul 2017 12:32:02 -0400 Received: from mx07-00178001.pphosted.com ([62.209.51.94]:24979 "EHLO mx07-00178001.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751034AbdGGQb5 (ORCPT ); Fri, 7 Jul 2017 12:31:57 -0400 From: Fabrice Gasnier To: , , , , CC: , , , , , , , , , Subject: [PATCH v3 0/9] Add STM32 LPTimer: PWM, trigger and counter Date: Fri, 7 Jul 2017 18:30:59 +0200 Message-ID: <1499445068-7037-1-git-send-email-fabrice.gasnier@st.com> X-Mailer: git-send-email 1.9.1 MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [10.75.127.45] X-ClientProxiedBy: SFHDAG5NODE1.st.com (10.75.127.13) To SFHDAG5NODE3.st.com (10.75.127.15) X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:,, definitions=2017-07-07_08:,, signatures=0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This series adds support for Low-Power Timer that can be found on some STM32 devices. STM32 LPTimer (LPTIM) is a 16-bit timer that provides several functionalities. This series adds support for following features: - PWM output (with programmable prescaler, configurable polarity) - Trigger source for STM32 ADC or DAC (LPTIM_OUT) - Quadrature encoder and counter The MFD core is used to manage common resources (clock, register map) and to detect encoder feature. "stm32_lptimer" structure is provided to its sub-nodes to share those information: - PWM driver is used to implement single PWM channel - IIO trigger - IIO quadrature encoder and counter --- Changes in v3: - I sent this v3 with various changes, but still need to discuss ABI for counter driver (no change on this in v3). - Remarks for Rob on dt-bindings - Add validate_device in Trigger driver - Update PWM driver after Thierry's comments - Additional patch for STM32 ADC trigger Changes in v2: - Various remarks from Lee, on MFD part, extended to the full series, such as: clock name, use "Low-Power Timer", file headers, dt-bindings props descriptions, fix dt example. Fabrice Gasnier (9): dt-bindings: mfd: Add STM32 LPTimer binding mfd: Add STM32 LPTimer driver dt-bindings: pwm: Add STM32 LPTimer PWM binding pwm: Add STM32 LPTimer PWM driver dt-bindings: iio: Add STM32 LPTimer trigger binding iio: trigger: Add STM32 LPTimer trigger driver dt-bindings: iio: Add STM32 LPTimer quadrature encoder and counter iio: counter: Add support for STM32 LPTimer iio: adc: stm32: add support for lptimer triggers .../ABI/testing/sysfs-bus-iio-lptimer-stm32 | 57 +++ .../bindings/iio/counter/stm32-lptimer-cnt.txt | 27 ++ .../bindings/iio/timer/stm32-lptimer-trigger.txt | 23 ++ .../devicetree/bindings/mfd/stm32-lptimer.txt | 48 +++ .../devicetree/bindings/pwm/pwm-stm32-lp.txt | 24 ++ drivers/iio/adc/stm32-adc.c | 14 +- drivers/iio/counter/Kconfig | 9 + drivers/iio/counter/Makefile | 1 + drivers/iio/counter/stm32-lptimer-cnt.c | 383 +++++++++++++++++++++ drivers/iio/trigger/Kconfig | 11 + drivers/iio/trigger/Makefile | 1 + drivers/iio/trigger/stm32-lptimer-trigger.c | 118 +++++++ drivers/mfd/Kconfig | 14 + drivers/mfd/Makefile | 1 + drivers/mfd/stm32-lptimer.c | 107 ++++++ drivers/pwm/Kconfig | 10 + drivers/pwm/Makefile | 1 + drivers/pwm/pwm-stm32-lp.c | 246 +++++++++++++ include/linux/iio/timer/stm32-lptim-trigger.h | 27 ++ include/linux/mfd/stm32-lptimer.h | 62 ++++ 20 files changed, 1182 insertions(+), 2 deletions(-) create mode 100644 Documentation/ABI/testing/sysfs-bus-iio-lptimer-stm32 create mode 100644 Documentation/devicetree/bindings/iio/counter/stm32-lptimer-cnt.txt create mode 100644 Documentation/devicetree/bindings/iio/timer/stm32-lptimer-trigger.txt create mode 100644 Documentation/devicetree/bindings/mfd/stm32-lptimer.txt create mode 100644 Documentation/devicetree/bindings/pwm/pwm-stm32-lp.txt create mode 100644 drivers/iio/counter/stm32-lptimer-cnt.c create mode 100644 drivers/iio/trigger/stm32-lptimer-trigger.c create mode 100644 drivers/mfd/stm32-lptimer.c create mode 100644 drivers/pwm/pwm-stm32-lp.c create mode 100644 include/linux/iio/timer/stm32-lptim-trigger.h create mode 100644 include/linux/mfd/stm32-lptimer.h -- 1.9.1 From mboxrd@z Thu Jan 1 00:00:00 1970 From: Fabrice Gasnier Subject: [PATCH v3 0/9] Add STM32 LPTimer: PWM, trigger and counter Date: Fri, 7 Jul 2017 18:30:59 +0200 Message-ID: <1499445068-7037-1-git-send-email-fabrice.gasnier@st.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=m.gmane.org@lists.infradead.org To: lee.jones@linaro.org, benjamin.gaignard@linaro.org, jic23@kernel.org, thierry.reding@gmail.com, robh+dt@kernel.org Cc: mark.rutland@arm.com, devicetree@vger.kernel.org, alexandre.torgue@st.com, linux-pwm@vger.kernel.org, linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, mcoquelin.stm32@gmail.com, fabrice.gasnier@st.com, linux-arm-kernel@lists.infradead.org, benjamin.gaignard@st.com List-Id: devicetree@vger.kernel.org This series adds support for Low-Power Timer that can be found on some STM32 devices. STM32 LPTimer (LPTIM) is a 16-bit timer that provides several functionalities. This series adds support for following features: - PWM output (with programmable prescaler, configurable polarity) - Trigger source for STM32 ADC or DAC (LPTIM_OUT) - Quadrature encoder and counter The MFD core is used to manage common resources (clock, register map) and to detect encoder feature. "stm32_lptimer" structure is provided to its sub-nodes to share those information: - PWM driver is used to implement single PWM channel - IIO trigger - IIO quadrature encoder and counter --- Changes in v3: - I sent this v3 with various changes, but still need to discuss ABI for counter driver (no change on this in v3). - Remarks for Rob on dt-bindings - Add validate_device in Trigger driver - Update PWM driver after Thierry's comments - Additional patch for STM32 ADC trigger Changes in v2: - Various remarks from Lee, on MFD part, extended to the full series, such as: clock name, use "Low-Power Timer", file headers, dt-bindings props descriptions, fix dt example. Fabrice Gasnier (9): dt-bindings: mfd: Add STM32 LPTimer binding mfd: Add STM32 LPTimer driver dt-bindings: pwm: Add STM32 LPTimer PWM binding pwm: Add STM32 LPTimer PWM driver dt-bindings: iio: Add STM32 LPTimer trigger binding iio: trigger: Add STM32 LPTimer trigger driver dt-bindings: iio: Add STM32 LPTimer quadrature encoder and counter iio: counter: Add support for STM32 LPTimer iio: adc: stm32: add support for lptimer triggers .../ABI/testing/sysfs-bus-iio-lptimer-stm32 | 57 +++ .../bindings/iio/counter/stm32-lptimer-cnt.txt | 27 ++ .../bindings/iio/timer/stm32-lptimer-trigger.txt | 23 ++ .../devicetree/bindings/mfd/stm32-lptimer.txt | 48 +++ .../devicetree/bindings/pwm/pwm-stm32-lp.txt | 24 ++ drivers/iio/adc/stm32-adc.c | 14 +- drivers/iio/counter/Kconfig | 9 + drivers/iio/counter/Makefile | 1 + drivers/iio/counter/stm32-lptimer-cnt.c | 383 +++++++++++++++++++++ drivers/iio/trigger/Kconfig | 11 + drivers/iio/trigger/Makefile | 1 + drivers/iio/trigger/stm32-lptimer-trigger.c | 118 +++++++ drivers/mfd/Kconfig | 14 + drivers/mfd/Makefile | 1 + drivers/mfd/stm32-lptimer.c | 107 ++++++ drivers/pwm/Kconfig | 10 + drivers/pwm/Makefile | 1 + drivers/pwm/pwm-stm32-lp.c | 246 +++++++++++++ include/linux/iio/timer/stm32-lptim-trigger.h | 27 ++ include/linux/mfd/stm32-lptimer.h | 62 ++++ 20 files changed, 1182 insertions(+), 2 deletions(-) create mode 100644 Documentation/ABI/testing/sysfs-bus-iio-lptimer-stm32 create mode 100644 Documentation/devicetree/bindings/iio/counter/stm32-lptimer-cnt.txt create mode 100644 Documentation/devicetree/bindings/iio/timer/stm32-lptimer-trigger.txt create mode 100644 Documentation/devicetree/bindings/mfd/stm32-lptimer.txt create mode 100644 Documentation/devicetree/bindings/pwm/pwm-stm32-lp.txt create mode 100644 drivers/iio/counter/stm32-lptimer-cnt.c create mode 100644 drivers/iio/trigger/stm32-lptimer-trigger.c create mode 100644 drivers/mfd/stm32-lptimer.c create mode 100644 drivers/pwm/pwm-stm32-lp.c create mode 100644 include/linux/iio/timer/stm32-lptim-trigger.h create mode 100644 include/linux/mfd/stm32-lptimer.h -- 1.9.1 From mboxrd@z Thu Jan 1 00:00:00 1970 From: fabrice.gasnier@st.com (Fabrice Gasnier) Date: Fri, 7 Jul 2017 18:30:59 +0200 Subject: [PATCH v3 0/9] Add STM32 LPTimer: PWM, trigger and counter Message-ID: <1499445068-7037-1-git-send-email-fabrice.gasnier@st.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org This series adds support for Low-Power Timer that can be found on some STM32 devices. STM32 LPTimer (LPTIM) is a 16-bit timer that provides several functionalities. This series adds support for following features: - PWM output (with programmable prescaler, configurable polarity) - Trigger source for STM32 ADC or DAC (LPTIM_OUT) - Quadrature encoder and counter The MFD core is used to manage common resources (clock, register map) and to detect encoder feature. "stm32_lptimer" structure is provided to its sub-nodes to share those information: - PWM driver is used to implement single PWM channel - IIO trigger - IIO quadrature encoder and counter --- Changes in v3: - I sent this v3 with various changes, but still need to discuss ABI for counter driver (no change on this in v3). - Remarks for Rob on dt-bindings - Add validate_device in Trigger driver - Update PWM driver after Thierry's comments - Additional patch for STM32 ADC trigger Changes in v2: - Various remarks from Lee, on MFD part, extended to the full series, such as: clock name, use "Low-Power Timer", file headers, dt-bindings props descriptions, fix dt example. Fabrice Gasnier (9): dt-bindings: mfd: Add STM32 LPTimer binding mfd: Add STM32 LPTimer driver dt-bindings: pwm: Add STM32 LPTimer PWM binding pwm: Add STM32 LPTimer PWM driver dt-bindings: iio: Add STM32 LPTimer trigger binding iio: trigger: Add STM32 LPTimer trigger driver dt-bindings: iio: Add STM32 LPTimer quadrature encoder and counter iio: counter: Add support for STM32 LPTimer iio: adc: stm32: add support for lptimer triggers .../ABI/testing/sysfs-bus-iio-lptimer-stm32 | 57 +++ .../bindings/iio/counter/stm32-lptimer-cnt.txt | 27 ++ .../bindings/iio/timer/stm32-lptimer-trigger.txt | 23 ++ .../devicetree/bindings/mfd/stm32-lptimer.txt | 48 +++ .../devicetree/bindings/pwm/pwm-stm32-lp.txt | 24 ++ drivers/iio/adc/stm32-adc.c | 14 +- drivers/iio/counter/Kconfig | 9 + drivers/iio/counter/Makefile | 1 + drivers/iio/counter/stm32-lptimer-cnt.c | 383 +++++++++++++++++++++ drivers/iio/trigger/Kconfig | 11 + drivers/iio/trigger/Makefile | 1 + drivers/iio/trigger/stm32-lptimer-trigger.c | 118 +++++++ drivers/mfd/Kconfig | 14 + drivers/mfd/Makefile | 1 + drivers/mfd/stm32-lptimer.c | 107 ++++++ drivers/pwm/Kconfig | 10 + drivers/pwm/Makefile | 1 + drivers/pwm/pwm-stm32-lp.c | 246 +++++++++++++ include/linux/iio/timer/stm32-lptim-trigger.h | 27 ++ include/linux/mfd/stm32-lptimer.h | 62 ++++ 20 files changed, 1182 insertions(+), 2 deletions(-) create mode 100644 Documentation/ABI/testing/sysfs-bus-iio-lptimer-stm32 create mode 100644 Documentation/devicetree/bindings/iio/counter/stm32-lptimer-cnt.txt create mode 100644 Documentation/devicetree/bindings/iio/timer/stm32-lptimer-trigger.txt create mode 100644 Documentation/devicetree/bindings/mfd/stm32-lptimer.txt create mode 100644 Documentation/devicetree/bindings/pwm/pwm-stm32-lp.txt create mode 100644 drivers/iio/counter/stm32-lptimer-cnt.c create mode 100644 drivers/iio/trigger/stm32-lptimer-trigger.c create mode 100644 drivers/mfd/stm32-lptimer.c create mode 100644 drivers/pwm/pwm-stm32-lp.c create mode 100644 include/linux/iio/timer/stm32-lptim-trigger.h create mode 100644 include/linux/mfd/stm32-lptimer.h -- 1.9.1