Ejemplo n.º 1
0
void s5p_cec_reset(void)
{
	writeb(CEC_RX_CTRL_RESET, g_cec_base + CEC_RX_CTRL);
	writeb(CEC_TX_CTRL_RESET, g_cec_base + CEC_TX_CTRL);

	CECPRINTK("CEC_RX_CTRL = 0x%08x\n", readb(g_cec_base + CEC_RX_CTRL));
	CECPRINTK("CEC_TX_CTRL = 0x%08x\n", readb(g_cec_base + CEC_TX_CTRL));
}
Ejemplo n.º 2
0
void s5p_cec_threshold(void)
{
	writeb(CEC_FILTER_THRESHOLD, g_cec_base + CEC_RX_FILTER_TH);
	writeb(0, g_cec_base + CEC_RX_FILTER_CTRL);
	CECPRINTK("CEC_RX_FILTER_TH = 0x%08x\n",
		readb(g_cec_base + CEC_RX_FILTER_TH));
}
Ejemplo n.º 3
0
void s5p_cec_enable_rx(void)
{
	u8 reg;
	reg = readb(g_cec_base + CEC_RX_CTRL);
	reg |= CEC_RX_CTRL_ENABLE;
	writeb(reg, g_cec_base + CEC_RX_CTRL);

	CECPRINTK("CEC_RX_CTRL = 0x%08x\n", readb(g_cec_base + CEC_RX_CTRL));
}
Ejemplo n.º 4
0
void s5p_cec_unmask_rx_interrupts(void)
{
	u8 reg;
	reg = readb(g_cec_base + CEC_IRQ_MASK);
	reg &= ~CEC_IRQ_RX_DONE;
	reg &= ~CEC_IRQ_RX_ERROR;
	writeb(reg, g_cec_base + CEC_IRQ_MASK);

	CECPRINTK("CEC_IRQ_MASK = 0x%08x\n", readb(g_cec_base + CEC_IRQ_MASK));
}
Ejemplo n.º 5
0
/**
 * Mask CEC Rx interrupts
 */
void __s5p_cec_mask_rx_interrupts(void)
{
	u8 reg;
	reg = readb(cec_base + CEC_IRQ_MASK);
	reg |= CEC_IRQ_RX_DONE;
	reg |= CEC_IRQ_RX_ERROR;
	writeb(reg, cec_base + CEC_IRQ_MASK);

	CECPRINTK("CEC_IRQ_MASK = 0x%08x \n", readb(cec_base + CEC_IRQ_MASK));
}
Ejemplo n.º 6
0
u32 s5p_cec_get_status(void)
{
	u32 status = 0;

	status = readb(g_cec_base + CEC_STATUS_0);
	status |= readb(g_cec_base + CEC_STATUS_1) << 8;
	status |= readb(g_cec_base + CEC_STATUS_2) << 16;
	status |= readb(g_cec_base + CEC_STATUS_3) << 24;

	CECPRINTK("status = 0x%x!\n", status);

	return status;
}
Ejemplo n.º 7
0
void s5p_cec_set_divider(void)
{
	u32 div_ratio, reg, div_val;

	div_ratio  = S5P_HDMI_FIN/CEC_DIV_RATIO - 1;

	reg = readl(S5P_HDMI_PHY_CONTROL);
	reg = (reg & ~(0x3FF<<16)) | (div_ratio << 16);

	writel(reg, S5P_HDMI_PHY_CONTROL);

	div_val = CEC_DIV_RATIO * 0.00005 - 1;

	writeb(0x0, g_cec_base + CEC_DIVISOR_3);
	writeb(0x0, g_cec_base + CEC_DIVISOR_2);
	writeb(0x0, g_cec_base + CEC_DIVISOR_1);
	writeb(div_val, g_cec_base + CEC_DIVISOR_0);

	CECPRINTK("CEC_DIVISOR_3 = 0x%08x\n", readb(g_cec_base + CEC_DIVISOR_3));
	CECPRINTK("CEC_DIVISOR_2 = 0x%08x\n", readb(g_cec_base + CEC_DIVISOR_2));
	CECPRINTK("CEC_DIVISOR_1 = 0x%08x\n", readb(g_cec_base + CEC_DIVISOR_1));
	CECPRINTK("CEC_DIVISOR_0 = 0x%08x\n", readb(g_cec_base + CEC_DIVISOR_0));
}
Ejemplo n.º 8
0
void __s5p_cec_rx_reset(void)
{
	writeb(CEC_RX_CTRL_RESET, cec_base + CEC_RX_CTRL);
	CECPRINTK("CEC_RX_CTRL = 0x%08x \n", readb(cec_base + CEC_RX_CTRL));
}