Zephyr API Documentation  2.7.0-rc2
A Scalable Open Source RTOS
Devicetree PWMs API

Macros

#define DT_PWMS_LABEL_BY_IDX(node_id, idx)
 Get a label property from a pwms property at an index. More...
 
#define DT_PWMS_LABEL_BY_NAME(node_id, name)
 Get a label property from a pwms property by name. More...
 
#define DT_PWMS_LABEL(node_id)   __DEPRECATED_MACRO DT_PWMS_LABEL_BY_IDX(node_id, 0)
 Equivalent to DT_PWMS_LABEL_BY_IDX(node_id, 0) More...
 
#define DT_PWMS_CTLR_BY_IDX(node_id, idx)    DT_PHANDLE_BY_IDX(node_id, pwms, idx)
 Get the node identifier for the PWM controller from a pwms property at an index. More...
 
#define DT_PWMS_CTLR_BY_NAME(node_id, name)    DT_PHANDLE_BY_NAME(node_id, pwms, name)
 Get the node identifier for the PWM controller from a pwms property by name. More...
 
#define DT_PWMS_CTLR(node_id)   DT_PWMS_CTLR_BY_IDX(node_id, 0)
 Equivalent to DT_PWMS_CTLR_BY_IDX(node_id, 0) More...
 
#define DT_PWMS_CELL_BY_IDX(node_id, idx, cell)    DT_PHA_BY_IDX(node_id, pwms, idx, cell)
 Get PWM specifier's cell value at an index. More...
 
#define DT_PWMS_CELL_BY_NAME(node_id, name, cell)    DT_PHA_BY_NAME(node_id, pwms, name, cell)
 Get a PWM specifier's cell value by name. More...
 
#define DT_PWMS_CELL(node_id, cell)   DT_PWMS_CELL_BY_IDX(node_id, 0, cell)
 Equivalent to DT_PWMS_CELL_BY_IDX(node_id, 0, cell) More...
 
#define DT_PWMS_CHANNEL_BY_IDX(node_id, idx)    DT_PWMS_CELL_BY_IDX(node_id, idx, channel)
 Get a PWM specifier's channel cell value at an index. More...
 
#define DT_PWMS_CHANNEL_BY_NAME(node_id, name)    DT_PWMS_CELL_BY_NAME(node_id, name, channel)
 Get a PWM specifier's channel cell value by name. More...
 
#define DT_PWMS_CHANNEL(node_id)   DT_PWMS_CHANNEL_BY_IDX(node_id, 0)
 Equivalent to DT_PWMS_CHANNEL_BY_IDX(node_id, 0) More...
 
#define DT_PWMS_PERIOD_BY_IDX(node_id, idx)    DT_PWMS_CELL_BY_IDX(node_id, idx, period)
 Get PWM specifier's period cell value at an index. More...
 
#define DT_PWMS_PERIOD_BY_NAME(node_id, name)    DT_PWMS_CELL_BY_NAME(node_id, name, period)
 Get a PWM specifier's period cell value by name. More...
 
#define DT_PWMS_PERIOD(node_id)   DT_PWMS_PERIOD_BY_IDX(node_id, 0)
 Equivalent to DT_PWMS_PERIOD_BY_IDX(node_id, 0) More...
 
#define DT_PWMS_FLAGS_BY_IDX(node_id, idx)    DT_PHA_BY_IDX_OR(node_id, pwms, idx, flags, 0)
 Get a PWM specifier's flags cell value at an index. More...
 
#define DT_PWMS_FLAGS_BY_NAME(node_id, name)    DT_PHA_BY_NAME_OR(node_id, pwms, name, flags, 0)
 Get a PWM specifier's flags cell value by name. More...
 
#define DT_PWMS_FLAGS(node_id)   DT_PWMS_FLAGS_BY_IDX(node_id, 0)
 Equivalent to DT_PWMS_FLAGS_BY_IDX(node_id, 0) More...
 
#define DT_INST_PWMS_LABEL_BY_IDX(inst, idx)
 Get a label property from a DT_DRV_COMPAT instance's pwms property by name. More...
 
#define DT_INST_PWMS_LABEL_BY_NAME(inst, name)
 Get a label property from a DT_DRV_COMPAT instance's pwms property by name. More...
 
#define DT_INST_PWMS_LABEL(inst)   __DEPRECATED_MACRO DT_INST_PWMS_LABEL_BY_IDX(inst, 0)
 Equivalent to DT_INST_PWMS_LABEL_BY_IDX(inst, 0) More...
 
#define DT_INST_PWMS_CTLR_BY_IDX(inst, idx)    DT_PWMS_CTLR_BY_IDX(DT_DRV_INST(inst), idx)
 Get the node identifier for the PWM controller from a DT_DRV_COMPAT instance's pwms property at an index. More...
 
#define DT_INST_PWMS_CTLR_BY_NAME(inst, name)    DT_PWMS_CTLR_BY_NAME(DT_DRV_INST(inst), name)
 Get the node identifier for the PWM controller from a DT_DRV_COMPAT instance's pwms property by name. More...
 
#define DT_INST_PWMS_CTLR(inst)   DT_INST_PWMS_CTLR_BY_IDX(inst, 0)
 Equivalent to DT_INST_PWMS_CTLR_BY_IDX(inst, 0) More...
 
#define DT_INST_PWMS_CELL_BY_IDX(inst, idx, cell)    DT_PWMS_CELL_BY_IDX(DT_DRV_INST(inst), idx, cell)
 Get a DT_DRV_COMPAT instance's PWM specifier's cell value at an index. More...
 
#define DT_INST_PWMS_CELL_BY_NAME(inst, name, cell)    DT_PWMS_CELL_BY_NAME(DT_DRV_INST(inst), name, cell)
 Get a DT_DRV_COMPAT instance's PWM specifier's cell value by name. More...
 
#define DT_INST_PWMS_CELL(inst, cell)    DT_INST_PWMS_CELL_BY_IDX(inst, 0, cell)
 Equivalent to DT_INST_PWMS_CELL_BY_IDX(inst, 0, cell) More...
 
#define DT_INST_PWMS_CHANNEL_BY_IDX(inst, idx)    DT_INST_PWMS_CELL_BY_IDX(inst, idx, channel)
 Equivalent to DT_INST_PWMS_CELL_BY_IDX(inst, idx, channel) More...
 
#define DT_INST_PWMS_CHANNEL_BY_NAME(inst, name)    DT_INST_PWMS_CELL_BY_NAME(inst, name, channel)
 Equivalent to DT_INST_PWMS_CELL_BY_NAME(inst, name, channel) More...
 
#define DT_INST_PWMS_CHANNEL(inst)   DT_INST_PWMS_CHANNEL_BY_IDX(inst, 0)
 Equivalent to DT_INST_PWMS_CHANNEL_BY_IDX(inst, 0) More...
 
#define DT_INST_PWMS_PERIOD_BY_IDX(inst, idx)    DT_INST_PWMS_CELL_BY_IDX(inst, idx, period)
 Equivalent to DT_INST_PWMS_CELL_BY_IDX(inst, idx, period) More...
 
#define DT_INST_PWMS_PERIOD_BY_NAME(inst, name)    DT_INST_PWMS_CELL_BY_NAME(inst, name, period)
 Equivalent to DT_INST_PWMS_CELL_BY_NAME(inst, name, period) More...
 
#define DT_INST_PWMS_PERIOD(inst)   DT_INST_PWMS_PERIOD_BY_IDX(inst, 0)
 Equivalent to DT_INST_PWMS_PERIOD_BY_IDX(inst, 0) More...
 
#define DT_INST_PWMS_FLAGS_BY_IDX(inst, idx)    DT_INST_PWMS_CELL_BY_IDX(inst, idx, flags)
 Equivalent to DT_INST_PWMS_CELL_BY_IDX(inst, idx, flags) More...
 
#define DT_INST_PWMS_FLAGS_BY_NAME(inst, name)    DT_INST_PWMS_CELL_BY_NAME(inst, name, flags)
 Equivalent to DT_INST_PWMS_CELL_BY_NAME(inst, name, flags) More...
 
#define DT_INST_PWMS_FLAGS(inst)   DT_INST_PWMS_FLAGS_BY_IDX(inst, 0)
 Equivalent to DT_INST_PWMS_FLAGS_BY_IDX(inst, 0) More...
 

Detailed Description

Macro Definition Documentation

◆ DT_INST_PWMS_CELL

#define DT_INST_PWMS_CELL (   inst,
  cell 
)     DT_INST_PWMS_CELL_BY_IDX(inst, 0, cell)

#include <include/devicetree/pwms.h>

Equivalent to DT_INST_PWMS_CELL_BY_IDX(inst, 0, cell)

Parameters
instDT_DRV_COMPAT instance number
celllowercase-and-underscores cell name
Returns
the cell value at index 0

◆ DT_INST_PWMS_CELL_BY_IDX

#define DT_INST_PWMS_CELL_BY_IDX (   inst,
  idx,
  cell 
)     DT_PWMS_CELL_BY_IDX(DT_DRV_INST(inst), idx, cell)

#include <include/devicetree/pwms.h>

Get a DT_DRV_COMPAT instance's PWM specifier's cell value at an index.

Parameters
instDT_DRV_COMPAT instance number
idxlogical index into pwms property
celllowercase-and-underscores cell name
Returns
the cell value at index "idx"

◆ DT_INST_PWMS_CELL_BY_NAME

#define DT_INST_PWMS_CELL_BY_NAME (   inst,
  name,
  cell 
)     DT_PWMS_CELL_BY_NAME(DT_DRV_INST(inst), name, cell)

#include <include/devicetree/pwms.h>

Get a DT_DRV_COMPAT instance's PWM specifier's cell value by name.

Parameters
instDT_DRV_COMPAT instance number
namelowercase-and-underscores name of a pwms element as defined by the node's pwm-names property
celllowercase-and-underscores cell name
Returns
the cell value in the specifier at the named element
See also
DT_PWMS_CELL_BY_NAME()

◆ DT_INST_PWMS_CHANNEL

#define DT_INST_PWMS_CHANNEL (   inst)    DT_INST_PWMS_CHANNEL_BY_IDX(inst, 0)

#include <include/devicetree/pwms.h>

Equivalent to DT_INST_PWMS_CHANNEL_BY_IDX(inst, 0)

Parameters
instDT_DRV_COMPAT instance number
Returns
the channel cell value at index 0
See also
DT_INST_PWMS_CHANNEL_BY_IDX()

◆ DT_INST_PWMS_CHANNEL_BY_IDX

#define DT_INST_PWMS_CHANNEL_BY_IDX (   inst,
  idx 
)     DT_INST_PWMS_CELL_BY_IDX(inst, idx, channel)

#include <include/devicetree/pwms.h>

Equivalent to DT_INST_PWMS_CELL_BY_IDX(inst, idx, channel)

Parameters
instDT_DRV_COMPAT instance number
idxlogical index into pwms property
Returns
the channel cell value at index "idx"
See also
DT_INST_PWMS_CELL_BY_IDX()

◆ DT_INST_PWMS_CHANNEL_BY_NAME

#define DT_INST_PWMS_CHANNEL_BY_NAME (   inst,
  name 
)     DT_INST_PWMS_CELL_BY_NAME(inst, name, channel)

#include <include/devicetree/pwms.h>

Equivalent to DT_INST_PWMS_CELL_BY_NAME(inst, name, channel)

Parameters
instDT_DRV_COMPAT instance number
namelowercase-and-underscores name of a pwms element as defined by the node's pwm-names property
Returns
the channel cell value in the specifier at the named element
See also
DT_INST_PWMS_CELL_BY_NAME()

◆ DT_INST_PWMS_CTLR

#define DT_INST_PWMS_CTLR (   inst)    DT_INST_PWMS_CTLR_BY_IDX(inst, 0)

#include <include/devicetree/pwms.h>

Equivalent to DT_INST_PWMS_CTLR_BY_IDX(inst, 0)

Parameters
instDT_DRV_COMPAT instance number
Returns
the node identifier for the PWM controller at index 0 in the instance's "pwms" property
See also
DT_PWMS_CTLR_BY_IDX()

◆ DT_INST_PWMS_CTLR_BY_IDX

#define DT_INST_PWMS_CTLR_BY_IDX (   inst,
  idx 
)     DT_PWMS_CTLR_BY_IDX(DT_DRV_INST(inst), idx)

#include <include/devicetree/pwms.h>

Get the node identifier for the PWM controller from a DT_DRV_COMPAT instance's pwms property at an index.

Parameters
instDT_DRV_COMPAT instance number
idxlogical index into pwms property
Returns
the node identifier for the PWM controller referenced at index "idx"
See also
DT_PWMS_CTLR_BY_IDX()

◆ DT_INST_PWMS_CTLR_BY_NAME

#define DT_INST_PWMS_CTLR_BY_NAME (   inst,
  name 
)     DT_PWMS_CTLR_BY_NAME(DT_DRV_INST(inst), name)

#include <include/devicetree/pwms.h>

Get the node identifier for the PWM controller from a DT_DRV_COMPAT instance's pwms property by name.

Parameters
instDT_DRV_COMPAT instance number
namelowercase-and-underscores name of a pwms element as defined by the node's pwm-names property
Returns
the node identifier for the PWM controller in the named element
See also
DT_PWMS_CTLR_BY_NAME()

◆ DT_INST_PWMS_FLAGS

#define DT_INST_PWMS_FLAGS (   inst)    DT_INST_PWMS_FLAGS_BY_IDX(inst, 0)

#include <include/devicetree/pwms.h>

Equivalent to DT_INST_PWMS_FLAGS_BY_IDX(inst, 0)

Parameters
instDT_DRV_COMPAT instance number
Returns
the flags cell value at index 0, or zero if there is none
See also
DT_INST_PWMS_FLAGS_BY_IDX()

◆ DT_INST_PWMS_FLAGS_BY_IDX

#define DT_INST_PWMS_FLAGS_BY_IDX (   inst,
  idx 
)     DT_INST_PWMS_CELL_BY_IDX(inst, idx, flags)

#include <include/devicetree/pwms.h>

Equivalent to DT_INST_PWMS_CELL_BY_IDX(inst, idx, flags)

Parameters
instDT_DRV_COMPAT instance number
idxlogical index into pwms property
Returns
the flags cell value at index "idx", or zero if there is none
See also
DT_INST_PWMS_CELL_BY_IDX()

◆ DT_INST_PWMS_FLAGS_BY_NAME

#define DT_INST_PWMS_FLAGS_BY_NAME (   inst,
  name 
)     DT_INST_PWMS_CELL_BY_NAME(inst, name, flags)

#include <include/devicetree/pwms.h>

Equivalent to DT_INST_PWMS_CELL_BY_NAME(inst, name, flags)

Parameters
instDT_DRV_COMPAT instance number
namelowercase-and-underscores name of a pwms element as defined by the node's pwm-names property
Returns
the flags cell value in the specifier at the named element, or zero if there is none
See also
DT_INST_PWMS_CELL_BY_NAME()

◆ DT_INST_PWMS_LABEL

#define DT_INST_PWMS_LABEL (   inst)    __DEPRECATED_MACRO DT_INST_PWMS_LABEL_BY_IDX(inst, 0)

#include <include/devicetree/pwms.h>

Equivalent to DT_INST_PWMS_LABEL_BY_IDX(inst, 0)

Parameters
instDT_DRV_COMPAT instance number
Returns
the label property of the node referenced at index 0
See also
DT_PWMS_LABEL_BY_IDX()

◆ DT_INST_PWMS_LABEL_BY_IDX

#define DT_INST_PWMS_LABEL_BY_IDX (   inst,
  idx 
)

#include <include/devicetree/pwms.h>

Value:
#define DT_DRV_INST(inst)
Node identifier for an instance of a DT_DRV_COMPAT compatible.
Definition: devicetree.h:2073
#define DT_PWMS_LABEL_BY_IDX(node_id, idx)
Get a label property from a pwms property at an index.
Definition: pwms.h:56

Get a label property from a DT_DRV_COMPAT instance's pwms property by name.

Parameters
instDT_DRV_COMPAT instance number
idxlogical index into pwms property
Returns
the label property of the node referenced at index "idx"
See also
DT_PWMS_LABEL_BY_IDX()

◆ DT_INST_PWMS_LABEL_BY_NAME

#define DT_INST_PWMS_LABEL_BY_NAME (   inst,
  name 
)

#include <include/devicetree/pwms.h>

Value:
#define DT_PWMS_LABEL_BY_NAME(node_id, name)
Get a label property from a pwms property by name.
Definition: pwms.h:94

Get a label property from a DT_DRV_COMPAT instance's pwms property by name.

Parameters
instDT_DRV_COMPAT instance number
namelowercase-and-underscores name of a pwms element as defined by the node's pwm-names property
Returns
the label property of the node referenced at the named element
See also
DT_PWMS_LABEL_BY_NAME()

◆ DT_INST_PWMS_PERIOD

#define DT_INST_PWMS_PERIOD (   inst)    DT_INST_PWMS_PERIOD_BY_IDX(inst, 0)

#include <include/devicetree/pwms.h>

Equivalent to DT_INST_PWMS_PERIOD_BY_IDX(inst, 0)

Parameters
instDT_DRV_COMPAT instance number
Returns
the period cell value at index 0
See also
DT_INST_PWMS_PERIOD_BY_IDX()

◆ DT_INST_PWMS_PERIOD_BY_IDX

#define DT_INST_PWMS_PERIOD_BY_IDX (   inst,
  idx 
)     DT_INST_PWMS_CELL_BY_IDX(inst, idx, period)

#include <include/devicetree/pwms.h>

Equivalent to DT_INST_PWMS_CELL_BY_IDX(inst, idx, period)

Parameters
instDT_DRV_COMPAT instance number
idxlogical index into pwms property
Returns
the period cell value at index "idx"
See also
DT_INST_PWMS_CELL_BY_IDX()

◆ DT_INST_PWMS_PERIOD_BY_NAME

#define DT_INST_PWMS_PERIOD_BY_NAME (   inst,
  name 
)     DT_INST_PWMS_CELL_BY_NAME(inst, name, period)

#include <include/devicetree/pwms.h>

Equivalent to DT_INST_PWMS_CELL_BY_NAME(inst, name, period)

Parameters
instDT_DRV_COMPAT instance number
namelowercase-and-underscores name of a pwms element as defined by the node's pwm-names property
Returns
the period cell value in the specifier at the named element
See also
DT_INST_PWMS_CELL_BY_NAME()

◆ DT_PWMS_CELL

#define DT_PWMS_CELL (   node_id,
  cell 
)    DT_PWMS_CELL_BY_IDX(node_id, 0, cell)

#include <include/devicetree/pwms.h>

Equivalent to DT_PWMS_CELL_BY_IDX(node_id, 0, cell)

Parameters
node_idnode identifier for a node with a pwms property
celllowercase-and-underscores cell name
Returns
the cell value at index 0
See also
DT_PWMS_CELL_BY_IDX()

◆ DT_PWMS_CELL_BY_IDX

#define DT_PWMS_CELL_BY_IDX (   node_id,
  idx,
  cell 
)     DT_PHA_BY_IDX(node_id, pwms, idx, cell)

#include <include/devicetree/pwms.h>

Get PWM specifier's cell value at an index.

Example devicetree fragment:

pwm1: pwm-controller@... {
        compatible = "vnd,pwm";
        label = "PWM_1";
        #pwm-cells = <2>;
};

pwm2: pwm-controller@... {
        compatible = "vnd,pwm";
        label = "PWM_2";
        #pwm-cells = <2>;
};

n: node {
        pwms = <&pwm1 1 200000 PWM_POLARITY_NORMAL>,
               <&pwm2 3 100000 PWM_POLARITY_INVERTED>;
};

Bindings fragment for the "vnd,pwm" compatible:

pwm-cells:
  - channel
  - period
  - flags

Example usage:

DT_PWMS_CELL_BY_IDX(DT_NODELABEL(n), 0, channel) // 1
DT_PWMS_CELL_BY_IDX(DT_NODELABEL(n), 1, channel) // 3
DT_PWMS_CELL_BY_IDX(DT_NODELABEL(n), 0, period)  // 200000
DT_PWMS_CELL_BY_IDX(DT_NODELABEL(n), 1, period)  // 100000
DT_PWMS_CELL_BY_IDX(DT_NODELABEL(n), 0, flags)   // PWM_POLARITY_NORMAL
DT_PWMS_CELL_BY_IDX(DT_NODELABEL(n), 1, flags)   // PWM_POLARITY_INVERTED
Parameters
node_idnode identifier for a node with a pwms property
idxlogical index into pwms property
celllowercase-and-underscores cell name
Returns
the cell value at index "idx"
See also
DT_PHA_BY_IDX()

◆ DT_PWMS_CELL_BY_NAME

#define DT_PWMS_CELL_BY_NAME (   node_id,
  name,
  cell 
)     DT_PHA_BY_NAME(node_id, pwms, name, cell)

#include <include/devicetree/pwms.h>

Get a PWM specifier's cell value by name.

Example devicetree fragment:

pwm1: pwm-controller@... {
        compatible = "vnd,pwm";
        label = "PWM_1";
        #pwm-cells = <2>;
};

pwm2: pwm-controller@... {
        compatible = "vnd,pwm";
        label = "PWM_2";
        #pwm-cells = <2>;
};

n: node {
        pwms = <&pwm1 1 200000 PWM_POLARITY_NORMAL>,
               <&pwm2 3 100000 PWM_POLARITY_INVERTED>;
        pwm-names = "alpha", "beta";
};

Bindings fragment for the "vnd,pwm" compatible:

pwm-cells:
  - channel
  - period
  - flags

Example usage:

DT_PWMS_CELL_BY_NAME(DT_NODELABEL(n), alpha, channel) // 1
DT_PWMS_CELL_BY_NAME(DT_NODELABEL(n), beta, channel)  // 3
DT_PWMS_CELL_BY_NAME(DT_NODELABEL(n), alpha, period)  // 200000
DT_PWMS_CELL_BY_NAME(DT_NODELABEL(n), beta, period)   // 100000
DT_PWMS_CELL_BY_NAME(DT_NODELABEL(n), alpha, flags)   // PWM_POLARITY_NORMAL
DT_PWMS_CELL_BY_NAME(DT_NODELABEL(n), beta, flags)    // PWM_POLARITY_INVERTED
Parameters
node_idnode identifier for a node with a pwms property
namelowercase-and-underscores name of a pwms element as defined by the node's pwm-names property
celllowercase-and-underscores cell name
Returns
the cell value in the specifier at the named element
See also
DT_PHA_BY_NAME()

◆ DT_PWMS_CHANNEL

#define DT_PWMS_CHANNEL (   node_id)    DT_PWMS_CHANNEL_BY_IDX(node_id, 0)

#include <include/devicetree/pwms.h>

Equivalent to DT_PWMS_CHANNEL_BY_IDX(node_id, 0)

Parameters
node_idnode identifier for a node with a pwms property
Returns
the channel cell value at index 0
See also
DT_PWMS_CHANNEL_BY_IDX()

◆ DT_PWMS_CHANNEL_BY_IDX

#define DT_PWMS_CHANNEL_BY_IDX (   node_id,
  idx 
)     DT_PWMS_CELL_BY_IDX(node_id, idx, channel)

#include <include/devicetree/pwms.h>

Get a PWM specifier's channel cell value at an index.

This macro only works for PWM specifiers with cells named "channel". Refer to the node's binding to check if necessary.

This is equivalent to DT_PWMS_CELL_BY_IDX(node_id, idx, channel).

Parameters
node_idnode identifier for a node with a pwms property
idxlogical index into pwms property
Returns
the channel cell value at index "idx"
See also
DT_PWMS_CELL_BY_IDX()

◆ DT_PWMS_CHANNEL_BY_NAME

#define DT_PWMS_CHANNEL_BY_NAME (   node_id,
  name 
)     DT_PWMS_CELL_BY_NAME(node_id, name, channel)

#include <include/devicetree/pwms.h>

Get a PWM specifier's channel cell value by name.

This macro only works for PWM specifiers with cells named "channel". Refer to the node's binding to check if necessary.

This is equivalent to DT_PWMS_CELL_BY_NAME(node_id, name, channel).

Parameters
node_idnode identifier for a node with a pwms property
namelowercase-and-underscores name of a pwms element as defined by the node's pwm-names property
Returns
the channel cell value in the specifier at the named element
See also
DT_PWMS_CELL_BY_NAME()

◆ DT_PWMS_CTLR

#define DT_PWMS_CTLR (   node_id)    DT_PWMS_CTLR_BY_IDX(node_id, 0)

#include <include/devicetree/pwms.h>

Equivalent to DT_PWMS_CTLR_BY_IDX(node_id, 0)

Parameters
node_idnode identifier for a node with a pwms property
Returns
the node identifier for the PWM controller at index 0 in the node's "pwms" property
See also
DT_PWMS_CTLR_BY_IDX()

◆ DT_PWMS_CTLR_BY_IDX

#define DT_PWMS_CTLR_BY_IDX (   node_id,
  idx 
)     DT_PHANDLE_BY_IDX(node_id, pwms, idx)

#include <include/devicetree/pwms.h>

Get the node identifier for the PWM controller from a pwms property at an index.

Example devicetree fragment:

pwm1: pwm-controller@... { ... };

pwm2: pwm-controller@... { ... };

n: node {
        pwms = <&pwm1 1 PWM_POLARITY_NORMAL>,
               <&pwm2 3 PWM_POLARITY_INVERTED>;
};

Example usage:

DT_PWMS_CTLR_BY_IDX(DT_NODELABEL(n), 0) // DT_NODELABEL(pwm1)
DT_PWMS_CTLR_BY_IDX(DT_NODELABEL(n), 1) // DT_NODELABEL(pwm2)
Parameters
node_idnode identifier for a node with a pwms property
idxlogical index into pwms property
Returns
the node identifier for the PWM controller referenced at index "idx"
See also
DT_PROP_BY_PHANDLE_IDX()

◆ DT_PWMS_CTLR_BY_NAME

#define DT_PWMS_CTLR_BY_NAME (   node_id,
  name 
)     DT_PHANDLE_BY_NAME(node_id, pwms, name)

#include <include/devicetree/pwms.h>

Get the node identifier for the PWM controller from a pwms property by name.

Example devicetree fragment:

pwm1: pwm-controller@... { ... };

pwm2: pwm-controller... { ... };

n: node { pwms = <&pwm1 1 PWM_POLARITY_NORMAL>, <&pwm2 3 PWM_POLARITY_INVERTED>; pwm-names = "alpha", "beta"; };

Example usage:

DT_PWMS_CTLR_BY_NAME(DT_NODELABEL(n), alpha) // DT_NODELABEL(pwm1)
DT_PWMS_CTLR_BY_NAME(DT_NODELABEL(n), beta)  // DT_NODELABEL(pwm2)
Parameters
node_idnode identifier for a node with a pwms property
namelowercase-and-underscores name of a pwms element as defined by the node's pwm-names property
Returns
the node identifier for the PWM controller in the named element
See also
DT_PHANDLE_BY_NAME()

◆ DT_PWMS_FLAGS

#define DT_PWMS_FLAGS (   node_id)    DT_PWMS_FLAGS_BY_IDX(node_id, 0)

#include <include/devicetree/pwms.h>

Equivalent to DT_PWMS_FLAGS_BY_IDX(node_id, 0)

Parameters
node_idnode identifier for a node with a pwms property
Returns
the flags cell value at index 0, or zero if there is none
See also
DT_PWMS_FLAGS_BY_IDX()

◆ DT_PWMS_FLAGS_BY_IDX

#define DT_PWMS_FLAGS_BY_IDX (   node_id,
  idx 
)     DT_PHA_BY_IDX_OR(node_id, pwms, idx, flags, 0)

#include <include/devicetree/pwms.h>

Get a PWM specifier's flags cell value at an index.

This macro expects PWM specifiers with cells named "flags". If there is no "flags" cell in the PWM specifier, zero is returned. Refer to the node's binding to check specifier cell names if necessary.

This is equivalent to DT_PWMS_CELL_BY_IDX(node_id, idx, flags).

Parameters
node_idnode identifier for a node with a pwms property
idxlogical index into pwms property
Returns
the flags cell value at index "idx", or zero if there is none
See also
DT_PWMS_CELL_BY_IDX()

◆ DT_PWMS_FLAGS_BY_NAME

#define DT_PWMS_FLAGS_BY_NAME (   node_id,
  name 
)     DT_PHA_BY_NAME_OR(node_id, pwms, name, flags, 0)

#include <include/devicetree/pwms.h>

Get a PWM specifier's flags cell value by name.

This macro expects PWM specifiers with cells named "flags". If there is no "flags" cell in the PWM specifier, zero is returned. Refer to the node's binding to check specifier cell names if necessary.

This is equivalent to DT_PWMS_CELL_BY_NAME(node_id, name, flags) if there is a flags cell, but expands to zero if there is none.

Parameters
node_idnode identifier for a node with a pwms property
namelowercase-and-underscores name of a pwms element as defined by the node's pwm-names property
Returns
the flags cell value in the specifier at the named element, or zero if there is none
See also
DT_PWMS_CELL_BY_NAME()

◆ DT_PWMS_LABEL

#define DT_PWMS_LABEL (   node_id)    __DEPRECATED_MACRO DT_PWMS_LABEL_BY_IDX(node_id, 0)

#include <include/devicetree/pwms.h>

Equivalent to DT_PWMS_LABEL_BY_IDX(node_id, 0)

Parameters
node_idnode identifier for a node with a pwms property
Returns
the label property of the node referenced at index 0
See also
DT_PWMS_LABEL_BY_IDX()

◆ DT_PWMS_LABEL_BY_IDX

#define DT_PWMS_LABEL_BY_IDX (   node_id,
  idx 
)

#include <include/devicetree/pwms.h>

Value:
DT_PROP_BY_PHANDLE_IDX(node_id, pwms, idx, label)
#define DT_PROP_BY_PHANDLE_IDX(node_id, phs, idx, prop)
Get a property value from a phandle in a property.
Definition: devicetree.h:987

Get a label property from a pwms property at an index.

It's an error if the PWM controller node referenced by the phandle in node_id's pwms property at index "idx" has no label property.

Example devicetree fragment:

pwm1: pwm-controller@... {
        label = "PWM_1";
};

pwm2: pwm-controller@... {
        label = "PWM_2";
};

n: node {
        pwms = <&pwm1 1 PWM_POLARITY_NORMAL>,
               <&pwm2 3 PWM_POLARITY_INVERTED>;
};

Example usage:

DT_PWMS_LABEL_BY_IDX(DT_NODELABEL(n), 0) // "PWM_1"
DT_PWMS_LABEL_BY_IDX(DT_NODELABEL(n), 1) // "PWM_2"
Parameters
node_idnode identifier for a node with a pwms property
idxlogical index into pwms property
Returns
the label property of the node referenced at index "idx"
See also
DT_PROP_BY_PHANDLE_IDX()

◆ DT_PWMS_LABEL_BY_NAME

#define DT_PWMS_LABEL_BY_NAME (   node_id,
  name 
)

#include <include/devicetree/pwms.h>

Value:
DT_PROP(DT_PHANDLE_BY_NAME(node_id, pwms, name), label)
#define DT_PHANDLE_BY_NAME(node_id, pha, name)
Get a phandle's node identifier from a phandle array by name.
Definition: devicetree.h:1229
#define DT_PROP(node_id, prop)
Get a devicetree property value.
Definition: devicetree.h:531

Get a label property from a pwms property by name.

It's an error if the PWM controller node referenced by the phandle in node_id's pwms property at the element named "name" has no label property.

Example devicetree fragment:

pwm1: pwm-controller@... {
        label = "PWM_1";
};

pwm2: pwm-controller@... {
        label = "PWM_2";
};

n: node {
        pwms = <&pwm1 1 PWM_POLARITY_NORMAL>,
               <&pwm2 3 PWM_POLARITY_INVERTED>;
        pwm-names = "alpha", "beta";
};

Example usage:

DT_PWMS_LABEL_BY_NAME(DT_NODELABEL(n), alpha) // "PWM_1"
DT_PWMS_LABEL_BY_NAME(DT_NODELABEL(n), beta)  // "PWM_2"
Parameters
node_idnode identifier for a node with a pwms property
namelowercase-and-underscores name of a pwms element as defined by the node's pwm-names property
Returns
the label property of the node referenced at the named element
See also
DT_PHANDLE_BY_NAME()

◆ DT_PWMS_PERIOD

#define DT_PWMS_PERIOD (   node_id)    DT_PWMS_PERIOD_BY_IDX(node_id, 0)

#include <include/devicetree/pwms.h>

Equivalent to DT_PWMS_PERIOD_BY_IDX(node_id, 0)

Parameters
node_idnode identifier for a node with a pwms property
Returns
the period cell value at index 0
See also
DT_PWMS_PERIOD_BY_IDX()

◆ DT_PWMS_PERIOD_BY_IDX

#define DT_PWMS_PERIOD_BY_IDX (   node_id,
  idx 
)     DT_PWMS_CELL_BY_IDX(node_id, idx, period)

#include <include/devicetree/pwms.h>

Get PWM specifier's period cell value at an index.

This macro only works for PWM specifiers with cells named "period". Refer to the node's binding to check if necessary.

This is equivalent to DT_PWMS_CELL_BY_IDX(node_id, idx, period).

Parameters
node_idnode identifier for a node with a pwms property
idxlogical index into pwms property
Returns
the period cell value at index "idx"
See also
DT_PWMS_CELL_BY_IDX()

◆ DT_PWMS_PERIOD_BY_NAME

#define DT_PWMS_PERIOD_BY_NAME (   node_id,
  name 
)     DT_PWMS_CELL_BY_NAME(node_id, name, period)

#include <include/devicetree/pwms.h>

Get a PWM specifier's period cell value by name.

This macro only works for PWM specifiers with cells named "period". Refer to the node's binding to check if necessary.

This is equivalent to DT_PWMS_CELL_BY_NAME(node_id, name, period).

Parameters
node_idnode identifier for a node with a pwms property
namelowercase-and-underscores name of a pwms element as defined by the node's pwm-names property
Returns
the period cell value in the specifier at the named element
See also
DT_PWMS_CELL_BY_NAME()