|
|
|
|
@@ -33,7 +33,7 @@ Special thank to Martin Blumenstingl.
|
|
|
|
|
create mode 100644 drivers/phy/amlogic/phy-meson-cvbs-dac.c
|
|
|
|
|
|
|
|
|
|
diff --git a/Documentation/devicetree/bindings/display/amlogic,meson-vpu.yaml b/Documentation/devicetree/bindings/display/amlogic,meson-vpu.yaml
|
|
|
|
|
index 6655a93b187..bbc58c8bdfc 100644
|
|
|
|
|
index 0c72120a..160b84f8 100644
|
|
|
|
|
--- a/Documentation/devicetree/bindings/display/amlogic,meson-vpu.yaml
|
|
|
|
|
+++ b/Documentation/devicetree/bindings/display/amlogic,meson-vpu.yaml
|
|
|
|
|
@@ -66,8 +66,12 @@ properties:
|
|
|
|
|
@@ -77,7 +77,7 @@ index 6655a93b187..bbc58c8bdfc 100644
|
|
|
|
|
reg = <0>;
|
|
|
|
|
diff --git a/Documentation/devicetree/bindings/phy/amlogic,meson-cvbs-dac-phy.yaml b/Documentation/devicetree/bindings/phy/amlogic,meson-cvbs-dac-phy.yaml
|
|
|
|
|
new file mode 100644
|
|
|
|
|
index 00000000000..d73cb12c0d9
|
|
|
|
|
index 00000000..d73cb12c
|
|
|
|
|
--- /dev/null
|
|
|
|
|
+++ b/Documentation/devicetree/bindings/phy/amlogic,meson-cvbs-dac-phy.yaml
|
|
|
|
|
@@ -0,0 +1,81 @@
|
|
|
|
|
@@ -163,7 +163,7 @@ index 00000000000..d73cb12c0d9
|
|
|
|
|
+ clocks = <&vdac_clock>;
|
|
|
|
|
+ };
|
|
|
|
|
diff --git a/arch/arm/boot/dts/meson.dtsi b/arch/arm/boot/dts/meson.dtsi
|
|
|
|
|
index 8e3860d5d91..9a56cdf776a 100644
|
|
|
|
|
index 8e3860d5..9a56cdf7 100644
|
|
|
|
|
--- a/arch/arm/boot/dts/meson.dtsi
|
|
|
|
|
+++ b/arch/arm/boot/dts/meson.dtsi
|
|
|
|
|
@@ -35,6 +35,19 @@ hhi: system-controller@4000 {
|
|
|
|
|
@@ -187,7 +187,7 @@ index 8e3860d5d91..9a56cdf776a 100644
|
|
|
|
|
|
|
|
|
|
aiu: audio-controller@5400 {
|
|
|
|
|
diff --git a/arch/arm/boot/dts/meson8.dtsi b/arch/arm/boot/dts/meson8.dtsi
|
|
|
|
|
index 0f8bac8bac8..646bb8b102b 100644
|
|
|
|
|
index 4f22ab45..a9ed099f 100644
|
|
|
|
|
--- a/arch/arm/boot/dts/meson8.dtsi
|
|
|
|
|
+++ b/arch/arm/boot/dts/meson8.dtsi
|
|
|
|
|
@@ -314,6 +314,113 @@ mali: gpu@c0000 {
|
|
|
|
|
@@ -358,7 +358,7 @@ index 0f8bac8bac8..646bb8b102b 100644
|
|
|
|
|
sd_a_pins: sd-a {
|
|
|
|
|
mux {
|
|
|
|
|
groups = "sd_d0_a", "sd_d1_a", "sd_d2_a",
|
|
|
|
|
@@ -584,6 +724,17 @@ smp-sram@1ff80 {
|
|
|
|
|
@@ -601,6 +741,17 @@ smp-sram@1ff80 {
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
@@ -376,7 +376,7 @@ index 0f8bac8bac8..646bb8b102b 100644
|
|
|
|
|
&efuse {
|
|
|
|
|
compatible = "amlogic,meson8-efuse";
|
|
|
|
|
clocks = <&clkc CLKID_EFUSE>;
|
|
|
|
|
@@ -593,6 +744,10 @@ temperature_calib: calib@1f4 {
|
|
|
|
|
@@ -610,6 +761,10 @@ temperature_calib: calib@1f4 {
|
|
|
|
|
/* only the upper two bytes are relevant */
|
|
|
|
|
reg = <0x1f4 0x4>;
|
|
|
|
|
};
|
|
|
|
|
@@ -387,7 +387,7 @@ index 0f8bac8bac8..646bb8b102b 100644
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
ðmac {
|
|
|
|
|
@@ -608,16 +763,18 @@ &gpio_intc {
|
|
|
|
|
@@ -625,16 +780,18 @@ &gpio_intc {
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
&hhi {
|
|
|
|
|
@@ -408,7 +408,7 @@ index 0f8bac8bac8..646bb8b102b 100644
|
|
|
|
|
#power-domain-cells = <1>;
|
|
|
|
|
amlogic,ao-sysctrl = <&pmu>;
|
|
|
|
|
clocks = <&clkc CLKID_VPU>;
|
|
|
|
|
@@ -625,6 +782,13 @@ pwrc: power-controller {
|
|
|
|
|
@@ -642,6 +799,13 @@ pwrc: power-controller {
|
|
|
|
|
assigned-clocks = <&clkc CLKID_VPU>;
|
|
|
|
|
assigned-clock-rates = <364285714>;
|
|
|
|
|
};
|
|
|
|
|
@@ -423,7 +423,7 @@ index 0f8bac8bac8..646bb8b102b 100644
|
|
|
|
|
|
|
|
|
|
&hwrng {
|
|
|
|
|
diff --git a/arch/arm/boot/dts/meson8b.dtsi b/arch/arm/boot/dts/meson8b.dtsi
|
|
|
|
|
index cf9c04a61ba..20acfc607f0 100644
|
|
|
|
|
index 5979209f..e75d07b5 100644
|
|
|
|
|
--- a/arch/arm/boot/dts/meson8b.dtsi
|
|
|
|
|
+++ b/arch/arm/boot/dts/meson8b.dtsi
|
|
|
|
|
@@ -276,6 +276,116 @@ mali: gpu@c0000 {
|
|
|
|
|
@@ -662,7 +662,7 @@ index cf9c04a61ba..20acfc607f0 100644
|
|
|
|
|
|
|
|
|
|
&hwrng {
|
|
|
|
|
diff --git a/arch/arm/boot/dts/meson8m2.dtsi b/arch/arm/boot/dts/meson8m2.dtsi
|
|
|
|
|
index 6725dd9fd82..fcb2ad97609 100644
|
|
|
|
|
index 6725dd9f..fcb2ad97 100644
|
|
|
|
|
--- a/arch/arm/boot/dts/meson8m2.dtsi
|
|
|
|
|
+++ b/arch/arm/boot/dts/meson8m2.dtsi
|
|
|
|
|
@@ -96,6 +96,10 @@ &usb1_phy {
|
|
|
|
|
@@ -677,7 +677,7 @@ index 6725dd9fd82..fcb2ad97609 100644
|
|
|
|
|
compatible = "amlogic,meson8m2-wdt", "amlogic,meson8b-wdt";
|
|
|
|
|
};
|
|
|
|
|
diff --git a/drivers/gpu/drm/meson/Kconfig b/drivers/gpu/drm/meson/Kconfig
|
|
|
|
|
index 823909da87d..ba9f1bc8408 100644
|
|
|
|
|
index 823909da..ba9f1bc8 100644
|
|
|
|
|
--- a/drivers/gpu/drm/meson/Kconfig
|
|
|
|
|
+++ b/drivers/gpu/drm/meson/Kconfig
|
|
|
|
|
@@ -10,6 +10,7 @@ config DRM_MESON
|
|
|
|
|
@@ -701,7 +701,7 @@ index 823909da87d..ba9f1bc8408 100644
|
|
|
|
|
+ select REGMAP_MMIO
|
|
|
|
|
+ select SND_SOC_HDMI_CODEC if SND_SOC
|
|
|
|
|
diff --git a/drivers/gpu/drm/meson/Makefile b/drivers/gpu/drm/meson/Makefile
|
|
|
|
|
index 3afa31bdc95..817a5270aee 100644
|
|
|
|
|
index 3afa31bd..817a5270 100644
|
|
|
|
|
--- a/drivers/gpu/drm/meson/Makefile
|
|
|
|
|
+++ b/drivers/gpu/drm/meson/Makefile
|
|
|
|
|
@@ -6,3 +6,4 @@ meson-drm-y += meson_encoder_hdmi.o
|
|
|
|
|
@@ -710,7 +710,7 @@ index 3afa31bdc95..817a5270aee 100644
|
|
|
|
|
obj-$(CONFIG_DRM_MESON_DW_HDMI) += meson_dw_hdmi.o
|
|
|
|
|
+obj-$(CONFIG_DRM_MESON_TRANSWITCH_HDMI) += meson_transwitch_hdmi.o
|
|
|
|
|
diff --git a/drivers/gpu/drm/meson/meson_drv.c b/drivers/gpu/drm/meson/meson_drv.c
|
|
|
|
|
index 3b24a924b7b..091c670ab0e 100644
|
|
|
|
|
index bb72fda9..15f019ac 100644
|
|
|
|
|
--- a/drivers/gpu/drm/meson/meson_drv.c
|
|
|
|
|
+++ b/drivers/gpu/drm/meson/meson_drv.c
|
|
|
|
|
@@ -12,6 +12,7 @@
|
|
|
|
|
@@ -1107,7 +1107,7 @@ index 3b24a924b7b..091c670ab0e 100644
|
|
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
|
|
|
|
|
|
@@ -362,6 +552,10 @@ static int meson_drv_bind_master(struct device *dev, bool has_components)
|
|
|
|
|
@@ -365,6 +555,10 @@ static int meson_drv_bind_master(struct device *dev, bool has_components)
|
|
|
|
|
exit_afbcd:
|
|
|
|
|
if (priv->afbcd.ops)
|
|
|
|
|
priv->afbcd.ops->exit(priv);
|
|
|
|
|
@@ -1118,7 +1118,7 @@ index 3b24a924b7b..091c670ab0e 100644
|
|
|
|
|
free_drm:
|
|
|
|
|
drm_dev_put(drm);
|
|
|
|
|
|
|
|
|
|
@@ -398,6 +592,10 @@ static void meson_drv_unbind(struct device *dev)
|
|
|
|
|
@@ -401,6 +595,10 @@ static void meson_drv_unbind(struct device *dev)
|
|
|
|
|
|
|
|
|
|
if (priv->afbcd.ops)
|
|
|
|
|
priv->afbcd.ops->exit(priv);
|
|
|
|
|
@@ -1129,7 +1129,7 @@ index 3b24a924b7b..091c670ab0e 100644
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static const struct component_master_ops meson_drv_master_ops = {
|
|
|
|
|
@@ -412,6 +610,8 @@ static int __maybe_unused meson_drv_pm_suspend(struct device *dev)
|
|
|
|
|
@@ -415,6 +613,8 @@ static int __maybe_unused meson_drv_pm_suspend(struct device *dev)
|
|
|
|
|
if (!priv)
|
|
|
|
|
return 0;
|
|
|
|
|
|
|
|
|
|
@@ -1138,7 +1138,7 @@ index 3b24a924b7b..091c670ab0e 100644
|
|
|
|
|
return drm_mode_config_helper_suspend(priv->drm);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -422,6 +622,7 @@ static int __maybe_unused meson_drv_pm_resume(struct device *dev)
|
|
|
|
|
@@ -425,6 +625,7 @@ static int __maybe_unused meson_drv_pm_resume(struct device *dev)
|
|
|
|
|
if (!priv)
|
|
|
|
|
return 0;
|
|
|
|
|
|
|
|
|
|
@@ -1146,7 +1146,7 @@ index 3b24a924b7b..091c670ab0e 100644
|
|
|
|
|
meson_vpu_init(priv);
|
|
|
|
|
meson_venc_init(priv);
|
|
|
|
|
meson_vpp_init(priv);
|
|
|
|
|
@@ -504,6 +705,18 @@ static int meson_drv_remove(struct platform_device *pdev)
|
|
|
|
|
@@ -507,6 +708,18 @@ static int meson_drv_remove(struct platform_device *pdev)
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -1165,7 +1165,7 @@ index 3b24a924b7b..091c670ab0e 100644
|
|
|
|
|
static struct meson_drm_match_data meson_drm_gxbb_data = {
|
|
|
|
|
.compat = VPU_COMPATIBLE_GXBB,
|
|
|
|
|
};
|
|
|
|
|
@@ -523,6 +736,12 @@ static struct meson_drm_match_data meson_drm_g12a_data = {
|
|
|
|
|
@@ -526,6 +739,12 @@ static struct meson_drm_match_data meson_drm_g12a_data = {
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static const struct of_device_id dt_match[] = {
|
|
|
|
|
@@ -1179,7 +1179,7 @@ index 3b24a924b7b..091c670ab0e 100644
|
|
|
|
|
.data = (void *)&meson_drm_gxbb_data },
|
|
|
|
|
{ .compatible = "amlogic,meson-gxl-vpu",
|
|
|
|
|
diff --git a/drivers/gpu/drm/meson/meson_drv.h b/drivers/gpu/drm/meson/meson_drv.h
|
|
|
|
|
index c62ee358456..fe0a8f8762f 100644
|
|
|
|
|
index c62ee358..fe0a8f87 100644
|
|
|
|
|
--- a/drivers/gpu/drm/meson/meson_drv.h
|
|
|
|
|
+++ b/drivers/gpu/drm/meson/meson_drv.h
|
|
|
|
|
@@ -7,22 +7,29 @@
|
|
|
|
|
@@ -1265,7 +1265,7 @@ index c62ee358456..fe0a8f8762f 100644
|
|
|
|
|
struct {
|
|
|
|
|
bool osd1_enabled;
|
|
|
|
|
diff --git a/drivers/gpu/drm/meson/meson_encoder_cvbs.c b/drivers/gpu/drm/meson/meson_encoder_cvbs.c
|
|
|
|
|
index 3f73b211fa8..833f701fe27 100644
|
|
|
|
|
index 3f73b211..833f701f 100644
|
|
|
|
|
--- a/drivers/gpu/drm/meson/meson_encoder_cvbs.c
|
|
|
|
|
+++ b/drivers/gpu/drm/meson/meson_encoder_cvbs.c
|
|
|
|
|
@@ -11,6 +11,7 @@
|
|
|
|
|
@@ -1382,7 +1382,7 @@ index 3f73b211fa8..833f701fe27 100644
|
|
|
|
|
.get_modes = meson_encoder_cvbs_get_modes,
|
|
|
|
|
.atomic_enable = meson_encoder_cvbs_atomic_enable,
|
|
|
|
|
diff --git a/drivers/gpu/drm/meson/meson_encoder_hdmi.c b/drivers/gpu/drm/meson/meson_encoder_hdmi.c
|
|
|
|
|
index 53231bfdf7e..f950c557d5f 100644
|
|
|
|
|
index 53231bfd..f950c557 100644
|
|
|
|
|
--- a/drivers/gpu/drm/meson/meson_encoder_hdmi.c
|
|
|
|
|
+++ b/drivers/gpu/drm/meson/meson_encoder_hdmi.c
|
|
|
|
|
@@ -188,13 +188,13 @@ static void meson_encoder_hdmi_atomic_enable(struct drm_bridge *bridge,
|
|
|
|
|
@@ -1508,7 +1508,7 @@ index 53231bfdf7e..f950c557d5f 100644
|
|
|
|
|
pdev = of_find_device_by_node(remote);
|
|
|
|
|
of_node_put(remote);
|
|
|
|
|
diff --git a/drivers/gpu/drm/meson/meson_plane.c b/drivers/gpu/drm/meson/meson_plane.c
|
|
|
|
|
index 815dfe30492..27e39577218 100644
|
|
|
|
|
index 815dfe30..27e39577 100644
|
|
|
|
|
--- a/drivers/gpu/drm/meson/meson_plane.c
|
|
|
|
|
+++ b/drivers/gpu/drm/meson/meson_plane.c
|
|
|
|
|
@@ -200,8 +200,11 @@ static void meson_plane_atomic_update(struct drm_plane *plane,
|
|
|
|
|
@@ -1580,7 +1580,7 @@ index 815dfe30492..27e39577218 100644
|
|
|
|
|
|
|
|
|
|
diff --git a/drivers/gpu/drm/meson/meson_transwitch_hdmi.c b/drivers/gpu/drm/meson/meson_transwitch_hdmi.c
|
|
|
|
|
new file mode 100644
|
|
|
|
|
index 00000000000..e88bdba7c16
|
|
|
|
|
index 00000000..e88bdba7
|
|
|
|
|
--- /dev/null
|
|
|
|
|
+++ b/drivers/gpu/drm/meson/meson_transwitch_hdmi.c
|
|
|
|
|
@@ -0,0 +1,1579 @@
|
|
|
|
|
@@ -3165,7 +3165,7 @@ index 00000000000..e88bdba7c16
|
|
|
|
|
+MODULE_LICENSE("GPL v2");
|
|
|
|
|
diff --git a/drivers/gpu/drm/meson/meson_transwitch_hdmi.h b/drivers/gpu/drm/meson/meson_transwitch_hdmi.h
|
|
|
|
|
new file mode 100644
|
|
|
|
|
index 00000000000..14929475c0c
|
|
|
|
|
index 00000000..14929475
|
|
|
|
|
--- /dev/null
|
|
|
|
|
+++ b/drivers/gpu/drm/meson/meson_transwitch_hdmi.h
|
|
|
|
|
@@ -0,0 +1,536 @@
|
|
|
|
|
@@ -3706,7 +3706,7 @@ index 00000000000..14929475c0c
|
|
|
|
|
+
|
|
|
|
|
+#endif /* __MESON_TRANSWITCH_HDMI_H__ */
|
|
|
|
|
diff --git a/drivers/gpu/drm/meson/meson_vclk.c b/drivers/gpu/drm/meson/meson_vclk.c
|
|
|
|
|
index 2a82119eb58..a2c1bf1aed7 100644
|
|
|
|
|
index 2a82119e..a2c1bf1a 100644
|
|
|
|
|
--- a/drivers/gpu/drm/meson/meson_vclk.c
|
|
|
|
|
+++ b/drivers/gpu/drm/meson/meson_vclk.c
|
|
|
|
|
@@ -732,6 +732,11 @@ meson_vclk_dmt_supported_freq(struct meson_drm *priv, unsigned int freq)
|
|
|
|
|
@@ -3884,7 +3884,7 @@ index 2a82119eb58..a2c1bf1aed7 100644
|
|
|
|
|
meson_venci_cvbs_clock_config(priv);
|
|
|
|
|
return;
|
|
|
|
|
diff --git a/drivers/gpu/drm/meson/meson_venc.c b/drivers/gpu/drm/meson/meson_venc.c
|
|
|
|
|
index 3c55ed00335..009882bda7b 100644
|
|
|
|
|
index fcd532db..b28d4890 100644
|
|
|
|
|
--- a/drivers/gpu/drm/meson/meson_venc.c
|
|
|
|
|
+++ b/drivers/gpu/drm/meson/meson_venc.c
|
|
|
|
|
@@ -60,10 +60,6 @@
|
|
|
|
|
@@ -3959,7 +3959,7 @@ index 3c55ed00335..009882bda7b 100644
|
|
|
|
|
/* Disable HDMI */
|
|
|
|
|
writel_bits_relaxed(VPU_HDMI_ENCI_DATA_TO_HDMI |
|
|
|
|
|
diff --git a/drivers/gpu/drm/meson/meson_viu.c b/drivers/gpu/drm/meson/meson_viu.c
|
|
|
|
|
index cd399b0b718..bdfa342c4ca 100644
|
|
|
|
|
index cd399b0b..bdfa342c 100644
|
|
|
|
|
--- a/drivers/gpu/drm/meson/meson_viu.c
|
|
|
|
|
+++ b/drivers/gpu/drm/meson/meson_viu.c
|
|
|
|
|
@@ -448,13 +448,17 @@ void meson_viu_init(struct meson_drm *priv)
|
|
|
|
|
@@ -3988,7 +3988,7 @@ index cd399b0b718..bdfa342c4ca 100644
|
|
|
|
|
/* Disable VD1 AFBC */
|
|
|
|
|
/* di_mif0_en=0 mif0_to_vpp_en=0 di_mad_en=0 and afbc vd1 set=0*/
|
|
|
|
|
diff --git a/drivers/phy/amlogic/Kconfig b/drivers/phy/amlogic/Kconfig
|
|
|
|
|
index ce7ba3eb2a8..671435b605f 100644
|
|
|
|
|
index ce7ba3eb..671435b6 100644
|
|
|
|
|
--- a/drivers/phy/amlogic/Kconfig
|
|
|
|
|
+++ b/drivers/phy/amlogic/Kconfig
|
|
|
|
|
@@ -25,6 +25,16 @@ config PHY_MESON8B_USB2
|
|
|
|
|
@@ -4009,7 +4009,7 @@ index ce7ba3eb2a8..671435b605f 100644
|
|
|
|
|
tristate "Meson GXL and GXM USB2 PHY drivers"
|
|
|
|
|
default ARCH_MESON
|
|
|
|
|
diff --git a/drivers/phy/amlogic/Makefile b/drivers/phy/amlogic/Makefile
|
|
|
|
|
index 91e3b9790c0..f6c38f7386a 100644
|
|
|
|
|
index 91e3b979..f6c38f73 100644
|
|
|
|
|
--- a/drivers/phy/amlogic/Makefile
|
|
|
|
|
+++ b/drivers/phy/amlogic/Makefile
|
|
|
|
|
@@ -1,6 +1,7 @@
|
|
|
|
|
@@ -4022,7 +4022,7 @@ index 91e3b9790c0..f6c38f7386a 100644
|
|
|
|
|
obj-$(CONFIG_PHY_MESON_G12A_USB3_PCIE) += phy-meson-g12a-usb3-pcie.o
|
|
|
|
|
diff --git a/drivers/phy/amlogic/phy-meson-cvbs-dac.c b/drivers/phy/amlogic/phy-meson-cvbs-dac.c
|
|
|
|
|
new file mode 100644
|
|
|
|
|
index 00000000000..96549e63bc1
|
|
|
|
|
index 00000000..96549e63
|
|
|
|
|
--- /dev/null
|
|
|
|
|
+++ b/drivers/phy/amlogic/phy-meson-cvbs-dac.c
|
|
|
|
|
@@ -0,0 +1,375 @@
|
|
|
|
|
|