nxp,flexio-camera

Description

NXP FlexIO parallel camera interface (DVP)

FlexIO is getting pins assigned through pinctrl, by setting the
FlexIO pin function to route the pins to the FlexIO controller.
Once the pin is assigned to FlexIO, there is a second layer of
signal routing happening inside FlexIO, to assign a FlexIO pin
number to a FlexIO signal.

The devicetree properties `*-pin` are configuring this second
level of routing inside FlexIO.

The devicetree properties `*-gpios` are configuring regular
pins not going through FlexIO, but still used by the driver.

Properties

Top level properties

These property descriptions apply to “nxp,flexio-camera” nodes themselves. This page also describes child node properties in the following sections.

Properties not inherited from the base binding file.

Name

Type

Details

data-pin-start

int

FlexIO pin index of the first 8-bit data line (D0). Pins
data-pin-start through data-pin-start+7 are used as D0-D7.

This property is required.

pclk-pin

int

FlexIO pin index connected to the camera PCLK (pixel clock) output.

This property is required.

href-pin

int

FlexIO pin index connected to the camera HREF (horizontal sync) output.

This property is required.

xclk-pin

int

FlexIO pin index to use for XCLK output to the camera. Optional; if
absent, XCLK generation by FlexIO is disabled (external oscillator used).

xclk-frequency

int

Target XCLK output frequency in Hz (e.g. 12000000). Required when
xclk-pin is present. The actual frequency is rounded to the nearest
value achievable with the current FlexIO clock.

This property is required.

shifter-count

int

Number of consecutive FlexIO shifters used as the camera data FIFO.
Each shifter holds 4 bytes, so 8 shifters yield a 32-byte DMA burst
per trigger. Must not exceed the number of shifters available in the
parent FlexIO peripheral.

Default value: 8

Legal values: 1, 2, 4, 8

shifter-end-index

int

Index of the last FlexIO shifter used for parallel input. Only specific
shifters (3 and 7) support parallel input on this peripheral.

Default value: 7

Legal values: 3, 7

xclk-timer

int

FlexIO timer index used to generate the camera XCLK output when
xclk-pin is present.

Default value: 1

pclk-timer

int

FlexIO timer index used as the PCLK-capture (shifter clock) timer.

Default value: 0

vsync-gpios

phandle-array

GPIO pin connected to the camera VSYNC output. A rising edge (active
assertion) marks start-of-frame and triggers DMA buffer rotation.

This property is required.

pinctrl-0

phandles

Pin configuration/s for the first state. Content is specific to the
selected pin controller driver implementation.

pinctrl-1

phandles

Pin configuration/s for the second state. See pinctrl-0.

pinctrl-2

phandles

Pin configuration/s for the third state. See pinctrl-0.

pinctrl-3

phandles

Pin configuration/s for the fourth state. See pinctrl-0.

pinctrl-4

phandles

Pin configuration/s for the fifth state. See pinctrl-0.

pinctrl-names

string-array

Names for the provided states. The number of names needs to match the
number of states.

Grandchild node properties

Name

Type

Details

remote-endpoint-label

string

Label of the 'remote-endpoint' subnode that interfaces with this endpoint.
This property is used as a 'work-around' to be able to declare the remote
endpoint and should be replaced by a "remote-endpoint" phandle property when
Zephyr devicetree supports circular dependency in the future.

This property is required.

bus-type

int

Data bus type.

Legal values: 1, 2, 3, 4, 5, 6

data-shift

int

On parallel data buses, if bus-width is used to specify the number of
data lines, data-shift can be used to specify which data lines are used,
e.g. "bus-width=<8>; data-shift=<2>;" means, that lines 9:2 are used.

hsync-active

int

Active state of the HSYNC signal

Legal values: 0, 1

vsync-active

int

Active state of the VSYNC signal.

Legal values: 0, 1

pclk-sample

int

Sample data on falling, rising or both edges of the pixel clock signal.

Legal values: 0, 1, 2

link-frequencies

array

Allowed data bus frequencies. For MIPI CSI-2, for instance, this is the
actual frequency of the bus, not bits per clock per lane value.

clock-lane

int

Physical clock lane index. Position of an entry determines the logical
lane number, while the value of an entry indicates physical lane, e.g. for
a MIPI CSI-2 bus we could have "clock-lane = <0>;", which places the
clock lane on hardware lane 0. This property is valid for serial buses
only (e.g. MIPI CSI-2).

data-lanes

array

An array of physical data lane indexes. Position of an entry determines
the logical lane number, while the value of an entry indicates physical
lane, e.g. for 2-lane MIPI CSI-2 bus we could have "data-lanes = <1 2>;",
assuming the clock lane is on hardware lane 0. If the hardware does not
support lane reordering, monotonically incremented values shall be used
from 0 or 1 onwards, depending on whether or not there is also a clock
lane. This property is valid for serial buses only (e.g. MIPI CSI-2).

bus-width

int

Number of data lines actively used, only valid for parallel buses.