2011-12-21 15:04:13 +08:00
|
|
|
Tegra SoC PWFM controller
|
|
|
|
|
|
|
|
Required properties:
|
2016-06-22 19:47:22 +08:00
|
|
|
- compatible: Must be:
|
|
|
|
- "nvidia,tegra20-pwm": for Tegra20
|
|
|
|
- "nvidia,tegra30-pwm", "nvidia,tegra20-pwm": for Tegra30
|
|
|
|
- "nvidia,tegra114-pwm", "nvidia,tegra20-pwm": for Tegra114
|
|
|
|
- "nvidia,tegra124-pwm", "nvidia,tegra20-pwm": for Tegra124
|
|
|
|
- "nvidia,tegra132-pwm", "nvidia,tegra20-pwm": for Tegra132
|
|
|
|
- "nvidia,tegra210-pwm", "nvidia,tegra20-pwm": for Tegra210
|
|
|
|
- "nvidia,tegra186-pwm": for Tegra186
|
2011-12-21 15:04:13 +08:00
|
|
|
- reg: physical base address and length of the controller's registers
|
2013-07-18 06:54:23 +08:00
|
|
|
- #pwm-cells: should be 2. See pwm.txt in this directory for a description of
|
|
|
|
the cells format.
|
2013-11-07 05:00:25 +08:00
|
|
|
- clocks: Must contain one entry, for the module clock.
|
|
|
|
See ../clocks/clock-bindings.txt for details.
|
2013-11-08 01:11:27 +08:00
|
|
|
- resets: Must contain an entry for each entry in reset-names.
|
|
|
|
See ../reset/reset.txt for details.
|
|
|
|
- reset-names: Must include the following entries:
|
|
|
|
- pwm
|
2011-12-21 15:04:13 +08:00
|
|
|
|
2017-04-07 17:34:01 +08:00
|
|
|
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.
|
|
|
|
|
2011-12-21 15:04:13 +08:00
|
|
|
Example:
|
|
|
|
|
|
|
|
pwm: pwm@7000a000 {
|
|
|
|
compatible = "nvidia,tegra20-pwm";
|
|
|
|
reg = <0x7000a000 0x100>;
|
|
|
|
#pwm-cells = <2>;
|
2013-11-07 05:00:25 +08:00
|
|
|
clocks = <&tegra_car 17>;
|
2013-11-08 01:11:27 +08:00
|
|
|
resets = <&tegra_car 17>;
|
|
|
|
reset-names = "pwm";
|
2011-12-21 15:04:13 +08:00
|
|
|
};
|
2017-04-07 17:34:01 +08:00
|
|
|
|
|
|
|
|
|
|
|
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>;
|
|
|
|
};
|