media: dt-bindings: Add property to describe CSI-2 C-PHY line orders

Each data lane on a CSI-2 C-PHY bus uses three phase encoding and is
constructed from three physical wires. The wires are referred to as A, B
and C and their default order is ABC. However to ease hardware design
the specification allows for the wires to be switched in any order.

Add a vendor neutral property to describe the line order used. The
property name 'line-orders', the possible values it can be assigned and
there names are taken from the MIPI Discovery and Configuration (DisCo)
Specification for Imaging.

Signed-off-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
This commit is contained in:
Niklas Söderlund 2024-11-21 14:41:05 +01:00 committed by Mauro Carvalho Chehab
parent 57d10bcac6
commit 91a7088096
2 changed files with 28 additions and 0 deletions

View File

@ -210,6 +210,27 @@ properties:
lane-polarities property is omitted, the value must be interpreted as 0
(normal). This property is valid for serial busses only.
line-orders:
$ref: /schemas/types.yaml#/definitions/uint32-array
minItems: 1
maxItems: 8
items:
enum:
- 0 # ABC
- 1 # ACB
- 2 # BAC
- 3 # BCA
- 4 # CAB
- 5 # CBA
description:
An array of line orders of the CSI-2 C-PHY data lanes. The order of the
lanes are the same as in data-lanes property. Valid values are 0-5 as
defined in the MIPI Discovery and Configuration (DisCo) Specification for
Imaging. The length of the array must be the same length as the
data-lanes property. If the line-orders property is omitted, the value
shall be interpreted as 0 (ABC). This property is valid for CSI-2 C-PHY
busses only.
strobe:
$ref: /schemas/types.yaml#/definitions/uint32
enum: [ 0, 1 ]

View File

@ -13,4 +13,11 @@
#define MEDIA_BUS_TYPE_PARALLEL 5
#define MEDIA_BUS_TYPE_BT656 6
#define MEDIA_BUS_CSI2_CPHY_LINE_ORDER_ABC 0
#define MEDIA_BUS_CSI2_CPHY_LINE_ORDER_ACB 1
#define MEDIA_BUS_CSI2_CPHY_LINE_ORDER_BAC 2
#define MEDIA_BUS_CSI2_CPHY_LINE_ORDER_BCA 3
#define MEDIA_BUS_CSI2_CPHY_LINE_ORDER_CAB 4
#define MEDIA_BUS_CSI2_CPHY_LINE_ORDER_CBA 5
#endif /* __DT_BINDINGS_MEDIA_VIDEO_INTERFACES_H__ */