Skip to content

Commit f2701e0

Browse files
pdp7robherring
authored andcommitted
dt-bindings: wkup-m3-ipc: Add ti,set-io-isolation property
Add documentation for the ti,set-io-isolation DT property on the wkup_m3_ipc node which tells the wkup_m3_ipc driver to use the wkup_m3 to enable IO Isolation during low power mode transitions on am43xx platforms. Signed-off-by: Dave Gerlach <[email protected]> [dfustini: convert to YAML, make DTS example that passes check] Signed-off-by: Drew Fustini <[email protected]> Signed-off-by: Rob Herring <[email protected]> Link: https://lore.kernel.org/r/[email protected]
1 parent 2bd50ab commit f2701e0

File tree

1 file changed

+74
-5
lines changed

1 file changed

+74
-5
lines changed

Documentation/devicetree/bindings/soc/ti/wkup-m3-ipc.yaml

Lines changed: 74 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,14 +24,22 @@ description: |+
2424
A wkup_m3_ipc device node is used to represent the IPC registers within an
2525
SoC.
2626
27-
Support for VTT Toggle
28-
==================================
27+
Support for VTT Toggle with GPIO pin
28+
====================================
2929
On some boards like the AM335x EVM-SK and the AM437x GP EVM, a GPIO pin is
3030
connected to the enable pin on the DDR VTT regulator. This allows the
3131
regulator to be disabled upon suspend and enabled upon resume. Please note
3232
that the GPIO pin must be part of the GPIO0 module as only this GPIO module
3333
is in the wakeup power domain.
3434
35+
Support for IO Isolation
36+
========================
37+
On AM437x SoCs, certain pins can be forced into an alternate state when IO
38+
isolation is activated. Those pins have pad control registers prefixed by
39+
'CTRL_CONF_' that contain DS0 (e.g. deep sleep) configuration bits that can
40+
override the pin's existing bias (pull-up/pull-down) and value (high/low) when
41+
IO isolation is active.
42+
3543
properties:
3644
compatible:
3745
enum:
@@ -63,6 +71,25 @@ properties:
6371
$ref: /schemas/types.yaml#/definitions/uint32
6472
description: GPIO pin connected to enable pin on VTT regulator
6573

74+
ti,set-io-isolation:
75+
type: boolean
76+
description:
77+
If this property is present, then the wkup_m3_ipc driver will instruct
78+
the CM3 firmware to activate IO isolation when suspending to deep sleep.
79+
This can be leveraged by a board design to put other devices on the board
80+
into a low power state.
81+
82+
allOf:
83+
- if:
84+
properties:
85+
compatible:
86+
not:
87+
contains:
88+
const: ti,am4372-wkup-m3-ipc
89+
then:
90+
properties:
91+
ti,set-io-isolation: false
92+
6693
required:
6794
- compatible
6895
- reg
@@ -74,21 +101,63 @@ additionalProperties: false
74101

75102
examples:
76103
- |
104+
/* Example for AM335x SoC */
77105
soc {
78106
#address-cells = <1>;
79107
#size-cells = <1>;
80108
81-
mailbox: mailbox {
109+
am335x_mailbox: mailbox {
82110
#mbox-cells = <1>;
83111
};
84112
85-
wkup_m3_ipc: wkup_m3_ipc@1324 {
113+
wkup_m3_ipc@1324 {
86114
compatible = "ti,am3352-wkup-m3-ipc";
87115
reg = <0x1324 0x24>;
88116
interrupts = <78>;
89117
ti,rproc = <&wkup_m3>;
90-
mboxes = <&mailbox &mbox_wkupm3>;
118+
mboxes = <&am335x_mailbox &mbox_wkupm3>;
91119
ti,vtt-gpio-pin = <7>;
92120
};
93121
};
122+
123+
- |
124+
/*
125+
* Example for AM473x SoC:
126+
* On the AM437x-GP-EVM board, gpio5_7 is wired to enable pin of the DDR VTT
127+
* regulator. The 'ddr_vtt_toggle_default' pinmux node configures gpio5_7
128+
* for pull-up during normal system operation. However, the DS0 (deep sleep)
129+
* state of the pin is configured for pull-down and thus the VTT regulator
130+
* will be disabled to save power when IO isolation is active. Note that
131+
* this method is an alternative to using the 'ti,vtt-gpio-pin' property.
132+
*/
133+
#include <dt-bindings/pinctrl/am43xx.h>
134+
soc {
135+
#address-cells = <1>;
136+
#size-cells = <1>;
137+
138+
am437x_mailbox: mailbox {
139+
#mbox-cells = <1>;
140+
};
141+
142+
am43xx_pinmux {
143+
pinctrl-names = "default";
144+
pinctrl-0 = <&ddr3_vtt_toggle_default>;
145+
146+
ddr3_vtt_toggle_default: ddr_vtt_toggle_default {
147+
pinctrl-single,pins = <
148+
0x25C (DS0_PULL_UP_DOWN_EN | PIN_OUTPUT_PULLUP | DS0_FORCE_OFF_MODE | MUX_MODE7)
149+
>;
150+
};
151+
};
152+
153+
wkup_m3_ipc@1324 {
154+
compatible = "ti,am4372-wkup-m3-ipc";
155+
reg = <0x1324 0x24>;
156+
interrupts = <78>;
157+
ti,rproc = <&wkup_m3>;
158+
mboxes = <&am437x_mailbox &mbox_wkupm3>;
159+
ti,set-io-isolation;
160+
};
161+
};
162+
94163
...

0 commit comments

Comments
 (0)