/* * drivers/video/tegra/dc/rgb.c * * Copyright (C) 2010 Google, Inc. * Author: Erik Gilling * * This software is licensed under the terms of the GNU General Public * License version 2, as published by the Free Software Foundation, and * may be copied, distributed, and modified under those terms. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * */ #include #include #include "dc_reg.h" #include "dc_priv.h" static const u32 tegra_dc_rgb_enable_pintable[] = { DC_COM_PIN_OUTPUT_ENABLE0, 0x00000000, DC_COM_PIN_OUTPUT_ENABLE1, 0x00000000, DC_COM_PIN_OUTPUT_ENABLE2, 0x00000000, DC_COM_PIN_OUTPUT_ENABLE3, 0x00000000, DC_COM_PIN_OUTPUT_POLARITY0, 0x00000000, DC_COM_PIN_OUTPUT_POLARITY1, 0x01000000, DC_COM_PIN_OUTPUT_POLARITY2, 0x00000000, DC_COM_PIN_OUTPUT_POLARITY3, 0x00000000, DC_COM_PIN_OUTPUT_DATA0, 0x00000000, DC_COM_PIN_OUTPUT_DATA1, 0x00000000, DC_COM_PIN_OUTPUT_DATA2, 0x00000000, DC_COM_PIN_OUTPUT_DATA3, 0x00000000, DC_COM_PIN_OUTPUT_SELECT0, 0x00000000, DC_COM_PIN_OUTPUT_SELECT1, 0x00000000, DC_COM_PIN_OUTPUT_SELECT2, 0x00000000, DC_COM_PIN_OUTPUT_SELECT3, 0x00000000, DC_COM_PIN_OUTPUT_SELECT4, 0x00210222, DC_COM_PIN_OUTPUT_SELECT5, 0x00002200, DC_COM_PIN_OUTPUT_SELECT6, 0x00020000, }; static const u32 tegra_dc_rgb_disable_pintable[] = { DC_COM_PIN_OUTPUT_ENABLE0, 0x55555555, DC_COM_PIN_OUTPUT_ENABLE1, 0x55150005, DC_COM_PIN_OUTPUT_ENABLE2, 0x55555555, DC_COM_PIN_OUTPUT_ENABLE3, 0x55555555, DC_COM_PIN_OUTPUT_POLARITY0, 0x00000000, DC_COM_PIN_OUTPUT_POLARITY1, 0x00000000, DC_COM_PIN_OUTPUT_POLARITY2, 0x00000000, DC_COM_PIN_OUTPUT_POLARITY3, 0x00000000, DC_COM_PIN_OUTPUT_DATA0, 0xaaaaaaaa, DC_COM_PIN_OUTPUT_DATA1, 0xaaaaaaaa, DC_COM_PIN_OUTPUT_DATA2, 0xaaaaaaaa, DC_COM_PIN_OUTPUT_DATA3, 0xaaaaaaaa, DC_COM_PIN_OUTPUT_SELECT0, 0x00000000, DC_COM_PIN_OUTPUT_SELECT1, 0x00000000, DC_COM_PIN_OUTPUT_SELECT2, 0x00000000, DC_COM_PIN_OUTPUT_SELECT3, 0x00000000, DC_COM_PIN_OUTPUT_SELECT4, 0x00000000, DC_COM_PIN_OUTPUT_SELECT5, 0x00000000, DC_COM_PIN_OUTPUT_SELECT6, 0x00000000, }; void tegra_dc_rgb_enable(struct tegra_dc *dc) { tegra_dc_writel(dc, PW0_ENABLE | PW1_ENABLE | PW2_ENABLE | PW3_ENABLE | PW4_ENABLE | PM0_ENABLE | PM1_ENABLE, DC_CMD_DISPLAY_POWER_CONTROL); tegra_dc_writel(dc, DISP_CTRL_MODE_C_DISPLAY, DC_CMD_DISPLAY_COMMAND); tegra_dc_write_table(dc, tegra_dc_rgb_enable_pintable); } void tegra_dc_rgb_disable(struct tegra_dc *dc) { tegra_dc_writel(dc, 0x00000000, DC_CMD_DISPLAY_POWER_CONTROL); tegra_dc_write_table(dc, tegra_dc_rgb_disable_pintable); } struct tegra_dc_out_ops tegra_dc_rgb_ops = { .enable = tegra_dc_rgb_enable, .disable = tegra_dc_rgb_disable, };