diff options
| author | Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> | 2013-06-16 21:13:11 -0400 |
|---|---|---|
| committer | Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> | 2013-08-09 17:17:52 -0400 |
| commit | ef67a902e946ad1ef51040cf287a45cc4714e2b5 (patch) | |
| tree | 8539a95cefc69a1c2553ec8d987a40e6048feedd /include/linux/platform_data | |
| parent | 38b62fb3808e6b57dbd7728e897e4f7674d1c998 (diff) | |
drm/rcar-du: Rework output routing support
Split the output routing specification between SoC-internal data,
specified in the rcar_du_device_info structure, and board data, passed
through platform data.
The DU has 5 possible outputs (DPAD0/1, LVDS0/1, TCON). SoC-internal
output routing data specify which output are valid, which CRTCs can be
connected to the valid outputs, and the type of in-SoC encoder for the
output.
Platform data then specifies external encoders and the output they are
connected to.
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Diffstat (limited to 'include/linux/platform_data')
| -rw-r--r-- | include/linux/platform_data/rcar-du.h | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/include/linux/platform_data/rcar-du.h b/include/linux/platform_data/rcar-du.h index 64cd8635e6e6..1a2e9901a22e 100644 --- a/include/linux/platform_data/rcar-du.h +++ b/include/linux/platform_data/rcar-du.h | |||
| @@ -16,8 +16,18 @@ | |||
| 16 | 16 | ||
| 17 | #include <drm/drm_mode.h> | 17 | #include <drm/drm_mode.h> |
| 18 | 18 | ||
| 19 | enum rcar_du_output { | ||
| 20 | RCAR_DU_OUTPUT_DPAD0, | ||
| 21 | RCAR_DU_OUTPUT_DPAD1, | ||
| 22 | RCAR_DU_OUTPUT_LVDS0, | ||
| 23 | RCAR_DU_OUTPUT_LVDS1, | ||
| 24 | RCAR_DU_OUTPUT_TCON, | ||
| 25 | RCAR_DU_OUTPUT_MAX, | ||
| 26 | }; | ||
| 27 | |||
| 19 | enum rcar_du_encoder_type { | 28 | enum rcar_du_encoder_type { |
| 20 | RCAR_DU_ENCODER_UNUSED = 0, | 29 | RCAR_DU_ENCODER_UNUSED = 0, |
| 30 | RCAR_DU_ENCODER_NONE, | ||
| 21 | RCAR_DU_ENCODER_VGA, | 31 | RCAR_DU_ENCODER_VGA, |
| 22 | RCAR_DU_ENCODER_LVDS, | 32 | RCAR_DU_ENCODER_LVDS, |
| 23 | }; | 33 | }; |
| @@ -39,13 +49,16 @@ struct rcar_du_connector_vga_data { | |||
| 39 | /* | 49 | /* |
| 40 | * struct rcar_du_encoder_data - Encoder platform data | 50 | * struct rcar_du_encoder_data - Encoder platform data |
| 41 | * @type: the encoder type (RCAR_DU_ENCODER_*) | 51 | * @type: the encoder type (RCAR_DU_ENCODER_*) |
| 42 | * @output: the DU output the connector is connected to | 52 | * @output: the DU output the connector is connected to (RCAR_DU_OUTPUT_*) |
| 43 | * @connector.lvds: platform data for LVDS connectors | 53 | * @connector.lvds: platform data for LVDS connectors |
| 44 | * @connector.vga: platform data for VGA connectors | 54 | * @connector.vga: platform data for VGA connectors |
| 55 | * | ||
| 56 | * Encoder platform data describes an on-board encoder, its associated DU SoC | ||
| 57 | * output, and the connector. | ||
| 45 | */ | 58 | */ |
| 46 | struct rcar_du_encoder_data { | 59 | struct rcar_du_encoder_data { |
| 47 | enum rcar_du_encoder_type type; | 60 | enum rcar_du_encoder_type type; |
| 48 | unsigned int output; | 61 | enum rcar_du_output output; |
| 49 | 62 | ||
| 50 | union { | 63 | union { |
| 51 | struct rcar_du_connector_lvds_data lvds; | 64 | struct rcar_du_connector_lvds_data lvds; |
