linux/drivers/gpu/drm/i915/display/dvo_ch7017.c

/*
 * Copyright © 2006 Intel Corporation
 *
 * Permission is hereby granted, free of charge, to any person obtaining a
 * copy of this software and associated documentation files (the "Software"),
 * to deal in the Software without restriction, including without limitation
 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
 * and/or sell copies of the Software, and to permit persons to whom the
 * Software is furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice (including the next
 * paragraph) shall be included in all copies or substantial portions of the
 * Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
 * DEALINGS IN THE SOFTWARE.
 *
 * Authors:
 *    Eric Anholt <[email protected]>
 *
 */

#include "intel_display_types.h"
#include "intel_dvo_dev.h"

#define CH7017_TV_DISPLAY_MODE
#define CH7017_FLICKER_FILTER
#define CH7017_VIDEO_BANDWIDTH
#define CH7017_TEXT_ENHANCEMENT
#define CH7017_START_ACTIVE_VIDEO
#define CH7017_HORIZONTAL_POSITION
#define CH7017_VERTICAL_POSITION
#define CH7017_BLACK_LEVEL
#define CH7017_CONTRAST_ENHANCEMENT
#define CH7017_TV_PLL
#define CH7017_TV_PLL_M
#define CH7017_TV_PLL_N
#define CH7017_SUB_CARRIER_0
#define CH7017_CIV_CONTROL
#define CH7017_CIV_0
#define CH7017_CHROMA_BOOST
#define CH7017_CLOCK_MODE
#define CH7017_INPUT_CLOCK
#define CH7017_GPIO_CONTROL
#define CH7017_INPUT_DATA_FORMAT
#define CH7017_CONNECTION_DETECT
#define CH7017_DAC_CONTROL
#define CH7017_BUFFERED_CLOCK_OUTPUT
#define CH7017_DEFEAT_VSYNC
#define CH7017_TEST_PATTERN

#define CH7017_POWER_MANAGEMENT
/** Enables the TV output path. */
#define CH7017_TV_EN
#define CH7017_DAC0_POWER_DOWN
#define CH7017_DAC1_POWER_DOWN
#define CH7017_DAC2_POWER_DOWN
#define CH7017_DAC3_POWER_DOWN
/** Powers down the TV out block, and DAC0-3 */
#define CH7017_TV_POWER_DOWN_EN

#define CH7017_VERSION_ID

#define CH7017_DEVICE_ID
#define CH7017_DEVICE_ID_VALUE
#define CH7018_DEVICE_ID_VALUE
#define CH7019_DEVICE_ID_VALUE

#define CH7017_XCLK_D2_ADJUST
#define CH7017_UP_SCALER_COEFF_0
#define CH7017_UP_SCALER_COEFF_1
#define CH7017_UP_SCALER_COEFF_2
#define CH7017_UP_SCALER_COEFF_3
#define CH7017_UP_SCALER_COEFF_4
#define CH7017_UP_SCALER_VERTICAL_INC_0
#define CH7017_UP_SCALER_VERTICAL_INC_1
#define CH7017_GPIO_INVERT
#define CH7017_UP_SCALER_HORIZONTAL_INC_0
#define CH7017_UP_SCALER_HORIZONTAL_INC_1

#define CH7017_HORIZONTAL_ACTIVE_PIXEL_INPUT
/**< Low bits of horizontal active pixel input */

#define CH7017_ACTIVE_INPUT_LINE_OUTPUT
/** High bits of horizontal active pixel input */
#define CH7017_LVDS_HAP_INPUT_MASK
/** High bits of vertical active line output */
#define CH7017_LVDS_VAL_HIGH_MASK

#define CH7017_VERTICAL_ACTIVE_LINE_OUTPUT
/**< Low bits of vertical active line output */

#define CH7017_HORIZONTAL_ACTIVE_PIXEL_OUTPUT
/**< Low bits of horizontal active pixel output */

#define CH7017_LVDS_POWER_DOWN
/** High bits of horizontal active pixel output */
#define CH7017_LVDS_HAP_HIGH_MASK
/** Enables the LVDS power down state transition */
#define CH7017_LVDS_POWER_DOWN_EN
/** Enables the LVDS upscaler */
#define CH7017_LVDS_UPSCALER_EN
#define CH7017_LVDS_POWER_DOWN_DEFAULT_RESERVED

#define CH7017_LVDS_ENCODING
#define CH7017_LVDS_DITHER_2D
#define CH7017_LVDS_DITHER_DIS
#define CH7017_LVDS_DUAL_CHANNEL_EN
#define CH7017_LVDS_24_BIT

#define CH7017_LVDS_ENCODING_2

#define CH7017_LVDS_PLL_CONTROL
/** Enables the LVDS panel output path */
#define CH7017_LVDS_PANEN
/** Enables the LVDS panel backlight */
#define CH7017_LVDS_BKLEN

#define CH7017_POWER_SEQUENCING_T1
#define CH7017_POWER_SEQUENCING_T2
#define CH7017_POWER_SEQUENCING_T3
#define CH7017_POWER_SEQUENCING_T4
#define CH7017_POWER_SEQUENCING_T5
#define CH7017_GPIO_DRIVER_TYPE
#define CH7017_GPIO_DATA
#define CH7017_GPIO_DIRECTION_CONTROL

#define CH7017_LVDS_PLL_FEEDBACK_DIV
#define CH7017_LVDS_PLL_FEED_BACK_DIVIDER_SHIFT
#define CH7017_LVDS_PLL_FEED_FORWARD_DIVIDER_SHIFT
#define CH7017_LVDS_PLL_FEEDBACK_DEFAULT_RESERVED

#define CH7017_LVDS_PLL_VCO_CONTROL
#define CH7017_LVDS_PLL_VCO_DEFAULT_RESERVED
#define CH7017_LVDS_PLL_VCO_SHIFT
#define CH7017_LVDS_PLL_POST_SCALE_DIV_SHIFT

#define CH7017_OUTPUTS_ENABLE
#define CH7017_CHARGE_PUMP_LOW
#define CH7017_CHARGE_PUMP_HIGH
#define CH7017_LVDS_CHANNEL_A
#define CH7017_LVDS_CHANNEL_B
#define CH7017_TV_DAC_A
#define CH7017_TV_DAC_B
#define CH7017_DDC_SELECT_DC2

#define CH7017_LVDS_OUTPUT_AMPLITUDE
#define CH7017_LVDS_PLL_EMI_REDUCTION
#define CH7017_LVDS_POWER_DOWN_FLICKER

#define CH7017_LVDS_CONTROL_2
#define CH7017_LOOP_FILTER_SHIFT
#define CH7017_PHASE_DETECTOR_SHIFT

#define CH7017_BANG_LIMIT_CONTROL

struct ch7017_priv {};

static void ch7017_dump_regs(struct intel_dvo_device *dvo);
static void ch7017_dpms(struct intel_dvo_device *dvo, bool enable);

static bool ch7017_read(struct intel_dvo_device *dvo, u8 addr, u8 *val)
{}

static bool ch7017_write(struct intel_dvo_device *dvo, u8 addr, u8 val)
{}

/** Probes for a CH7017 on the given bus and target address. */
static bool ch7017_init(struct intel_dvo_device *dvo,
			struct i2c_adapter *adapter)
{}

static enum drm_connector_status ch7017_detect(struct intel_dvo_device *dvo)
{}

static enum drm_mode_status ch7017_mode_valid(struct intel_dvo_device *dvo,
					      struct drm_display_mode *mode)
{}

static void ch7017_mode_set(struct intel_dvo_device *dvo,
			    const struct drm_display_mode *mode,
			    const struct drm_display_mode *adjusted_mode)
{}

/* set the CH7017 power state */
static void ch7017_dpms(struct intel_dvo_device *dvo, bool enable)
{}

static bool ch7017_get_hw_state(struct intel_dvo_device *dvo)
{}

static void ch7017_dump_regs(struct intel_dvo_device *dvo)
{}

static void ch7017_destroy(struct intel_dvo_device *dvo)
{}

const struct intel_dvo_dev_ops ch7017_ops =;