Skip to content

Commit 0e4f1fc

Browse files
author
Jyri Sarha
committed
Merge branch 'ti/4.4-pull' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux into audio-display-ti-linux-4.4.y
omapdrm changes for 2016.04 * 'ti/4.4-pull' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux: drm/omap: fix replication logic ARM: dts: K2G: add keystone-k2g-evm-lcd.dts ARM: dts: K2G: change sound names to avoid conflicts drm/omap: k2g: allow pclk rate of 9MHz drm/omap: decrease min width & height drm/omap: remove divider constraint from hsdiv
2 parents 0fbb110 + 67011ce commit 0e4f1fc

File tree

10 files changed

+123
-25
lines changed

10 files changed

+123
-25
lines changed

arch/arm/boot/dts/Makefile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,8 @@ dtb-$(CONFIG_ARCH_KEYSTONE) += \
151151
keystone-k2hk-evm.dtb \
152152
keystone-k2l-evm.dtb \
153153
keystone-k2e-evm.dtb \
154-
keystone-k2g-evm.dtb
154+
keystone-k2g-evm.dtb \
155+
keystone-k2g-evm-lcd.dtb
155156
dtb-$(CONFIG_MACH_KIRKWOOD) += \
156157
kirkwood-b3.dtb \
157158
kirkwood-blackarmor-nas220.dtb \
Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
#include "keystone-k2g-evm.dts"
2+
3+
/ {
4+
aliases {
5+
display0 = &lcd0;
6+
sound0 = &sound1;
7+
};
8+
9+
lcd0: display {
10+
compatible = "newhaven,nhd-4.3-480272ef-atxl", "panel-dpi";
11+
label = "lcd";
12+
13+
panel-timing {
14+
clock-frequency = <9000000>;
15+
hactive = <480>;
16+
vactive = <272>;
17+
hfront-porch = <2>;
18+
hback-porch = <2>;
19+
hsync-len = <41>;
20+
vfront-porch = <2>;
21+
vback-porch = <2>;
22+
vsync-len = <10>;
23+
hsync-active = <0>;
24+
vsync-active = <0>;
25+
de-active = <1>;
26+
pixelclk-active = <1>;
27+
};
28+
29+
port {
30+
lcd_in: endpoint {
31+
remote-endpoint = <&dpi_out>;
32+
};
33+
};
34+
};
35+
36+
sound1: sound@1 {
37+
compatible = "simple-audio-card";
38+
simple-audio-card,name = "K2G-EVM-LCD";
39+
simple-audio-card,widgets =
40+
"Headphone", "Headphone Jack",
41+
"Line", "Line In";
42+
simple-audio-card,routing =
43+
"Headphone Jack", "HPLOUT",
44+
"Headphone Jack", "HPROUT",
45+
"LINE1L", "Line In",
46+
"LINE1R", "Line In";
47+
simple-audio-card,format = "i2s";
48+
simple-audio-card,bitclock-master = <&sound1_master>;
49+
simple-audio-card,frame-master = <&sound1_master>;
50+
51+
sound1_master: simple-audio-card,cpu {
52+
sound-dai = <&mcasp2>;
53+
clocks = <&k2g_clks K2G_DEV_MCASP2 K2G_DEV_MCASP_AUX_CLK>;
54+
system-clock-id = <MCASP_CLK_HCLK_AUXCLK>;
55+
};
56+
57+
simple-audio-card,codec {
58+
sound-dai = <&tlv320aic3106>;
59+
system-clock-frequency = <12288000>;
60+
};
61+
};
62+
};
63+
64+
&i2c1 {
65+
edt-ft5306@38 {
66+
status = "okay";
67+
compatible = "edt,edt-ft5306", "edt,edt-ft5x06";
68+
reg = <0x38>;
69+
70+
pinctrl-names = "default";
71+
pinctrl-0 = <&edt_ft5306_ts_pins>;
72+
73+
interrupt-parent = <&gpio1>;
74+
interrupts = <42 IRQ_TYPE_EDGE_FALLING>;
75+
76+
touchscreen-size-x = <480>;
77+
touchscreen-size-y = <272>;
78+
};
79+
};
80+
81+
&k2g_pinctrl {
82+
edt_ft5306_ts_pins: edt_ft5306_ts_pins {
83+
pinctrl-single,pins = <
84+
K2G_CORE_IOPAD(0x1364) (BUFFER_CLASS_B | PIN_PULLDOWN | MUX_MODE3) /* pr1_pru1_gpo16.gpio1_42 */
85+
>;
86+
};
87+
};
88+
89+
&dpi_out {
90+
remote-endpoint = <&lcd_in>;
91+
};
92+
93+
&hdmi {
94+
status = "disabled";
95+
};
96+
97+
&sii9022 {
98+
status = "disabled";
99+
};
100+
101+
&sound0 {
102+
status = "disabled";
103+
};

arch/arm/boot/dts/keystone-k2g-evm.dts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -104,9 +104,9 @@
104104

105105
simple-audio-card,dai-link@0 {
106106
format = "i2s";
107-
bitclock-master = <&sound0_master>;
108-
frame-master = <&sound0_master>;
109-
sound0_master: cpu {
107+
bitclock-master = <&sound0_0_master>;
108+
frame-master = <&sound0_0_master>;
109+
sound0_0_master: cpu {
110110
sound-dai = <&mcasp2>;
111111
clocks = <&k2g_clks K2G_DEV_MCASP2 K2G_DEV_MCASP_AUX_CLK>;
112112
system-clock-id = <MCASP_CLK_HCLK_AUXCLK>;
@@ -120,9 +120,9 @@
120120

121121
simple-audio-card,dai-link@1 {
122122
format = "i2s";
123-
bitclock-master = <&sound1_master>;
124-
frame-master = <&sound1_master>;
125-
sound1_master: cpu {
123+
bitclock-master = <&sound0_1_master>;
124+
frame-master = <&sound0_1_master>;
125+
sound0_1_master: cpu {
126126
sound-dai = <&mcasp2>;
127127
clocks = <&k2g_clks K2G_DEV_MCASP2 K2G_DEV_MCASP_AUX_CLK>;
128128
system-clock-id = <MCASP_CLK_HCLK_AUXCLK>;

drivers/gpu/drm/omapdrm/dss/dispc.c

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2805,12 +2805,13 @@ static int dispc_ovl_setup_common(enum omap_plane plane,
28052805
}
28062806

28072807
static int dispc_ovl_setup(enum omap_plane plane, const struct omap_overlay_info *oi,
2808-
bool replication, const struct omap_video_timings *mgr_timings,
2808+
const struct omap_video_timings *mgr_timings,
28092809
bool mem_to_mem)
28102810
{
28112811
int r;
28122812
enum omap_overlay_caps caps = dss_feat_get_overlay_caps(plane);
28132813
enum omap_channel channel;
2814+
const bool replication = true;
28142815

28152816
channel = dispc_ovl_get_channel_out(plane);
28162817

@@ -2838,7 +2839,7 @@ static int dispc_wb_setup(const struct omap_dss_writeback_info *wi,
28382839
enum omap_plane plane = OMAP_DSS_WB;
28392840
const int pos_x = 0, pos_y = 0;
28402841
const u8 zorder = 0, global_alpha = 0;
2841-
const bool replication = false;
2842+
const bool replication = true;
28422843
bool truncation;
28432844
int in_width = mgr_timings->x_res;
28442845
int in_height = mgr_timings->y_res;
@@ -4373,7 +4374,7 @@ static void dispc_errata_i734_wa(void)
43734374

43744375
/* Setup and enable GFX plane */
43754376
dispc_ovl_set_channel_out(OMAP_DSS_GFX, OMAP_DSS_CHANNEL_LCD);
4376-
dispc_ovl_setup(OMAP_DSS_GFX, &ovli, false, &i734.timings, false);
4377+
dispc_ovl_setup(OMAP_DSS_GFX, &ovli, &i734.timings, false);
43774378
dispc_ovl_enable(OMAP_DSS_GFX, true);
43784379

43794380
/* Set up and enable display manager for LCD1 */

drivers/gpu/drm/omapdrm/dss/dispc6.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -557,7 +557,8 @@ static bool dispc6_lcd_timings_ok(int hsw, int hfp, int hbp,
557557
bool dispc6_mgr_timings_ok(enum omap_channel channel,
558558
const struct omap_video_timings *timings)
559559
{
560-
if (timings->pixelclock < dispc.feat->min_pclk)
560+
if (timings->pixelclock < dispc.feat->min_pclk &&
561+
timings->pixelclock != 9000000)
561562
return false;
562563

563564
if (timings->pixelclock > dispc.feat->max_pclk)
@@ -1005,7 +1006,7 @@ static s32 pixinc(int pixels, u8 ps)
10051006
}
10061007

10071008
static int dispc6_ovl_setup(enum omap_plane plane, const struct omap_overlay_info *oi,
1008-
bool replication, const struct omap_video_timings *mgr_timings,
1009+
const struct omap_video_timings *mgr_timings,
10091010
bool mem_to_mem)
10101011
{
10111012
u32 fourcc = dispc6_dss_colormode_to_fourcc(oi->color_mode);

drivers/gpu/drm/omapdrm/dss/dpi.c

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -197,14 +197,6 @@ static bool dpi_calc_hsdiv_cb(int m_dispc, unsigned long dispc,
197197
{
198198
struct dpi_clk_calc_ctx *ctx = data;
199199

200-
/*
201-
* Odd dividers give us uneven duty cycle, causing problem when level
202-
* shifted. So skip all odd dividers when the pixel clock is on the
203-
* higher side.
204-
*/
205-
if (m_dispc > 1 && m_dispc % 2 != 0 && ctx->pck_min >= 100000000)
206-
return false;
207-
208200
ctx->pll_cinfo.mX[ctx->clkout_idx] = m_dispc;
209201
ctx->pll_cinfo.clkout[ctx->clkout_idx] = dispc;
210202

drivers/gpu/drm/omapdrm/dss/omapdss.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -996,7 +996,7 @@ struct dispc_ops {
996996
void (*ovl_set_channel_out)(enum omap_plane plane,
997997
enum omap_channel channel);
998998
int (*ovl_setup)(enum omap_plane plane, const struct omap_overlay_info *oi,
999-
bool replication, const struct omap_video_timings *mgr_timings,
999+
const struct omap_video_timings *mgr_timings,
10001000
bool mem_to_mem);
10011001

10021002
enum omap_color_mode (*ovl_get_color_modes)(enum omap_plane plane);

drivers/gpu/drm/omapdrm/omap_drv.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -527,8 +527,8 @@ static int omap_modeset_init(struct drm_device *dev)
527527
priv->num_planes, priv->num_crtcs, priv->num_encoders,
528528
priv->num_connectors);
529529

530-
dev->mode_config.min_width = 32;
531-
dev->mode_config.min_height = 32;
530+
dev->mode_config.min_width = 8;
531+
dev->mode_config.min_height = 2;
532532

533533
/* note: eventually will need some cpu_is_omapXYZ() type stuff here
534534
* to fill in these limits properly on different OMAP generations..

drivers/gpu/drm/omapdrm/omap_plane.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ static void omap_plane_atomic_update(struct drm_plane *plane,
144144
omap_crtc_channel(state->crtc));
145145

146146
/* and finally, update omapdss: */
147-
ret = priv->dispc_ops->ovl_setup(omap_plane->id, &info, false,
147+
ret = priv->dispc_ops->ovl_setup(omap_plane->id, &info,
148148
omap_crtc_timings(state->crtc), false);
149149
if (ret) {
150150
priv->dispc_ops->ovl_enable(omap_plane->id, false);

drivers/gpu/drm/omapdrm/omap_wb_m2m.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ static bool wbm2m_convert(struct wbm2m_dev *dev, enum omap_plane src_plane,
5656

5757
/* configure input */
5858

59-
r = priv->dispc_ops->ovl_setup(src_plane, src_info, 0, &t, 1);
59+
r = priv->dispc_ops->ovl_setup(src_plane, src_info, &t, 1);
6060
if (r)
6161
return false;
6262

0 commit comments

Comments
 (0)