Loading Documentation/devicetree/bindings/pwm/atmel-pwm.txt +1 −0 Original line number Diff line number Diff line Loading @@ -4,6 +4,7 @@ Required properties: - compatible: should be one of: - "atmel,at91sam9rl-pwm" - "atmel,sama5d3-pwm" - "atmel,sama5d2-pwm" - reg: physical base address and length of the controller's registers - #pwm-cells: Should be 3. See pwm.txt in this directory for a description of the cells format. Loading Documentation/devicetree/bindings/pwm/nvidia,tegra20-pwm.txt +45 −0 Original line number Diff line number Diff line Loading @@ -19,6 +19,19 @@ Required properties: - reset-names: Must include the following entries: - pwm Optional properties: ============================ In some of the interface like PWM based regulator device, it is required to configure the pins differently in different states, especially in suspend state of the system. The configuration of pin is provided via the pinctrl DT node as detailed in the pinctrl DT binding document Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt The PWM node will have following optional properties. pinctrl-names: Pin state names. Must be "default" and "sleep". pinctrl-0: phandle for the default/active state of pin configurations. pinctrl-1: phandle for the sleep state of pin configurations. Example: pwm: pwm@7000a000 { Loading @@ -29,3 +42,35 @@ Example: resets = <&tegra_car 17>; reset-names = "pwm"; }; Example with the pin configuration for suspend and resume: ========================================================= Suppose pin PE7 (On Tegra210) interfaced with the regulator device and it requires PWM output to be tristated when system enters suspend. Following will be DT binding to achieve this: #include <dt-bindings/pinctrl/pinctrl-tegra.h> pinmux@700008d4 { pwm_active_state: pwm_active_state { pe7 { nvidia,pins = "pe7"; nvidia,tristate = <TEGRA_PIN_DISABLE>; }; }; pwm_sleep_state: pwm_sleep_state { pe7 { nvidia,pins = "pe7"; nvidia,tristate = <TEGRA_PIN_ENABLE>; }; }; }; pwm@7000a000 { /* Mandatory PWM properties */ pinctrl-names = "default", "sleep"; pinctrl-0 = <&pwm_active_state>; pinctrl-1 = <&pwm_sleep_state>; }; Documentation/devicetree/bindings/pwm/pwm-mediatek.txt 0 → 100644 +34 −0 Original line number Diff line number Diff line MediaTek PWM controller Required properties: - compatible: should be "mediatek,<name>-pwm": - "mediatek,mt7623-pwm": found on mt7623 SoC. - reg: physical base address and length of the controller's registers. - #pwm-cells: must be 2. See pwm.txt in this directory for a description of the cell format. - clocks: phandle and clock specifier of the PWM reference clock. - clock-names: must contain the following: - "top": the top clock generator - "main": clock used by the PWM core - "pwm1-5": the five per PWM clocks - pinctrl-names: Must contain a "default" entry. - pinctrl-0: One property must exist for each entry in pinctrl-names. See pinctrl/pinctrl-bindings.txt for details of the property values. Example: pwm0: pwm@11006000 { compatible = "mediatek,mt7623-pwm"; reg = <0 0x11006000 0 0x1000>; #pwm-cells = <2>; clocks = <&topckgen CLK_TOP_PWM_SEL>, <&pericfg CLK_PERI_PWM>, <&pericfg CLK_PERI_PWM1>, <&pericfg CLK_PERI_PWM2>, <&pericfg CLK_PERI_PWM3>, <&pericfg CLK_PERI_PWM4>, <&pericfg CLK_PERI_PWM5>; clock-names = "top", "main", "pwm1", "pwm2", "pwm3", "pwm4", "pwm5"; pinctrl-names = "default"; pinctrl-0 = <&pwm0_pins>; }; drivers/pwm/Kconfig +9 −0 Original line number Diff line number Diff line Loading @@ -293,6 +293,15 @@ config PWM_MTK_DISP To compile this driver as a module, choose M here: the module will be called pwm-mtk-disp. config PWM_MEDIATEK tristate "MediaTek PWM support" depends on ARCH_MEDIATEK || COMPILE_TEST help Generic PWM framework driver for Mediatek ARM SoC. To compile this driver as a module, choose M here: the module will be called pwm-mxs. config PWM_MXS tristate "Freescale MXS PWM support" depends on ARCH_MXS && OF Loading drivers/pwm/Makefile +1 −0 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ obj-$(CONFIG_PWM_LPSS) += pwm-lpss.o obj-$(CONFIG_PWM_LPSS_PCI) += pwm-lpss-pci.o obj-$(CONFIG_PWM_LPSS_PLATFORM) += pwm-lpss-platform.o obj-$(CONFIG_PWM_MESON) += pwm-meson.o obj-$(CONFIG_PWM_MEDIATEK) += pwm-mediatek.o obj-$(CONFIG_PWM_MTK_DISP) += pwm-mtk-disp.o obj-$(CONFIG_PWM_MXS) += pwm-mxs.o obj-$(CONFIG_PWM_OMAP_DMTIMER) += pwm-omap-dmtimer.o Loading Loading
Documentation/devicetree/bindings/pwm/atmel-pwm.txt +1 −0 Original line number Diff line number Diff line Loading @@ -4,6 +4,7 @@ Required properties: - compatible: should be one of: - "atmel,at91sam9rl-pwm" - "atmel,sama5d3-pwm" - "atmel,sama5d2-pwm" - reg: physical base address and length of the controller's registers - #pwm-cells: Should be 3. See pwm.txt in this directory for a description of the cells format. Loading
Documentation/devicetree/bindings/pwm/nvidia,tegra20-pwm.txt +45 −0 Original line number Diff line number Diff line Loading @@ -19,6 +19,19 @@ Required properties: - reset-names: Must include the following entries: - pwm Optional properties: ============================ In some of the interface like PWM based regulator device, it is required to configure the pins differently in different states, especially in suspend state of the system. The configuration of pin is provided via the pinctrl DT node as detailed in the pinctrl DT binding document Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt The PWM node will have following optional properties. pinctrl-names: Pin state names. Must be "default" and "sleep". pinctrl-0: phandle for the default/active state of pin configurations. pinctrl-1: phandle for the sleep state of pin configurations. Example: pwm: pwm@7000a000 { Loading @@ -29,3 +42,35 @@ Example: resets = <&tegra_car 17>; reset-names = "pwm"; }; Example with the pin configuration for suspend and resume: ========================================================= Suppose pin PE7 (On Tegra210) interfaced with the regulator device and it requires PWM output to be tristated when system enters suspend. Following will be DT binding to achieve this: #include <dt-bindings/pinctrl/pinctrl-tegra.h> pinmux@700008d4 { pwm_active_state: pwm_active_state { pe7 { nvidia,pins = "pe7"; nvidia,tristate = <TEGRA_PIN_DISABLE>; }; }; pwm_sleep_state: pwm_sleep_state { pe7 { nvidia,pins = "pe7"; nvidia,tristate = <TEGRA_PIN_ENABLE>; }; }; }; pwm@7000a000 { /* Mandatory PWM properties */ pinctrl-names = "default", "sleep"; pinctrl-0 = <&pwm_active_state>; pinctrl-1 = <&pwm_sleep_state>; };
Documentation/devicetree/bindings/pwm/pwm-mediatek.txt 0 → 100644 +34 −0 Original line number Diff line number Diff line MediaTek PWM controller Required properties: - compatible: should be "mediatek,<name>-pwm": - "mediatek,mt7623-pwm": found on mt7623 SoC. - reg: physical base address and length of the controller's registers. - #pwm-cells: must be 2. See pwm.txt in this directory for a description of the cell format. - clocks: phandle and clock specifier of the PWM reference clock. - clock-names: must contain the following: - "top": the top clock generator - "main": clock used by the PWM core - "pwm1-5": the five per PWM clocks - pinctrl-names: Must contain a "default" entry. - pinctrl-0: One property must exist for each entry in pinctrl-names. See pinctrl/pinctrl-bindings.txt for details of the property values. Example: pwm0: pwm@11006000 { compatible = "mediatek,mt7623-pwm"; reg = <0 0x11006000 0 0x1000>; #pwm-cells = <2>; clocks = <&topckgen CLK_TOP_PWM_SEL>, <&pericfg CLK_PERI_PWM>, <&pericfg CLK_PERI_PWM1>, <&pericfg CLK_PERI_PWM2>, <&pericfg CLK_PERI_PWM3>, <&pericfg CLK_PERI_PWM4>, <&pericfg CLK_PERI_PWM5>; clock-names = "top", "main", "pwm1", "pwm2", "pwm3", "pwm4", "pwm5"; pinctrl-names = "default"; pinctrl-0 = <&pwm0_pins>; };
drivers/pwm/Kconfig +9 −0 Original line number Diff line number Diff line Loading @@ -293,6 +293,15 @@ config PWM_MTK_DISP To compile this driver as a module, choose M here: the module will be called pwm-mtk-disp. config PWM_MEDIATEK tristate "MediaTek PWM support" depends on ARCH_MEDIATEK || COMPILE_TEST help Generic PWM framework driver for Mediatek ARM SoC. To compile this driver as a module, choose M here: the module will be called pwm-mxs. config PWM_MXS tristate "Freescale MXS PWM support" depends on ARCH_MXS && OF Loading
drivers/pwm/Makefile +1 −0 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ obj-$(CONFIG_PWM_LPSS) += pwm-lpss.o obj-$(CONFIG_PWM_LPSS_PCI) += pwm-lpss-pci.o obj-$(CONFIG_PWM_LPSS_PLATFORM) += pwm-lpss-platform.o obj-$(CONFIG_PWM_MESON) += pwm-meson.o obj-$(CONFIG_PWM_MEDIATEK) += pwm-mediatek.o obj-$(CONFIG_PWM_MTK_DISP) += pwm-mtk-disp.o obj-$(CONFIG_PWM_MXS) += pwm-mxs.o obj-$(CONFIG_PWM_OMAP_DMTIMER) += pwm-omap-dmtimer.o Loading