Commit b4bba92d authored by Vincent Abriou's avatar Vincent Abriou

drm/sti: remove stih415-416 platform support

stih415 and stih416 platform are obsolete and no more supported.
Only stih407 and stih410 platform are maintained.
Signed-off-by: default avatarVincent Abriou <vincent.abriou@st.com>
Acked-by: default avatarBenjamin Gaignard <benjamin.gaignard@linaro.org>
Acked-by: default avatarPeter Griffin <peter.griffin@linaro.org>
parent 38fdb8d9
config DRM_STI config DRM_STI
tristate "DRM Support for STMicroelectronics SoC stiH41x Series" tristate "DRM Support for STMicroelectronics SoC stiH4xx Series"
depends on DRM && (SOC_STIH415 || SOC_STIH416 || ARCH_MULTIPLATFORM) depends on DRM && (ARCH_STI || ARCH_MULTIPLATFORM)
select RESET_CONTROLLER select RESET_CONTROLLER
select DRM_KMS_HELPER select DRM_KMS_HELPER
select DRM_GEM_CMA_HELPER select DRM_GEM_CMA_HELPER
...@@ -9,4 +9,4 @@ config DRM_STI ...@@ -9,4 +9,4 @@ config DRM_STI
select FW_LOADER select FW_LOADER
select SND_SOC_HDMI_CODEC if SND_SOC select SND_SOC_HDMI_CODEC if SND_SOC
help help
Choose this option to enable DRM on STM stiH41x chipset Choose this option to enable DRM on STM stiH4xx chipset
...@@ -9,7 +9,6 @@ sti-drm-y := \ ...@@ -9,7 +9,6 @@ sti-drm-y := \
sti_crtc.o \ sti_crtc.o \
sti_plane.o \ sti_plane.o \
sti_hdmi.o \ sti_hdmi.o \
sti_hdmi_tx3g0c55phy.o \
sti_hdmi_tx3g4c28phy.o \ sti_hdmi_tx3g4c28phy.o \
sti_dvo.o \ sti_dvo.o \
sti_awg_utils.o \ sti_awg_utils.o \
......
...@@ -39,22 +39,6 @@ static const struct sti_compositor_data stih407_compositor_data = { ...@@ -39,22 +39,6 @@ static const struct sti_compositor_data stih407_compositor_data = {
}, },
}; };
/*
* stiH416 compositor properties
* Note:
* on stih416 MIXER_AUX has a different base address from MIXER_MAIN
* Moreover, GDPx is different for Main and Aux Mixer. So this subdev map does
* not fit for stiH416 if we want to enable the MIXER_AUX.
*/
static const struct sti_compositor_data stih416_compositor_data = {
.nb_subdev = 3,
.subdev_desc = {
{STI_GPD_SUBDEV, (int)STI_GDP_0, 0x100},
{STI_GPD_SUBDEV, (int)STI_GDP_1, 0x200},
{STI_MIXER_MAIN_SUBDEV, STI_MIXER_MAIN, 0xC00}
},
};
int sti_compositor_debugfs_init(struct sti_compositor *compo, int sti_compositor_debugfs_init(struct sti_compositor *compo,
struct drm_minor *minor) struct drm_minor *minor)
{ {
...@@ -179,9 +163,6 @@ static const struct component_ops sti_compositor_ops = { ...@@ -179,9 +163,6 @@ static const struct component_ops sti_compositor_ops = {
static const struct of_device_id compositor_of_match[] = { static const struct of_device_id compositor_of_match[] = {
{ {
.compatible = "st,stih416-compositor",
.data = &stih416_compositor_data,
}, {
.compatible = "st,stih407-compositor", .compatible = "st,stih407-compositor",
.data = &stih407_compositor_data, .data = &stih407_compositor_data,
}, { }, {
......
...@@ -62,14 +62,8 @@ ...@@ -62,14 +62,8 @@
#define SCALE_CTRL_CR_DFLT 0x00DB0249 #define SCALE_CTRL_CR_DFLT 0x00DB0249
/* Video DACs control */ /* Video DACs control */
#define VIDEO_DACS_CONTROL_MASK 0x0FFF
#define VIDEO_DACS_CONTROL_SYSCFG2535 0x085C /* for stih416 */
#define DAC_CFG_HD_OFF_SHIFT 5
#define DAC_CFG_HD_OFF_MASK (0x7 << DAC_CFG_HD_OFF_SHIFT)
#define VIDEO_DACS_CONTROL_SYSCFG5072 0x0120 /* for stih407 */
#define DAC_CFG_HD_HZUVW_OFF_MASK BIT(1) #define DAC_CFG_HD_HZUVW_OFF_MASK BIT(1)
/* Upsampler values for the alternative 2X Filter */ /* Upsampler values for the alternative 2X Filter */
#define SAMPLER_COEF_NB 8 #define SAMPLER_COEF_NB 8
#define HDA_ANA_SRC_Y_CFG_ALT_2X 0x01130000 #define HDA_ANA_SRC_Y_CFG_ALT_2X 0x01130000
...@@ -300,28 +294,14 @@ static bool hda_get_mode_idx(struct drm_display_mode mode, int *idx) ...@@ -300,28 +294,14 @@ static bool hda_get_mode_idx(struct drm_display_mode mode, int *idx)
*/ */
static void hda_enable_hd_dacs(struct sti_hda *hda, bool enable) static void hda_enable_hd_dacs(struct sti_hda *hda, bool enable)
{ {
u32 mask;
if (hda->video_dacs_ctrl) { if (hda->video_dacs_ctrl) {
u32 val; u32 val;
switch ((u32)hda->video_dacs_ctrl & VIDEO_DACS_CONTROL_MASK) {
case VIDEO_DACS_CONTROL_SYSCFG2535:
mask = DAC_CFG_HD_OFF_MASK;
break;
case VIDEO_DACS_CONTROL_SYSCFG5072:
mask = DAC_CFG_HD_HZUVW_OFF_MASK;
break;
default:
DRM_INFO("Video DACS control register not supported\n");
return;
}
val = readl(hda->video_dacs_ctrl); val = readl(hda->video_dacs_ctrl);
if (enable) if (enable)
val &= ~mask; val &= ~DAC_CFG_HD_HZUVW_OFF_MASK;
else else
val |= mask; val |= DAC_CFG_HD_HZUVW_OFF_MASK;
writel(val, hda->video_dacs_ctrl); writel(val, hda->video_dacs_ctrl);
} }
...@@ -352,24 +332,11 @@ static void hda_dbg_awg_microcode(struct seq_file *s, void __iomem *reg) ...@@ -352,24 +332,11 @@ static void hda_dbg_awg_microcode(struct seq_file *s, void __iomem *reg)
static void hda_dbg_video_dacs_ctrl(struct seq_file *s, void __iomem *reg) static void hda_dbg_video_dacs_ctrl(struct seq_file *s, void __iomem *reg)
{ {
u32 val = readl(reg); u32 val = readl(reg);
u32 mask;
switch ((u32)reg & VIDEO_DACS_CONTROL_MASK) {
case VIDEO_DACS_CONTROL_SYSCFG2535:
mask = DAC_CFG_HD_OFF_MASK;
break;
case VIDEO_DACS_CONTROL_SYSCFG5072:
mask = DAC_CFG_HD_HZUVW_OFF_MASK;
break;
default:
DRM_DEBUG_DRIVER("Warning: DACS ctrl register not supported\n");
return;
}
seq_puts(s, "\n"); seq_puts(s, "\n");
seq_printf(s, "\n %-25s 0x%08X", "VIDEO_DACS_CONTROL", val); seq_printf(s, "\n %-25s 0x%08X", "VIDEO_DACS_CONTROL", val);
seq_puts(s, "\tHD DACs "); seq_puts(s, "\tHD DACs ");
seq_puts(s, val & mask ? "disabled" : "enabled"); seq_puts(s, val & DAC_CFG_HD_HZUVW_OFF_MASK ? "disabled" : "enabled");
} }
static int hda_dbg_show(struct seq_file *s, void *data) static int hda_dbg_show(struct seq_file *s, void *data)
......
...@@ -22,7 +22,6 @@ ...@@ -22,7 +22,6 @@
#include "sti_hdmi.h" #include "sti_hdmi.h"
#include "sti_hdmi_tx3g4c28phy.h" #include "sti_hdmi_tx3g4c28phy.h"
#include "sti_hdmi_tx3g0c55phy.h"
#include "sti_vtg.h" #include "sti_vtg.h"
#define HDMI_CFG 0x0000 #define HDMI_CFG 0x0000
...@@ -1374,9 +1373,6 @@ static const struct component_ops sti_hdmi_ops = { ...@@ -1374,9 +1373,6 @@ static const struct component_ops sti_hdmi_ops = {
static const struct of_device_id hdmi_of_match[] = { static const struct of_device_id hdmi_of_match[] = {
{ {
.compatible = "st,stih416-hdmi",
.data = &tx3g0c55phy_ops,
}, {
.compatible = "st,stih407-hdmi", .compatible = "st,stih407-hdmi",
.data = &tx3g4c28phy_ops, .data = &tx3g4c28phy_ops,
}, { }, {
...@@ -1423,22 +1419,6 @@ static int sti_hdmi_probe(struct platform_device *pdev) ...@@ -1423,22 +1419,6 @@ static int sti_hdmi_probe(struct platform_device *pdev)
goto release_adapter; goto release_adapter;
} }
if (of_device_is_compatible(np, "st,stih416-hdmi")) {
res = platform_get_resource_byname(pdev, IORESOURCE_MEM,
"syscfg");
if (!res) {
DRM_ERROR("Invalid syscfg resource\n");
ret = -ENOMEM;
goto release_adapter;
}
hdmi->syscfg = devm_ioremap_nocache(dev, res->start,
resource_size(res));
if (!hdmi->syscfg) {
ret = -ENOMEM;
goto release_adapter;
}
}
hdmi->phy_ops = (struct hdmi_phy_ops *) hdmi->phy_ops = (struct hdmi_phy_ops *)
of_match_node(hdmi_of_match, np)->data; of_match_node(hdmi_of_match, np)->data;
......
This diff is collapsed.
/*
* Copyright (C) STMicroelectronics SA 2014
* Author: Benjamin Gaignard <benjamin.gaignard@st.com> for STMicroelectronics.
* License terms: GNU General Public License (GPL), version 2
*/
#ifndef _STI_HDMI_TX3G0C55PHY_H_
#define _STI_HDMI_TX3G0C55PHY_H_
#include "sti_hdmi.h"
extern struct hdmi_phy_ops tx3g0c55phy_ops;
#endif
...@@ -16,12 +16,6 @@ static unsigned int bkg_color = 0x000000; ...@@ -16,12 +16,6 @@ static unsigned int bkg_color = 0x000000;
MODULE_PARM_DESC(bkgcolor, "Value of the background color 0xRRGGBB"); MODULE_PARM_DESC(bkgcolor, "Value of the background color 0xRRGGBB");
module_param_named(bkgcolor, bkg_color, int, 0644); module_param_named(bkgcolor, bkg_color, int, 0644);
/* Identity: G=Y , B=Cb , R=Cr */
static const u32 mixerColorSpaceMatIdentity[] = {
0x10000000, 0x00000000, 0x10000000, 0x00001000,
0x00000000, 0x00000000, 0x00000000, 0x00000000
};
/* regs offset */ /* regs offset */
#define GAM_MIXER_CTL 0x00 #define GAM_MIXER_CTL 0x00
#define GAM_MIXER_BKC 0x04 #define GAM_MIXER_BKC 0x04
...@@ -358,22 +352,12 @@ int sti_mixer_set_plane_status(struct sti_mixer *mixer, ...@@ -358,22 +352,12 @@ int sti_mixer_set_plane_status(struct sti_mixer *mixer,
return 0; return 0;
} }
static void sti_mixer_set_matrix(struct sti_mixer *mixer)
{
unsigned int i;
for (i = 0; i < ARRAY_SIZE(mixerColorSpaceMatIdentity); i++)
sti_mixer_reg_write(mixer, GAM_MIXER_MX0 + (i * 4),
mixerColorSpaceMatIdentity[i]);
}
struct sti_mixer *sti_mixer_create(struct device *dev, struct sti_mixer *sti_mixer_create(struct device *dev,
struct drm_device *drm_dev, struct drm_device *drm_dev,
int id, int id,
void __iomem *baseaddr) void __iomem *baseaddr)
{ {
struct sti_mixer *mixer = devm_kzalloc(dev, sizeof(*mixer), GFP_KERNEL); struct sti_mixer *mixer = devm_kzalloc(dev, sizeof(*mixer), GFP_KERNEL);
struct device_node *np = dev->of_node;
dev_dbg(dev, "%s\n", __func__); dev_dbg(dev, "%s\n", __func__);
if (!mixer) { if (!mixer) {
...@@ -384,9 +368,6 @@ struct sti_mixer *sti_mixer_create(struct device *dev, ...@@ -384,9 +368,6 @@ struct sti_mixer *sti_mixer_create(struct device *dev,
mixer->dev = dev; mixer->dev = dev;
mixer->id = id; mixer->id = id;
if (of_device_is_compatible(np, "st,stih416-compositor"))
sti_mixer_set_matrix(mixer);
DRM_DEBUG_DRIVER("%s created. Regs=%p\n", DRM_DEBUG_DRIVER("%s created. Regs=%p\n",
sti_mixer_to_str(mixer), mixer->regs); sti_mixer_to_str(mixer), mixer->regs);
......
...@@ -210,13 +210,11 @@ static void tvout_vip_set_rnd(struct sti_tvout *tvout, int reg, u32 rnd) ...@@ -210,13 +210,11 @@ static void tvout_vip_set_rnd(struct sti_tvout *tvout, int reg, u32 rnd)
* @tvout: tvout structure * @tvout: tvout structure
* @reg: register to set * @reg: register to set
* @main_path: main or auxiliary path * @main_path: main or auxiliary path
* @sel_input_logic_inverted: need to invert the logic
* @sel_input: selected_input (main/aux + conv) * @sel_input: selected_input (main/aux + conv)
*/ */
static void tvout_vip_set_sel_input(struct sti_tvout *tvout, static void tvout_vip_set_sel_input(struct sti_tvout *tvout,
int reg, int reg,
bool main_path, bool main_path,
bool sel_input_logic_inverted,
enum sti_tvout_video_out_type video_out) enum sti_tvout_video_out_type video_out)
{ {
u32 sel_input; u32 sel_input;
...@@ -237,8 +235,7 @@ static void tvout_vip_set_sel_input(struct sti_tvout *tvout, ...@@ -237,8 +235,7 @@ static void tvout_vip_set_sel_input(struct sti_tvout *tvout,
} }
/* on stih407 chip the sel_input bypass mode logic is inverted */ /* on stih407 chip the sel_input bypass mode logic is inverted */
if (sel_input_logic_inverted) sel_input = sel_input ^ TVO_VIP_SEL_INPUT_BYPASS_MASK;
sel_input = sel_input ^ TVO_VIP_SEL_INPUT_BYPASS_MASK;
val &= ~TVO_VIP_SEL_INPUT_MASK; val &= ~TVO_VIP_SEL_INPUT_MASK;
val |= sel_input; val |= sel_input;
...@@ -296,8 +293,6 @@ static void tvout_preformatter_set_matrix(struct sti_tvout *tvout, ...@@ -296,8 +293,6 @@ static void tvout_preformatter_set_matrix(struct sti_tvout *tvout,
*/ */
static void tvout_dvo_start(struct sti_tvout *tvout, bool main_path) static void tvout_dvo_start(struct sti_tvout *tvout, bool main_path)
{ {
struct device_node *node = tvout->dev->of_node;
bool sel_input_logic_inverted = false;
u32 tvo_in_vid_format; u32 tvo_in_vid_format;
int val, tmp; int val, tmp;
...@@ -335,16 +330,11 @@ static void tvout_dvo_start(struct sti_tvout *tvout, bool main_path) ...@@ -335,16 +330,11 @@ static void tvout_dvo_start(struct sti_tvout *tvout, bool main_path)
/* Set round mode (rounded to 8-bit per component) */ /* Set round mode (rounded to 8-bit per component) */
tvout_vip_set_rnd(tvout, TVO_VIP_DVO, TVO_VIP_RND_8BIT_ROUNDED); tvout_vip_set_rnd(tvout, TVO_VIP_DVO, TVO_VIP_RND_8BIT_ROUNDED);
if (of_device_is_compatible(node, "st,stih407-tvout")) { /* Set input video format */
/* Set input video format */ tvout_vip_set_in_vid_fmt(tvout, tvo_in_vid_format, TVO_IN_FMT_SIGNED);
tvout_vip_set_in_vid_fmt(tvout, tvo_in_vid_format,
TVO_IN_FMT_SIGNED);
sel_input_logic_inverted = true;
}
/* Input selection */ /* Input selection */
tvout_vip_set_sel_input(tvout, TVO_VIP_DVO, main_path, tvout_vip_set_sel_input(tvout, TVO_VIP_DVO, main_path,
sel_input_logic_inverted,
STI_TVOUT_VIDEO_OUT_RGB); STI_TVOUT_VIDEO_OUT_RGB);
} }
...@@ -357,8 +347,6 @@ static void tvout_dvo_start(struct sti_tvout *tvout, bool main_path) ...@@ -357,8 +347,6 @@ static void tvout_dvo_start(struct sti_tvout *tvout, bool main_path)
*/ */
static void tvout_hdmi_start(struct sti_tvout *tvout, bool main_path) static void tvout_hdmi_start(struct sti_tvout *tvout, bool main_path)
{ {
struct device_node *node = tvout->dev->of_node;
bool sel_input_logic_inverted = false;
u32 tvo_in_vid_format; u32 tvo_in_vid_format;
dev_dbg(tvout->dev, "%s\n", __func__); dev_dbg(tvout->dev, "%s\n", __func__);
...@@ -391,16 +379,12 @@ static void tvout_hdmi_start(struct sti_tvout *tvout, bool main_path) ...@@ -391,16 +379,12 @@ static void tvout_hdmi_start(struct sti_tvout *tvout, bool main_path)
/* set round mode (rounded to 8-bit per component) */ /* set round mode (rounded to 8-bit per component) */
tvout_vip_set_rnd(tvout, TVO_VIP_HDMI, TVO_VIP_RND_8BIT_ROUNDED); tvout_vip_set_rnd(tvout, TVO_VIP_HDMI, TVO_VIP_RND_8BIT_ROUNDED);
if (of_device_is_compatible(node, "st,stih407-tvout")) { /* set input video format */
/* set input video format */ tvout_vip_set_in_vid_fmt(tvout, tvo_in_vid_format, TVO_IN_FMT_SIGNED);
tvout_vip_set_in_vid_fmt(tvout, tvo_in_vid_format,
TVO_IN_FMT_SIGNED);
sel_input_logic_inverted = true;
}
/* input selection */ /* input selection */
tvout_vip_set_sel_input(tvout, TVO_VIP_HDMI, main_path, tvout_vip_set_sel_input(tvout, TVO_VIP_HDMI, main_path,
sel_input_logic_inverted, STI_TVOUT_VIDEO_OUT_RGB); STI_TVOUT_VIDEO_OUT_RGB);
} }
/** /**
...@@ -412,8 +396,6 @@ static void tvout_hdmi_start(struct sti_tvout *tvout, bool main_path) ...@@ -412,8 +396,6 @@ static void tvout_hdmi_start(struct sti_tvout *tvout, bool main_path)
*/ */
static void tvout_hda_start(struct sti_tvout *tvout, bool main_path) static void tvout_hda_start(struct sti_tvout *tvout, bool main_path)
{ {
struct device_node *node = tvout->dev->of_node;
bool sel_input_logic_inverted = false;
u32 tvo_in_vid_format; u32 tvo_in_vid_format;
int val; int val;
...@@ -449,16 +431,11 @@ static void tvout_hda_start(struct sti_tvout *tvout, bool main_path) ...@@ -449,16 +431,11 @@ static void tvout_hda_start(struct sti_tvout *tvout, bool main_path)
/* set round mode (rounded to 10-bit per component) */ /* set round mode (rounded to 10-bit per component) */
tvout_vip_set_rnd(tvout, TVO_VIP_HDF, TVO_VIP_RND_10BIT_ROUNDED); tvout_vip_set_rnd(tvout, TVO_VIP_HDF, TVO_VIP_RND_10BIT_ROUNDED);
if (of_device_is_compatible(node, "st,stih407-tvout")) { /* Set input video format */
/* set input video format */ tvout_vip_set_in_vid_fmt(tvout, tvo_in_vid_format, TVO_IN_FMT_SIGNED);
tvout_vip_set_in_vid_fmt(tvout,
tvo_in_vid_format, TVO_IN_FMT_SIGNED);
sel_input_logic_inverted = true;
}
/* Input selection */ /* Input selection */
tvout_vip_set_sel_input(tvout, TVO_VIP_HDF, main_path, tvout_vip_set_sel_input(tvout, TVO_VIP_HDF, main_path,
sel_input_logic_inverted,
STI_TVOUT_VIDEO_OUT_YUV); STI_TVOUT_VIDEO_OUT_YUV);
/* power up HD DAC */ /* power up HD DAC */
...@@ -906,7 +883,6 @@ static int sti_tvout_remove(struct platform_device *pdev) ...@@ -906,7 +883,6 @@ static int sti_tvout_remove(struct platform_device *pdev)
} }
static const struct of_device_id tvout_of_match[] = { static const struct of_device_id tvout_of_match[] = {
{ .compatible = "st,stih416-tvout", },
{ .compatible = "st,stih407-tvout", }, { .compatible = "st,stih407-tvout", },
{ /* end node */ } { /* end node */ }
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment