- R-Car DU support for R8A774B1 SoC
- R-Car DU fixes for H2 ES2.0 and later revisions -----BEGIN PGP SIGNATURE----- iQJWBAABCgBAFiEEvZRkio5H7O2/GZsYYiVdKZ4oCyQFAl2mPdgiHGxhdXJlbnQu cGluY2hhcnRAaWRlYXNvbmJvYXJkLmNvbQAKCRBiJV0pnigLJKJTEADNaU1IdVa2 OUylHqxrVK53pGJ8I6gdxT0GJQ4gV5uLBt6bfQ0Hvwe1GCuKTqF6Wv3760l8nH5z p8eriF2whtY8Q+Evxgzl0oIyRrEDMdf2ek7D8MrYaL5r201oFff1/VlBVo74qohN FSmaddXs23UW7BUSz4CajuZHobXefnb6s2gw2MnF0yEv2EAs5O5ZKDHQPpYKOgE7 2LMAkZNYaxYst5NnZfRa+3KP5etYcxfZRh88YVAiFNMk7Hj0ZBk78h3exhUDDxyc 76pnL5yXxNCVrPx7JgA+YVS95s1mQzXvV+vXbdCJM6AQ4fFxbUB4xVf4mOpa0Ze+ OqJVDosA3z/oJ0Ljv16Nzy7wA5nmPpovgCy4IPfn4oL7JDSqLdZ8IUq6eAkiPxUM QxFHkVdGlhh/fWRRtlC9NG7J98RmkVse8ESkFowKIDwPcnQQFEv64tQhdh9TSoCM xifQQAdSyUhc2F8mPESgrX43Doenx9CwQsmfLxqz83BQPUhkou5O54P1+iOIjg+7 zWmR56fw2055K7osPDtBGVj2sczu++P+SAMIp+sI+gDqAhasyaK2uTWWR9eu8lty xlGT1kZICEF9WrcAMyeiNrj0ypT1ed7LQ1iI1zdXP4zzjGPV4/SqVFuDFetK+Scx 1u4+n97QD6UdLH1Ur4Fw1Uzc4b5nrx3JTA== =daVY -----END PGP SIGNATURE----- Merge tag 'du-next-20191016' of git://linuxtv.org/pinchartl/media into drm-next - R-Car DU support for R8A774B1 SoC - R-Car DU fixes for H2 ES2.0 and later revisions Signed-off-by: Dave Airlie <airlied@redhat.com> From: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Link: https://patchwork.freedesktop.org/patch/msgid/20191015215116.GF19403@pendragon.ideasonboard.com
This commit is contained in:
commit
f1b4a9217e
|
@ -13,6 +13,7 @@ Required properties:
|
|||
|
||||
- compatible : Shall contain one or more of
|
||||
- "renesas,r8a774a1-hdmi" for R8A774A1 (RZ/G2M) compatible HDMI TX
|
||||
- "renesas,r8a774b1-hdmi" for R8A774B1 (RZ/G2N) compatible HDMI TX
|
||||
- "renesas,r8a7795-hdmi" for R8A7795 (R-Car H3) compatible HDMI TX
|
||||
- "renesas,r8a7796-hdmi" for R8A7796 (R-Car M3-W) compatible HDMI TX
|
||||
- "renesas,r8a77965-hdmi" for R8A77965 (R-Car M3-N) compatible HDMI TX
|
||||
|
|
|
@ -10,6 +10,7 @@ Required properties:
|
|||
- "renesas,r8a7743-lvds" for R8A7743 (RZ/G1M) compatible LVDS encoders
|
||||
- "renesas,r8a7744-lvds" for R8A7744 (RZ/G1N) compatible LVDS encoders
|
||||
- "renesas,r8a774a1-lvds" for R8A774A1 (RZ/G2M) compatible LVDS encoders
|
||||
- "renesas,r8a774b1-lvds" for R8A774B1 (RZ/G2N) compatible LVDS encoders
|
||||
- "renesas,r8a774c0-lvds" for R8A774C0 (RZ/G2E) compatible LVDS encoders
|
||||
- "renesas,r8a7790-lvds" for R8A7790 (R-Car H2) compatible LVDS encoders
|
||||
- "renesas,r8a7791-lvds" for R8A7791 (R-Car M2-W) compatible LVDS encoders
|
||||
|
|
|
@ -8,6 +8,7 @@ Required Properties:
|
|||
- "renesas,du-r8a7745" for R8A7745 (RZ/G1E) compatible DU
|
||||
- "renesas,du-r8a77470" for R8A77470 (RZ/G1C) compatible DU
|
||||
- "renesas,du-r8a774a1" for R8A774A1 (RZ/G2M) compatible DU
|
||||
- "renesas,du-r8a774b1" for R8A774B1 (RZ/G2N) compatible DU
|
||||
- "renesas,du-r8a774c0" for R8A774C0 (RZ/G2E) compatible DU
|
||||
- "renesas,du-r8a7779" for R8A7779 (R-Car H1) compatible DU
|
||||
- "renesas,du-r8a7790" for R8A7790 (R-Car H2) compatible DU
|
||||
|
@ -60,6 +61,7 @@ corresponding to each DU output.
|
|||
R8A7745 (RZ/G1E) DPAD 0 DPAD 1 - -
|
||||
R8A77470 (RZ/G1C) DPAD 0 DPAD 1 LVDS 0 -
|
||||
R8A774A1 (RZ/G2M) DPAD 0 HDMI 0 LVDS 0 -
|
||||
R8A774B1 (RZ/G2N) DPAD 0 HDMI 0 LVDS 0 -
|
||||
R8A774C0 (RZ/G2E) DPAD 0 LVDS 0 LVDS 1 -
|
||||
R8A7779 (R-Car H1) DPAD 0 DPAD 1 - -
|
||||
R8A7790 (R-Car H2) DPAD 0 LVDS 0 LVDS 1 -
|
||||
|
|
|
@ -131,6 +131,35 @@ static const struct rcar_du_device_info rcar_du_r8a774a1_info = {
|
|||
.dpll_mask = BIT(1),
|
||||
};
|
||||
|
||||
static const struct rcar_du_device_info rcar_du_r8a774b1_info = {
|
||||
.gen = 3,
|
||||
.features = RCAR_DU_FEATURE_CRTC_IRQ_CLOCK
|
||||
| RCAR_DU_FEATURE_VSP1_SOURCE
|
||||
| RCAR_DU_FEATURE_INTERLACED
|
||||
| RCAR_DU_FEATURE_TVM_SYNC,
|
||||
.channels_mask = BIT(3) | BIT(1) | BIT(0),
|
||||
.routes = {
|
||||
/*
|
||||
* R8A774B1 has one RGB output, one LVDS output and one HDMI
|
||||
* output.
|
||||
*/
|
||||
[RCAR_DU_OUTPUT_DPAD0] = {
|
||||
.possible_crtcs = BIT(2),
|
||||
.port = 0,
|
||||
},
|
||||
[RCAR_DU_OUTPUT_HDMI0] = {
|
||||
.possible_crtcs = BIT(1),
|
||||
.port = 1,
|
||||
},
|
||||
[RCAR_DU_OUTPUT_LVDS0] = {
|
||||
.possible_crtcs = BIT(0),
|
||||
.port = 2,
|
||||
},
|
||||
},
|
||||
.num_lvds = 1,
|
||||
.dpll_mask = BIT(1),
|
||||
};
|
||||
|
||||
static const struct rcar_du_device_info rcar_du_r8a774c0_info = {
|
||||
.gen = 3,
|
||||
.features = RCAR_DU_FEATURE_CRTC_IRQ_CLOCK
|
||||
|
@ -416,6 +445,7 @@ static const struct of_device_id rcar_du_of_table[] = {
|
|||
{ .compatible = "renesas,du-r8a7745", .data = &rzg1_du_r8a7745_info },
|
||||
{ .compatible = "renesas,du-r8a77470", .data = &rzg1_du_r8a77470_info },
|
||||
{ .compatible = "renesas,du-r8a774a1", .data = &rcar_du_r8a774a1_info },
|
||||
{ .compatible = "renesas,du-r8a774b1", .data = &rcar_du_r8a774b1_info },
|
||||
{ .compatible = "renesas,du-r8a774c0", .data = &rcar_du_r8a774c0_info },
|
||||
{ .compatible = "renesas,du-r8a7779", .data = &rcar_du_r8a7779_info },
|
||||
{ .compatible = "renesas,du-r8a7790", .data = &rcar_du_r8a7790_info },
|
||||
|
|
|
@ -585,7 +585,11 @@ static int rcar_du_vsps_init(struct rcar_du_device *rcdu)
|
|||
|
||||
vsps[j].crtcs_mask |= BIT(i);
|
||||
|
||||
/* Store the VSP pointer and pipe index in the CRTC. */
|
||||
/*
|
||||
* Store the VSP pointer and pipe index in the CRTC. If the
|
||||
* second cell of the 'vsps' specifier isn't present, default
|
||||
* to 0 to remain compatible with older DT bindings.
|
||||
*/
|
||||
rcdu->crtcs[i].vsp = &rcdu->vsps[j];
|
||||
rcdu->crtcs[i].vsp_pipe = cells >= 1 ? args.args[0] : 0;
|
||||
}
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
#include <linux/of_graph.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/sys_soc.h>
|
||||
|
||||
#include <drm/drm_atomic.h>
|
||||
#include <drm/drm_atomic_helper.h>
|
||||
|
@ -842,8 +843,23 @@ static int rcar_lvds_get_clocks(struct rcar_lvds *lvds)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static const struct rcar_lvds_device_info rcar_lvds_r8a7790es1_info = {
|
||||
.gen = 2,
|
||||
.quirks = RCAR_LVDS_QUIRK_LANES,
|
||||
.pll_setup = rcar_lvds_pll_setup_gen2,
|
||||
};
|
||||
|
||||
static const struct soc_device_attribute lvds_quirk_matches[] = {
|
||||
{
|
||||
.soc_id = "r8a7790", .revision = "ES1.*",
|
||||
.data = &rcar_lvds_r8a7790es1_info,
|
||||
},
|
||||
{ /* sentinel */ }
|
||||
};
|
||||
|
||||
static int rcar_lvds_probe(struct platform_device *pdev)
|
||||
{
|
||||
const struct soc_device_attribute *attr;
|
||||
struct rcar_lvds *lvds;
|
||||
struct resource *mem;
|
||||
int ret;
|
||||
|
@ -857,6 +873,10 @@ static int rcar_lvds_probe(struct platform_device *pdev)
|
|||
lvds->dev = &pdev->dev;
|
||||
lvds->info = of_device_get_match_data(&pdev->dev);
|
||||
|
||||
attr = soc_device_match(lvds_quirk_matches);
|
||||
if (attr)
|
||||
lvds->info = attr->data;
|
||||
|
||||
ret = rcar_lvds_parse_dt(lvds);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
@ -893,12 +913,6 @@ static const struct rcar_lvds_device_info rcar_lvds_gen2_info = {
|
|||
.pll_setup = rcar_lvds_pll_setup_gen2,
|
||||
};
|
||||
|
||||
static const struct rcar_lvds_device_info rcar_lvds_r8a7790_info = {
|
||||
.gen = 2,
|
||||
.quirks = RCAR_LVDS_QUIRK_LANES,
|
||||
.pll_setup = rcar_lvds_pll_setup_gen2,
|
||||
};
|
||||
|
||||
static const struct rcar_lvds_device_info rcar_lvds_gen3_info = {
|
||||
.gen = 3,
|
||||
.quirks = RCAR_LVDS_QUIRK_PWD,
|
||||
|
@ -929,8 +943,9 @@ static const struct of_device_id rcar_lvds_of_table[] = {
|
|||
{ .compatible = "renesas,r8a7743-lvds", .data = &rcar_lvds_gen2_info },
|
||||
{ .compatible = "renesas,r8a7744-lvds", .data = &rcar_lvds_gen2_info },
|
||||
{ .compatible = "renesas,r8a774a1-lvds", .data = &rcar_lvds_gen3_info },
|
||||
{ .compatible = "renesas,r8a774b1-lvds", .data = &rcar_lvds_gen3_info },
|
||||
{ .compatible = "renesas,r8a774c0-lvds", .data = &rcar_lvds_r8a77990_info },
|
||||
{ .compatible = "renesas,r8a7790-lvds", .data = &rcar_lvds_r8a7790_info },
|
||||
{ .compatible = "renesas,r8a7790-lvds", .data = &rcar_lvds_gen2_info },
|
||||
{ .compatible = "renesas,r8a7791-lvds", .data = &rcar_lvds_gen2_info },
|
||||
{ .compatible = "renesas,r8a7793-lvds", .data = &rcar_lvds_gen2_info },
|
||||
{ .compatible = "renesas,r8a7795-lvds", .data = &rcar_lvds_gen3_info },
|
||||
|
|
Loading…
Reference in New Issue