1/* SPDX-License-Identifier: GPL-2.0+ */ 2/* 3 * Copyright (c) 2020 Loongson Technology Co., Ltd. 4 * Authors: 5 * sunhao <sunhao@loongson.cn> 6 * This program is free software; you can redistribute it and/or modify it 7 * under the terms of the GNU General Public License as published by the 8 * Free Software Foundation; either version 2 of the License, or (at your 9 * option) any later version. 10 */ 11 12#ifndef __LOONGSON_I2C_H__ 13#define __LOONGSON_I2C_H__ 14 15#include <linux/i2c.h> 16#include <linux/i2c-algo-bit.h> 17#include <drm/drm_edid.h> 18 19/* Modify this marco to config i2c bus speed, bus_freq = 500 / T */ 20/* Eg: i2c_bus_freq=100k when T=5 */ 21#define DC_I2C_TON 5 22#define DC_I2C_NAME "ls7a_dc_i2c" 23#define DC_I2C_BUS_MAX 2 24 25/* Loongson 7A display controller proprietary GPIOs */ 26#define LS7A_DC_GPIO_CFG_OFFSET (0x1660) 27#define LS7A_DC_GPIO_IN_OFFSET (0x1650) 28#define LS7A_DC_GPIO_OUT_OFFSET (0x1650) 29 30struct loongson_drm_device; 31 32struct loongson_i2c { 33 struct loongson_drm_device *ldev; 34 struct i2c_client *ddc_client; 35 struct i2c_adapter *adapter; 36 u32 data, clock; 37 bool use, init; 38 u32 i2c_id; 39}; 40 41int loongson_i2c_init(struct loongson_drm_device *ldev); 42 43#endif 44