From patchwork Fri Apr 18 15:17:47 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ruben Wauters X-Patchwork-Id: 882423 Received: from sonic304-24.consmr.mail.gq1.yahoo.com (sonic304-24.consmr.mail.gq1.yahoo.com [98.137.68.205]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A487220E706 for ; Fri, 18 Apr 2025 15:18:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=98.137.68.205 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744989497; cv=none; b=OkFF3A7I5GC+18ACo/qnwsqm2U+sWtolRv4tqGyXP8HKZ9Mh+bEf0rZGJk22YNKRgRoDgNQcGhiehGveToLdIpv/FmolVLhIWW4HqqKgoQYk3mkc2KNVuyrQ8lquU6b0JmJ1SGRvtVb42yU1w0IQhM+w2zSXzoleflGfaQD+uc0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744989497; c=relaxed/simple; bh=B7pSRHhh2uDpYku9T3lIiR/W02nfLMtIJ4opF0ZFj24=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=NSDYyofqiysqLLE7oLqSrgOKzC88h1v8NxzMLSvaEFfpi8FfRBajyyNbg3zBheSiqWnU8YXv79IjQ5M38jmgcMk9IThn9qOt2r8jd7OWYU5GpiDYlTEqI3smVXKp2O4SuheB1reXl97Jv4pawC2Ld67SVLWoQv+ArOji7sts14E= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=aol.com; spf=pass smtp.mailfrom=aol.com; dkim=pass (2048-bit key) header.d=aol.com header.i=@aol.com header.b=Wa1+y9mS; arc=none smtp.client-ip=98.137.68.205 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=aol.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=aol.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=aol.com header.i=@aol.com header.b="Wa1+y9mS" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=aol.com; s=a2048; t=1744989495; bh=UfPFOQHwynYkDl1wh5fSDxF5Ho80N8RriaG4lDBUwbI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From:Subject:Reply-To; b=Wa1+y9mSSAR+0kq7zJEWXnCQA5k2yhRJ4tzekc/Fs0RNvSEtQ/kGbajIsBnTkkfNBf9foZPTdSxxMzgtBK7p7jLe7sqLqwZZIpWK67niwBf0KDGAu0Fw0GiwW/tuEUocr0JB33oMD1yK/7K7NEC1pD7ljgOhN2vW6ys43VKdr53xN42LDBe7kviFMZsewIrgaeSbMh6174ApPZjvDHMxMzv34/2+x6mGVLvW9Elhs7ZEYplIE7IoLi2fv0IuSIM1D/a1/nW/TT/BjiN7u3bfrs9qEkJ6JehNPFx6l+0xk3vMQm4FAEvPDnCsmhtB6x/bJcWZMPVFr1yTIaqTLUSUyw== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1744989495; bh=mT3TWVNCW6CNSIfwMVagUVa/Zpp5zfbeL8E4QsYJkLf=; h=X-Sonic-MF:From:To:Subject:Date:From:Subject; b=bbfdLN870MFJ4X/3gJOjQ2rVpGxxESR0eU6XOKbXQUmWuvo6bAAeB/KTLV1GkSSu8S2Clv0UgKQNfQ+Z7ofg6Ny8fH31a+Jb4SU30XPb6gxzpcyIVvzqIrKVFnznKoGFg3uF88IryKNtivXacvV3q/VGHpYdmcyZklcgZc7zOmvneF9KwNKxhPieERkXNWkx7f4k5P9VNRE3qmJEhHiDmONNh45il8p5I6XZ1HIB2v4/6DWdfc93ErMTA+BJxox0XO5oOvYySKxjdTfEGPgsnsPqMOBwuJziC+QHulCmAsj0w2iHMidsYVq3TioKQ3MiHY+Ui6ANqfDlKyBMQ2A8Gw== X-YMail-OSG: hbC1nuAVM1mChj985z17uOCWr_ZTiB_Ih60R5UVN227yLC72dJT0v7giJSxt307 xzNHKSEFx_XA1shO8gVnwn1nkSBEJIrHFWYL_PNcfrkcUO7frbz6w6laNfrVvAHHGqYznKoLXkFZ asvBFbU.EVLU4ZKsf9LiDYKmt1gTzM1ry1kMQdFBSebIZoPAz.psabldxHov9w4yZaerlWO7i71n n..ABYOdQTyXM7rKl06Xrqd7gbygUzmFc7K6krWHqtxtQ_gA3E.LskNVrRTUTZVrWfp6ul0d5o4u L7KxnsLXxYzwctLC95Pjw2cnMPWwq2xuYhp6940JpEv_hXFaOoPQbFlHOA049zDS9B2My4s61TmJ hWxhH5G1IhQihjm4zF5OnyDlqQoXoU51cNEhGx7qHfQRgGHAh_mCmuYpIMYlQU4_9uAljw9p6lS_ AbQqYr1nCx_2iicm4b3sQk16UZYgkl_88SEaCO9hHRbfSF63CREpfARJBItKJZ67bhWH0N5zEqen g6AXqM2wPD6ykC5nF_0B_dBovFbWjxJryVqnmFLswc6.HgEM6RanLvYh1SYFhD73kUHRoD2IS25p qL.SA5urdCTr.r_d2jEdnkUeWF5CWwzyzvJ8LYfL4ctNe7pIIPFHb.8cZR3bq5s_4hd7DvnR8X_M DKYZ0vYgXZatg9JTmclLRQQtw2fmEulNMk3jIIehXpeawJNEbZfxrLxdXIz9__x74Ms1LpdHd.dO 8WPVU6wLBqJLIHvO2DtzUiy0.lxx.DDvFBZ2eYTae5VBhOA5rBZl80QcQwbF_.i31HZrA_Jd848D 3BiVXJ04GUwjRfO09K1OmL1IAVDpZiz7lSmsIEcivfwBk30qngtLrUAPJw6e_nj04laYtKUdMGur gx_3gdL1n1nDChLfOHsW33JlyOokrYRI7POxIRN.qGIqahtvSslO74QzVgCC5Z9p7.DDY6sjtH6G g3UUsuday696Hh8VEzY0u3gifu3cZ3SHax4rEpZ_mPsEnlqASkcYdW_DoLMC7lx3.99L_85QFl2H 1Jvn7aK7WqjEO6DBOoR3uQx9ONr7YuMu_E1XkGUX1S56TvpTdFxJz9FRPRHe_UAXGv5dBjVo8E7C PGxu2_QYvr0aG9eIXkt7br2XBbaS_UEV9RiYPcMNzARPK.moVlF53S0pkt95KlpbumwuSFYdcO6N hunQuWOmKMRr.RQ0xGsqab8rgwSw4TMh5NHC9od4DyV1Qxe2Kyorv4r7fvUr7PSObuM_yuIAeMR9 n4UVdchdNs98bW7bCKfdtCsH4TDItcPZmc9lZ1LS8AnDTbmT63aBG0ZCp8.sj4vSksL9uGZw2Xo4 QUCUjYQNo83XOb1T.KhB6_OUYEWFLrZJcs90A7AT0b6pxLIi3xe9gfpUSP7crggh7unMvMcW84vh MXJeGAkYIlW19R77MMeO.N4yt6Zvx3mkv5JjDX_.VqW9i_wq6kDjIRyTme_3K45v2pQX3HPEhWSL 5Z.U7TpMgHoosMI1GlPdIlXgslh8yS2qOmTxvPWREVlWYPQ8ln70y807EexPpr9lEarDsEOGvlgI f0UJc.PzjVm1TW_HaY2lf_NNlh_E8SKxaulwttHjTU51Gbrxe3IrXIaDJU7HzJHRw1UgL6GuSVrE VQ2_fs_4.iiCexV3Fm7eMUByJgjLne8JrjmR3.WuxJP.yAstnAeDiJ179CFElMBTbwWeLUkx2Uuq mjQvpNRBLeJpXICHfM2nvWpWTm2Uq1o9PNyXVLsr0oev0xh3xXeZ.idyGBkp14mEo5CDEGVRtWFQ ToTIDiCq5TzZFaY9H8RRP1r7gvax8P3xf4J5Eg3xPmFeJFqjLZLQALbEJQ2Sri8TXQ3H1xvF5Am3 NDusq0obb.RVXmXoIcCX6zAREi2ZXjLaF_WhoBxaQc.2irM.F32phqc5D3I3ZW8MHWseHDYiSvk8 ty0v828fT22lVlRVtLCaRGKptRJmKif7duuIokhFUlG2T0pa43Wr7570UsOxzkbFQr2jTyWWd2O6 VOCR2tm4gi0aTlF9J28n9056IRSy6e9FSSbTjYziX2lKidiKHtBOf4EOcNKqkc_OU.ACR.JecB7E 9K3xps4jY53TFnR0KCWYRR3QhECvY4KTmM6e1ZOl.RvG9HBZZwp2lp1HF.nbkfKF0g1QF2LAaEGL KJ2O6bOIPRSClEq5NZq11maPHVfdkTvSZC7BfK0QdH_9mVt8Xx5mGrvCA4MRd8Fw5v.oFftivrzu OT6Jov8LVGko2eZBjiO_aDhBf262WgDmzec9yZBuFhdmCiDHKvFewKhBtulN7X9B4wkS6tNJgQyG KDBLgFtBmwdhz6alrT821pFE- X-Sonic-MF: X-Sonic-ID: 7d64a124-60f9-45e9-bf64-04a9b25bc496 Received: from sonic.gate.mail.ne1.yahoo.com by sonic304.consmr.mail.gq1.yahoo.com with HTTP; Fri, 18 Apr 2025 15:18:15 +0000 Received: by hermes--production-ir2-858bd4ff7b-rjtcv (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID 8d9c4354726140fe64c22851ae4eda49; Fri, 18 Apr 2025 15:18:12 +0000 (UTC) From: Ruben Wauters To: Greg Kroah-Hartman , Sudip Mukherjee , Teddy Wang , Sudip Mukherjee Cc: Ruben Wauters , linux-fbdev@vger.kernel.org, linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org Subject: [PATCH 1/4] staging: sm750fb: Remove ddk750_sii164 Date: Fri, 18 Apr 2025 16:17:47 +0100 Message-ID: <20250418151755.42624-2-rubenru09@aol.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250418151755.42624-1-rubenru09@aol.com> References: <20250418151755.42624-1-rubenru09@aol.com> Precedence: bulk X-Mailing-List: linux-fbdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Removes unused functions and files ddk750_sii164. Functions were used in ddk750_dvi.c, which is itself unused. Removal will be in the second patch in the series. Signed-off-by: Ruben Wauters --- I have checked the entire driver, and found that the code present within these files is used nowhere (except for in ddk750_dvi.c, which is also used nowhere). As such I have decided to remove the code in this file, as it is essentially deadcode. --- drivers/staging/sm750fb/Makefile | 4 +- drivers/staging/sm750fb/ddk750_dvi.c | 21 +- drivers/staging/sm750fb/ddk750_sii164.c | 408 ------------------------ drivers/staging/sm750fb/ddk750_sii164.h | 174 ---------- 4 files changed, 4 insertions(+), 603 deletions(-) delete mode 100644 drivers/staging/sm750fb/ddk750_sii164.c delete mode 100644 drivers/staging/sm750fb/ddk750_sii164.h diff --git a/drivers/staging/sm750fb/Makefile b/drivers/staging/sm750fb/Makefile index b89aa4c12e9d..1926376664ca 100644 --- a/drivers/staging/sm750fb/Makefile +++ b/drivers/staging/sm750fb/Makefile @@ -3,5 +3,5 @@ obj-$(CONFIG_FB_SM750) += sm750fb.o sm750fb-objs := sm750.o sm750_hw.o sm750_accel.o sm750_cursor.o \ ddk750_chip.o ddk750_power.o ddk750_mode.o \ - ddk750_display.o ddk750_swi2c.o ddk750_sii164.o \ - ddk750_dvi.o ddk750_hwi2c.o + ddk750_display.o ddk750_swi2c.o ddk750_dvi.o \ + ddk750_hwi2c.o diff --git a/drivers/staging/sm750fb/ddk750_dvi.c b/drivers/staging/sm750fb/ddk750_dvi.c index 6fef1ab484c1..9842c4e4cdf8 100644 --- a/drivers/staging/sm750fb/ddk750_dvi.c +++ b/drivers/staging/sm750fb/ddk750_dvi.c @@ -4,31 +4,14 @@ #include "ddk750_chip.h" #include "ddk750_reg.h" #include "ddk750_dvi.h" -#include "ddk750_sii164.h" /* * This global variable contains all the supported driver and its corresponding * function API. Please set the function pointer to NULL whenever the function * is not supported. */ -static struct dvi_ctrl_device dcft_supported_dvi_controller[] = { -#ifdef DVI_CTRL_SII164 - { - .init = sii164_init_chip, - .get_vendor_id = sii164_get_vendor_id, - .get_device_id = sii164_get_device_id, -#ifdef SII164_FULL_FUNCTIONS - .reset_chip = sii164_reset_chip, - .get_chip_string = sii164_get_chip_string, - .set_power = sii164_set_power, - .enable_hot_plug_detection = sii164_enable_hot_plug_detection, - .is_connected = sii164_is_connected, - .check_interrupt = sii164_check_interrupt, - .clear_interrupt = sii164_clear_interrupt, -#endif - }, -#endif -}; + +static struct dvi_ctrl_device dcft_supported_dvi_controller[] = { }; int dvi_init(unsigned char edge_select, unsigned char bus_select, diff --git a/drivers/staging/sm750fb/ddk750_sii164.c b/drivers/staging/sm750fb/ddk750_sii164.c deleted file mode 100644 index 89700fc5dd2e..000000000000 --- a/drivers/staging/sm750fb/ddk750_sii164.c +++ /dev/null @@ -1,408 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0 -#define USE_DVICHIP -#ifdef USE_DVICHIP - -#include "ddk750_sii164.h" -#include "ddk750_hwi2c.h" - -/* I2C Address of each SII164 chip */ -#define SII164_I2C_ADDRESS 0x70 - -/* Define this definition to use hardware i2c. */ -#define USE_HW_I2C - -#ifdef USE_HW_I2C - #define i2cWriteReg sm750_hw_i2c_write_reg - #define i2cReadReg sm750_hw_i2c_read_reg -#else - #define i2cWriteReg sm750_sw_i2c_write_reg - #define i2cReadReg sm750_sw_i2c_read_reg -#endif - -/* SII164 Vendor and Device ID */ -#define SII164_VENDOR_ID 0x0001 -#define SII164_DEVICE_ID 0x0006 - -#ifdef SII164_FULL_FUNCTIONS -/* Name of the DVI Controller chip */ -static char *gDviCtrlChipName = "Silicon Image SiI 164"; -#endif - -/* - * sii164_get_vendor_id - * This function gets the vendor ID of the DVI controller chip. - * - * Output: - * Vendor ID - */ -unsigned short sii164_get_vendor_id(void) -{ - unsigned short vendorID; - - vendorID = ((unsigned short)i2cReadReg(SII164_I2C_ADDRESS, - SII164_VENDOR_ID_HIGH) << 8) | - (unsigned short)i2cReadReg(SII164_I2C_ADDRESS, - SII164_VENDOR_ID_LOW); - - return vendorID; -} - -/* - * sii164_get_device_id - * This function gets the device ID of the DVI controller chip. - * - * Output: - * Device ID - */ -unsigned short sii164_get_device_id(void) -{ - unsigned short device_id; - - device_id = ((unsigned short)i2cReadReg(SII164_I2C_ADDRESS, - SII164_DEVICE_ID_HIGH) << 8) | - (unsigned short)i2cReadReg(SII164_I2C_ADDRESS, - SII164_DEVICE_ID_LOW); - - return device_id; -} - -/* - * DVI.C will handle all SiI164 chip stuffs and try its best to make code - * minimal and useful - */ - -/* - * sii164_init_chip - * This function initialize and detect the DVI controller chip. - * - * Input: - * edge_select - Edge Select: - * 0 = Input data is falling edge latched (falling - * edge latched first in dual edge mode) - * 1 = Input data is rising edge latched (rising - * edge latched first in dual edge mode) - * bus_select - Input Bus Select: - * 0 = Input data bus is 12-bits wide - * 1 = Input data bus is 24-bits wide - * dual_edge_clk_select - Dual Edge Clock Select - * 0 = Input data is single edge latched - * 1 = Input data is dual edge latched - * hsync_enable - Horizontal Sync Enable: - * 0 = HSYNC input is transmitted as fixed LOW - * 1 = HSYNC input is transmitted as is - * vsync_enable - Vertical Sync Enable: - * 0 = VSYNC input is transmitted as fixed LOW - * 1 = VSYNC input is transmitted as is - * deskew_enable - De-skewing Enable: - * 0 = De-skew disabled - * 1 = De-skew enabled - * deskew_setting - De-skewing Setting (increment of 260psec) - * 0 = 1 step --> minimum setup / maximum hold - * 1 = 2 step - * 2 = 3 step - * 3 = 4 step - * 4 = 5 step - * 5 = 6 step - * 6 = 7 step - * 7 = 8 step --> maximum setup / minimum hold - * continuous_sync_enable- SYNC Continuous: - * 0 = Disable - * 1 = Enable - * pll_filter_enable - PLL Filter Enable - * 0 = Disable PLL Filter - * 1 = Enable PLL Filter - * pll_filter_value - PLL Filter characteristics: - * 0~7 (recommended value is 4) - * - * Output: - * 0 - Success - * -1 - Fail. - */ -long sii164_init_chip(unsigned char edge_select, - unsigned char bus_select, - unsigned char dual_edge_clk_select, - unsigned char hsync_enable, - unsigned char vsync_enable, - unsigned char deskew_enable, - unsigned char deskew_setting, - unsigned char continuous_sync_enable, - unsigned char pll_filter_enable, - unsigned char pll_filter_value) -{ - unsigned char config; - - /* Initialize the i2c bus */ -#ifdef USE_HW_I2C - /* Use fast mode. */ - sm750_hw_i2c_init(1); -#else - sm750_sw_i2c_init(DEFAULT_I2C_SCL, DEFAULT_I2C_SDA); -#endif - - /* Check if SII164 Chip exists */ - if ((sii164_get_vendor_id() == SII164_VENDOR_ID) && - (sii164_get_device_id() == SII164_DEVICE_ID)) { - /* - * Initialize SII164 controller chip. - */ - - /* Select the edge */ - if (edge_select == 0) - config = SII164_CONFIGURATION_LATCH_FALLING; - else - config = SII164_CONFIGURATION_LATCH_RISING; - - /* Select bus wide */ - if (bus_select == 0) - config |= SII164_CONFIGURATION_BUS_12BITS; - else - config |= SII164_CONFIGURATION_BUS_24BITS; - - /* Select Dual/Single Edge Clock */ - if (dual_edge_clk_select == 0) - config |= SII164_CONFIGURATION_CLOCK_SINGLE; - else - config |= SII164_CONFIGURATION_CLOCK_DUAL; - - /* Select HSync Enable */ - if (hsync_enable == 0) - config |= SII164_CONFIGURATION_HSYNC_FORCE_LOW; - else - config |= SII164_CONFIGURATION_HSYNC_AS_IS; - - /* Select VSync Enable */ - if (vsync_enable == 0) - config |= SII164_CONFIGURATION_VSYNC_FORCE_LOW; - else - config |= SII164_CONFIGURATION_VSYNC_AS_IS; - - i2cWriteReg(SII164_I2C_ADDRESS, SII164_CONFIGURATION, config); - - /* - * De-skew enabled with default 111b value. - * This fixes some artifacts problem in some mode on board 2.2. - * Somehow this fix does not affect board 2.1. - */ - if (deskew_enable == 0) - config = SII164_DESKEW_DISABLE; - else - config = SII164_DESKEW_ENABLE; - - switch (deskew_setting) { - case 0: - config |= SII164_DESKEW_1_STEP; - break; - case 1: - config |= SII164_DESKEW_2_STEP; - break; - case 2: - config |= SII164_DESKEW_3_STEP; - break; - case 3: - config |= SII164_DESKEW_4_STEP; - break; - case 4: - config |= SII164_DESKEW_5_STEP; - break; - case 5: - config |= SII164_DESKEW_6_STEP; - break; - case 6: - config |= SII164_DESKEW_7_STEP; - break; - case 7: - config |= SII164_DESKEW_8_STEP; - break; - } - i2cWriteReg(SII164_I2C_ADDRESS, SII164_DESKEW, config); - - /* Enable/Disable Continuous Sync. */ - if (continuous_sync_enable == 0) - config = SII164_PLL_FILTER_SYNC_CONTINUOUS_DISABLE; - else - config = SII164_PLL_FILTER_SYNC_CONTINUOUS_ENABLE; - - /* Enable/Disable PLL Filter */ - if (pll_filter_enable == 0) - config |= SII164_PLL_FILTER_DISABLE; - else - config |= SII164_PLL_FILTER_ENABLE; - - /* Set the PLL Filter value */ - config |= ((pll_filter_value & 0x07) << 1); - - i2cWriteReg(SII164_I2C_ADDRESS, SII164_PLL, config); - - /* Recover from Power Down and enable output. */ - config = i2cReadReg(SII164_I2C_ADDRESS, SII164_CONFIGURATION); - config |= SII164_CONFIGURATION_POWER_NORMAL; - i2cWriteReg(SII164_I2C_ADDRESS, SII164_CONFIGURATION, config); - - return 0; - } - - /* Return -1 if initialization fails. */ - return -1; -} - -/* below sii164 function is not necessary */ - -#ifdef SII164_FULL_FUNCTIONS - -/* - * sii164_reset_chip - * This function resets the DVI Controller Chip. - */ -void sii164_reset_chip(void) -{ - /* Power down */ - sii164_set_power(0); - sii164_set_power(1); -} - -/* - * sii164_get_chip_string - * This function returns a char string name of the current DVI Controller - * chip. - * - * It's convenient for application need to display the chip name. - */ -char *sii164_get_chip_string(void) -{ - return gDviCtrlChipName; -} - -/* - * sii164_set_power - * This function sets the power configuration of the DVI Controller Chip. - * - * Input: - * powerUp - Flag to set the power down or up - */ -void sii164_set_power(unsigned char powerUp) -{ - unsigned char config; - - config = i2cReadReg(SII164_I2C_ADDRESS, SII164_CONFIGURATION); - if (powerUp == 1) { - /* Power up the chip */ - config &= ~SII164_CONFIGURATION_POWER_MASK; - config |= SII164_CONFIGURATION_POWER_NORMAL; - i2cWriteReg(SII164_I2C_ADDRESS, SII164_CONFIGURATION, config); - } else { - /* Power down the chip */ - config &= ~SII164_CONFIGURATION_POWER_MASK; - config |= SII164_CONFIGURATION_POWER_DOWN; - i2cWriteReg(SII164_I2C_ADDRESS, SII164_CONFIGURATION, config); - } -} - -/* - * sii164SelectHotPlugDetectionMode - * This function selects the mode of the hot plug detection. - */ -static -void sii164SelectHotPlugDetectionMode(enum sii164_hot_plug_mode hotPlugMode) -{ - unsigned char detectReg; - - detectReg = i2cReadReg(SII164_I2C_ADDRESS, SII164_DETECT) & - ~SII164_DETECT_MONITOR_SENSE_OUTPUT_FLAG; - switch (hotPlugMode) { - case SII164_HOTPLUG_DISABLE: - detectReg |= SII164_DETECT_MONITOR_SENSE_OUTPUT_HIGH; - break; - case SII164_HOTPLUG_USE_MDI: - detectReg &= ~SII164_DETECT_INTERRUPT_MASK; - detectReg |= SII164_DETECT_INTERRUPT_BY_HTPLG_PIN; - detectReg |= SII164_DETECT_MONITOR_SENSE_OUTPUT_MDI; - break; - case SII164_HOTPLUG_USE_RSEN: - detectReg |= SII164_DETECT_MONITOR_SENSE_OUTPUT_RSEN; - break; - case SII164_HOTPLUG_USE_HTPLG: - detectReg |= SII164_DETECT_MONITOR_SENSE_OUTPUT_HTPLG; - break; - } - - i2cWriteReg(SII164_I2C_ADDRESS, SII164_DETECT, detectReg); -} - -/* - * sii164_enable_hot_plug_detection - * This function enables the Hot Plug detection. - * - * enable_hot_plug - Enable (=1) / disable (=0) Hot Plug detection - */ -void sii164_enable_hot_plug_detection(unsigned char enable_hot_plug) -{ - unsigned char detectReg; - - detectReg = i2cReadReg(SII164_I2C_ADDRESS, SII164_DETECT); - - /* Depending on each DVI controller, need to enable the hot plug based - * on each individual chip design. - */ - if (enable_hot_plug != 0) - sii164SelectHotPlugDetectionMode(SII164_HOTPLUG_USE_MDI); - else - sii164SelectHotPlugDetectionMode(SII164_HOTPLUG_DISABLE); -} - -/* - * sii164_is_connected - * Check if the DVI Monitor is connected. - * - * Output: - * 0 - Not Connected - * 1 - Connected - */ -unsigned char sii164_is_connected(void) -{ - unsigned char hotPlugValue; - - hotPlugValue = i2cReadReg(SII164_I2C_ADDRESS, SII164_DETECT) & - SII164_DETECT_HOT_PLUG_STATUS_MASK; - if (hotPlugValue == SII164_DETECT_HOT_PLUG_STATUS_ON) - return 1; - else - return 0; -} - -/* - * sii164_check_interrupt - * Checks if interrupt has occurred. - * - * Output: - * 0 - No interrupt - * 1 - Interrupt occurs - */ -unsigned char sii164_check_interrupt(void) -{ - unsigned char detectReg; - - detectReg = i2cReadReg(SII164_I2C_ADDRESS, SII164_DETECT) & - SII164_DETECT_MONITOR_STATE_MASK; - if (detectReg == SII164_DETECT_MONITOR_STATE_CHANGE) - return 1; - else - return 0; -} - -/* - * sii164_clear_interrupt - * Clear the hot plug interrupt. - */ -void sii164_clear_interrupt(void) -{ - unsigned char detectReg; - - /* Clear the MDI interrupt */ - detectReg = i2cReadReg(SII164_I2C_ADDRESS, SII164_DETECT); - i2cWriteReg(SII164_I2C_ADDRESS, SII164_DETECT, - detectReg | SII164_DETECT_MONITOR_STATE_CLEAR); -} - -#endif - -#endif diff --git a/drivers/staging/sm750fb/ddk750_sii164.h b/drivers/staging/sm750fb/ddk750_sii164.h deleted file mode 100644 index ebc173658f0e..000000000000 --- a/drivers/staging/sm750fb/ddk750_sii164.h +++ /dev/null @@ -1,174 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0 */ -#ifndef DDK750_SII164_H__ -#define DDK750_SII164_H__ - -#define USE_DVICHIP - -/* Hot Plug detection mode structure */ -enum sii164_hot_plug_mode { - SII164_HOTPLUG_DISABLE = 0, /* Disable Hot Plug output bit - * (always high). - */ - - SII164_HOTPLUG_USE_MDI, /* Use Monitor Detect Interrupt bit. */ - SII164_HOTPLUG_USE_RSEN, /* Use Receiver Sense detect bit. */ - SII164_HOTPLUG_USE_HTPLG /* Use Hot Plug detect bit. */ -}; - -/* Silicon Image SiI164 chip prototype */ -long sii164_init_chip(unsigned char edgeSelect, - unsigned char busSelect, - unsigned char dualEdgeClkSelect, - unsigned char hsyncEnable, - unsigned char vsyncEnable, - unsigned char deskewEnable, - unsigned char deskewSetting, - unsigned char continuousSyncEnable, - unsigned char pllFilterEnable, - unsigned char pllFilterValue); - -unsigned short sii164_get_vendor_id(void); -unsigned short sii164_get_device_id(void); - -#ifdef SII164_FULL_FUNCTIONS -void sii164_reset_chip(void); -char *sii164_get_chip_string(void); -void sii164_set_power(unsigned char powerUp); -void sii164_enable_hot_plug_detection(unsigned char enable_hot_plug); -unsigned char sii164_is_connected(void); -unsigned char sii164_check_interrupt(void); -void sii164_clear_interrupt(void); -#endif -/* - * below register definition is used for - * Silicon Image SiI164 DVI controller chip - */ -/* - * Vendor ID registers - */ -#define SII164_VENDOR_ID_LOW 0x00 -#define SII164_VENDOR_ID_HIGH 0x01 - -/* - * Device ID registers - */ -#define SII164_DEVICE_ID_LOW 0x02 -#define SII164_DEVICE_ID_HIGH 0x03 - -/* - * Device Revision - */ -#define SII164_DEVICE_REVISION 0x04 - -/* - * Frequency Limitation registers - */ -#define SII164_FREQUENCY_LIMIT_LOW 0x06 -#define SII164_FREQUENCY_LIMIT_HIGH 0x07 - -/* - * Power Down and Input Signal Configuration registers - */ -#define SII164_CONFIGURATION 0x08 - -/* Power down (PD) */ -#define SII164_CONFIGURATION_POWER_DOWN 0x00 -#define SII164_CONFIGURATION_POWER_NORMAL 0x01 -#define SII164_CONFIGURATION_POWER_MASK 0x01 - -/* Input Edge Latch Select (EDGE) */ -#define SII164_CONFIGURATION_LATCH_FALLING 0x00 -#define SII164_CONFIGURATION_LATCH_RISING 0x02 - -/* Bus Select (BSEL) */ -#define SII164_CONFIGURATION_BUS_12BITS 0x00 -#define SII164_CONFIGURATION_BUS_24BITS 0x04 - -/* Dual Edge Clock Select (DSEL) */ -#define SII164_CONFIGURATION_CLOCK_SINGLE 0x00 -#define SII164_CONFIGURATION_CLOCK_DUAL 0x08 - -/* Horizontal Sync Enable (HEN) */ -#define SII164_CONFIGURATION_HSYNC_FORCE_LOW 0x00 -#define SII164_CONFIGURATION_HSYNC_AS_IS 0x10 - -/* Vertical Sync Enable (VEN) */ -#define SII164_CONFIGURATION_VSYNC_FORCE_LOW 0x00 -#define SII164_CONFIGURATION_VSYNC_AS_IS 0x20 - -/* - * Detection registers - */ -#define SII164_DETECT 0x09 - -/* Monitor Detect Interrupt (MDI) */ -#define SII164_DETECT_MONITOR_STATE_CHANGE 0x00 -#define SII164_DETECT_MONITOR_STATE_NO_CHANGE 0x01 -#define SII164_DETECT_MONITOR_STATE_CLEAR 0x01 -#define SII164_DETECT_MONITOR_STATE_MASK 0x01 - -/* Hot Plug detect Input (HTPLG) */ -#define SII164_DETECT_HOT_PLUG_STATUS_OFF 0x00 -#define SII164_DETECT_HOT_PLUG_STATUS_ON 0x02 -#define SII164_DETECT_HOT_PLUG_STATUS_MASK 0x02 - -/* Receiver Sense (RSEN) */ -#define SII164_DETECT_RECEIVER_SENSE_NOT_DETECTED 0x00 -#define SII164_DETECT_RECEIVER_SENSE_DETECTED 0x04 - -/* Interrupt Generation Method (TSEL) */ -#define SII164_DETECT_INTERRUPT_BY_RSEN_PIN 0x00 -#define SII164_DETECT_INTERRUPT_BY_HTPLG_PIN 0x08 -#define SII164_DETECT_INTERRUPT_MASK 0x08 - -/* Monitor Sense Output (MSEN) */ -#define SII164_DETECT_MONITOR_SENSE_OUTPUT_HIGH 0x00 -#define SII164_DETECT_MONITOR_SENSE_OUTPUT_MDI 0x10 -#define SII164_DETECT_MONITOR_SENSE_OUTPUT_RSEN 0x20 -#define SII164_DETECT_MONITOR_SENSE_OUTPUT_HTPLG 0x30 -#define SII164_DETECT_MONITOR_SENSE_OUTPUT_FLAG 0x30 - -/* - * Skewing registers - */ -#define SII164_DESKEW 0x0A - -/* General Purpose Input (CTL[3:1]) */ -#define SII164_DESKEW_GENERAL_PURPOSE_INPUT_MASK 0x0E - -/* De-skewing Enable bit (DKEN) */ -#define SII164_DESKEW_DISABLE 0x00 -#define SII164_DESKEW_ENABLE 0x10 - -/* De-skewing Setting (DK[3:1])*/ -#define SII164_DESKEW_1_STEP 0x00 -#define SII164_DESKEW_2_STEP 0x20 -#define SII164_DESKEW_3_STEP 0x40 -#define SII164_DESKEW_4_STEP 0x60 -#define SII164_DESKEW_5_STEP 0x80 -#define SII164_DESKEW_6_STEP 0xA0 -#define SII164_DESKEW_7_STEP 0xC0 -#define SII164_DESKEW_8_STEP 0xE0 - -/* - * User Configuration Data registers (CFG 7:0) - */ -#define SII164_USER_CONFIGURATION 0x0B - -/* - * PLL registers - */ -#define SII164_PLL 0x0C - -/* PLL Filter Value (PLLF) */ -#define SII164_PLL_FILTER_VALUE_MASK 0x0E - -/* PLL Filter Enable (PFEN) */ -#define SII164_PLL_FILTER_DISABLE 0x00 -#define SII164_PLL_FILTER_ENABLE 0x01 - -/* Sync Continuous (SCNT) */ -#define SII164_PLL_FILTER_SYNC_CONTINUOUS_DISABLE 0x00 -#define SII164_PLL_FILTER_SYNC_CONTINUOUS_ENABLE 0x80 - -#endif From patchwork Fri Apr 18 15:17:48 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ruben Wauters X-Patchwork-Id: 882421 Received: from sonic309-20.consmr.mail.gq1.yahoo.com (sonic309-20.consmr.mail.gq1.yahoo.com [98.137.65.146]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9BDFC21127E for ; Fri, 18 Apr 2025 15:28:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=98.137.65.146 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744990111; cv=none; b=sWW/6xyNa8ilSYk0EEL7b/ubgmvIcbJVSGJ9ROtA/mpM9Wvc/vl+KZq7uYZnPsisAkkXdJsutbF1kgurjk/KhRnt3p05EgM7zYc8ZOB6vnMkHoJbMUTKo+k2qU5YUD2Yif9+FDLaBO7zofD6UfwDYcTUeppxKjvDawLuKwETzQs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744990111; c=relaxed/simple; bh=xOdu2gi8L6DYGYuLQPtrq+ir8L1ZoeFhePuMunbTn+o=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=diee3BngXGN0HZaFBjyQDA9GGKFuX9fGGwHQJ1/6DVZ4/IYJONFoDwqa3CUknjgfZcOFXc8rkz32kCPM9T7h/ScF1WCscAKjO0RhYaQv7I5nOgRCZI8ZtDQMkbdX6yXb3ex9L8IILhElTnW8UCqQC740YrAMyXFL2mNoM9bYdSs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=aol.com; spf=pass smtp.mailfrom=aol.com; dkim=pass (2048-bit key) header.d=aol.com header.i=@aol.com header.b=Mn95QbTC; arc=none smtp.client-ip=98.137.65.146 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=aol.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=aol.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=aol.com header.i=@aol.com header.b="Mn95QbTC" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=aol.com; s=a2048; t=1744990108; bh=kB+h5yP3IPBkJvaAFUAFuyiqySzIbHuteHH3qZOlXl8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From:Subject:Reply-To; b=Mn95QbTClCGoR2z/jlR/VEKcoRGJErkXcZoqqEoDxzzkX5pef8iobWysDhza8cZGzM+vlVLF7+4MLumtEdabu+II0cylKPqudq2P8xTsvMm0u8mljHxRJsurAbDbJYQer3ZWnElkpealcBWU63IN/NYOsbIMs14/IkLw5RGvli/RzzObW16glewiykoM8Sy7dnuaGW1N2zTwmVMIDNY1f2+9+ZQO4qa24iXPvHqWnRatEOCJVEw3zlPh721lpR6Nt5259XyMCUhvJ3tX261r2WlXU4/D3CYx5Ui5HKWpWqxD7GbqPFeGC9z/UR1FS26RNHkAH9RsHLEnES8W/VDwkQ== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1744990108; bh=k9vOYnxrwps45/5Qgwyq9UOLothXvQKah3a+MSsiJDG=; h=X-Sonic-MF:From:To:Subject:Date:From:Subject; b=jmSVl8ALB07GRXklWLthiTd5z6cwDA0kLyiGsQZPxHG2TTM5Ao44eU4Rto1+Lu7gt0ov+6hKFbLg3k4UeE98em2QjLN7IEokYsKeZOAQwH58USvlci/z17p/66KdON1fY9G8xs9WRmzobj9OmJtW6ESZoUaNlnRnLMoXWAFO5z0+ABty7ghZKLm4OUwthLX9em9L9R8+hfb3JlHyFkwYltT5l0cvIb2V12++7Vi93lNH4a9sfFnPuzeMMtFEziLIXH8nIj4RZV/BRjmx4hilXSTUWr0Tiwb5pVh4BtmCGecHEWvobSJBe5kW7VAY76+FRjI6cOG1QnblQVEuVvQkAQ== X-YMail-OSG: iFmeQr8VM1mK_jNd.0.YHVw17zxxRzQSTY7SP1AgC95pD2cm4xCrWmnp5SEeUvU 3cMYSZZ_hz1dUPEiP3o7UifiYq.lVv6rHJsScsTR2ubLm8uT5FKpPDW8tW9PD45APwRRLMOQNFac KsXnGz49X12lwJL4_lGGDQLbCMasL36JcqWo37W9O1UUsRZlN2pcuvMiPiVhJm4p.0a8C0BjezKg wLpGH3zm.ntvSrpFXf5jW0MWQAoZtKcUx2HdoFoxGKzAyJv5NGNCwOlVlx6uVN6x6Z7UTU0AkRwj tbkH0QzPyrGFPO2uCz9OuWTZKoW1Uio6nLU_tISN2ct_p93EYalMt3EztL0jWx3O0YWQ2bUXT7Fg nDiUYJ7HxBI8x3hOX6wDdoIzVQmRizXZh6LcpTORteK9Wxv1aAMfpKhL_uhDLSdPiuDUomv7vIYV 3npGshp_jWNCil_HM1PIdZ2WoLrJ.SkqZ6ufoHPOmiISuLwQbW36Qmo3DkRNJhfosOhNSUUb7KNK tN_wAcM54RRkICYyXjOB2rilJgCBjPCLyRlOltWDBHmdMW7Clm.Z_WbxgwlEWapicLi_NzK7pRos Vijp5ndAhi6XtHCBL7IZPxPsipRv.GHmNUF9emJCaq97E_dJvw_UfaRTyDdP7PmpSzZsHUi_UKt9 dBHfivjz.1nfT3zcDIXnkRsfVNvJRSNiK7c7AEFp536mKAmlcGDAgh_aJwHKrtsejZ0_jfVN4PiN BkZm2brGZ82B6EJf2hlugkBz.ypPSoNpy8baOjL0oNGqJWw9VdbuaGpan_RvVPbsaBnY.mMD8siq YRZIPqxKV2uMmlK1PsWumNUZHakSX48PNKjFs794Qo5196KSep0dWU6dPA5zlxKK3bXHWsysOycT nwvsgQjDwrZkxA3Tc6LQ_mda9P6xsRGFf_tPBZCWXUMEF9gTbFkNhCNnXFHxB8TLR.zMYDg7zo_. k549VfLHGVSR3FXhLnDBfNgHq.hNCzgyzsi6cqjH38a_Lwqf0xd_zpwCplCuM9L.sVUPV811jJNk M5eKwjbseFmnwsQ53TIPBqUUIhj9yCwoZMsbj6wpCmhKJbIZanaDyjHNZNTkBGelVtHN9Qj7rMx_ iV2L2QsThAEupDxhCc5tBV6_ZGThTDFE4PBsHRw.XmgIqvZGnd3XBSVJIgMkjHzNF1sdMftRAkEW jLCtz2phbZTmr2GujdYIDghKFuNFfKrZfZ9btHG.2Nr0kD2ZCjjSIzmDCdaZg6YxyeOv7F3domNF bBOLuUxVehnS67I5uCqnDUzU9K8uxWaqrr5gqH6Ww8BUFmg1BtdIrCJkB3IIRqwYdHkq_7Ks9OEA fMIoTk5GIL7H84bRZJbEaffBHvyoItYnrTaxRxt7o8OWNjKLWWvxZb2kFiR.dpSuQJ6ujpB8ZeU4 QHkO5Lr2UlkyZdbBvaRVA4T.sdtkm3TlbId8VXcJePMXu6zOiovfmrrQqfPdjHE.8wVO3DgxhO.r 6Nyb6LmmzhEO9h7aOvLKV0UMZ_uUutgLjjNFl91H2Sc7X5mVdHPdpYdX2KPScPiwbCSqjwbsNXAd gUWwTrVVHQ0JISWMDu0HzGAj2HAivGfL4VBNIXFj1F_.rj7y86m8BdeeT7lHE5T0O7SbabIZrXWl RuBuBXF01RM92mwlL7XV7iASsb.VN6tJUcErfMc5Tq2YVN8xzQ6eiekthBQHJkV8CKC88IaKKg2c x2mFxgy2EfYIDdKXaaHdY5waRX.Ip_FLU7HhjbJQLUSNeQQktgwjTDFxFoU0VB_4U3IC74UXvsOW H3jfWJjAQrWrIwd2JKmeJDVB7pfEzhkUQT2GnpxSr_1pRtErQRmPzLiAYzIvSKPkqsmHvDXhbsZU dHHlk1H0kcoqolEcj_sp811A8Fb2TPHqMb7YlPM_S3g1OwLzdHkOEA..LIYa4LuZGGsJREC_Qu94 LxkgZRKgtp97XlaiIiXPqMYnddR686q2ZRnTz1GGdKX3vDr7XZ0q9M1fouTJCfN1NXjNuSoB_11A HGkO6zex8A9NQUxazvlL._Eoa2X8V096cJbZfBZeENFQzSWkQ4z_cNp3pRnlKD7mcWPIff1rEhmR kksRD7.gFGIGHdk.M0EGkAQfHhBXPrXvQL3fULmNphnN4hT4pe4BY_.nBaR9jJZLfloq8LvbONCG 8WHUaMCJNEajvirlqN_tXe3o6iyBOTVSDbUnoXuHWyZ1nLbUUF.hNQ4DbgMnfkvS1M3dZ8SaGXmD 8v.xKVoknx5LGB5UOQfzqqD80.7fdlHmpcdRfQg_ML3F4sPT3Jn2LXM.7vWQ4Bxz_Sa41kuT3fto 2g4VxQg-- X-Sonic-MF: X-Sonic-ID: 9b098b5c-327d-4449-9d38-6829aed84013 Received: from sonic.gate.mail.ne1.yahoo.com by sonic309.consmr.mail.gq1.yahoo.com with HTTP; Fri, 18 Apr 2025 15:28:28 +0000 Received: by hermes--production-ir2-858bd4ff7b-rjtcv (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID 8d9c4354726140fe64c22851ae4eda49; Fri, 18 Apr 2025 15:18:15 +0000 (UTC) From: Ruben Wauters To: Greg Kroah-Hartman , Sudip Mukherjee , Teddy Wang , Sudip Mukherjee Cc: Ruben Wauters , linux-fbdev@vger.kernel.org, linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org Subject: [PATCH 2/4] staging: sm750fb: remove ddk750_dvi Date: Fri, 18 Apr 2025 16:17:48 +0100 Message-ID: <20250418151755.42624-3-rubenru09@aol.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250418151755.42624-1-rubenru09@aol.com> References: <20250418151755.42624-1-rubenru09@aol.com> Precedence: bulk X-Mailing-List: linux-fbdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 This file and the code present was unused in the whole driver, therefore this patch removes the file and unused reference to the header. Signed-off-by: Ruben Wauters --- drivers/staging/sm750fb/Makefile | 3 +- drivers/staging/sm750fb/ddk750_display.c | 1 - drivers/staging/sm750fb/ddk750_dvi.c | 45 ------------------- drivers/staging/sm750fb/ddk750_dvi.h | 57 ------------------------ 4 files changed, 1 insertion(+), 105 deletions(-) delete mode 100644 drivers/staging/sm750fb/ddk750_dvi.c delete mode 100644 drivers/staging/sm750fb/ddk750_dvi.h diff --git a/drivers/staging/sm750fb/Makefile b/drivers/staging/sm750fb/Makefile index 1926376664ca..b3cb973e2672 100644 --- a/drivers/staging/sm750fb/Makefile +++ b/drivers/staging/sm750fb/Makefile @@ -3,5 +3,4 @@ obj-$(CONFIG_FB_SM750) += sm750fb.o sm750fb-objs := sm750.o sm750_hw.o sm750_accel.o sm750_cursor.o \ ddk750_chip.o ddk750_power.o ddk750_mode.o \ - ddk750_display.o ddk750_swi2c.o ddk750_dvi.o \ - ddk750_hwi2c.o + ddk750_display.o ddk750_swi2c.o ddk750_hwi2c.o diff --git a/drivers/staging/sm750fb/ddk750_display.c b/drivers/staging/sm750fb/ddk750_display.c index 172624ff98b0..4e390541a507 100644 --- a/drivers/staging/sm750fb/ddk750_display.c +++ b/drivers/staging/sm750fb/ddk750_display.c @@ -3,7 +3,6 @@ #include "ddk750_chip.h" #include "ddk750_display.h" #include "ddk750_power.h" -#include "ddk750_dvi.h" static void set_display_control(int ctrl, int disp_state) { diff --git a/drivers/staging/sm750fb/ddk750_dvi.c b/drivers/staging/sm750fb/ddk750_dvi.c deleted file mode 100644 index 9842c4e4cdf8..000000000000 --- a/drivers/staging/sm750fb/ddk750_dvi.c +++ /dev/null @@ -1,45 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0 -#define USE_DVICHIP -#ifdef USE_DVICHIP -#include "ddk750_chip.h" -#include "ddk750_reg.h" -#include "ddk750_dvi.h" - -/* - * This global variable contains all the supported driver and its corresponding - * function API. Please set the function pointer to NULL whenever the function - * is not supported. - */ - -static struct dvi_ctrl_device dcft_supported_dvi_controller[] = { }; - -int dvi_init(unsigned char edge_select, - unsigned char bus_select, - unsigned char dual_edge_clk_select, - unsigned char hsync_enable, - unsigned char vsync_enable, - unsigned char deskew_enable, - unsigned char deskew_setting, - unsigned char continuous_sync_enable, - unsigned char pll_filter_enable, - unsigned char pll_filter_value) -{ - struct dvi_ctrl_device *current_dvi_ctrl; - - current_dvi_ctrl = dcft_supported_dvi_controller; - if (current_dvi_ctrl->init) { - return current_dvi_ctrl->init(edge_select, - bus_select, - dual_edge_clk_select, - hsync_enable, - vsync_enable, - deskew_enable, - deskew_setting, - continuous_sync_enable, - pll_filter_enable, - pll_filter_value); - } - return -1; /* error */ -} - -#endif diff --git a/drivers/staging/sm750fb/ddk750_dvi.h b/drivers/staging/sm750fb/ddk750_dvi.h deleted file mode 100644 index c2518b73bdbd..000000000000 --- a/drivers/staging/sm750fb/ddk750_dvi.h +++ /dev/null @@ -1,57 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0 */ -#ifndef DDK750_DVI_H__ -#define DDK750_DVI_H__ - -/* dvi chip stuffs structros */ - -typedef long (*PFN_DVICTRL_INIT)(unsigned char edge_select, - unsigned char bus_select, - unsigned char dual_edge_clk_select, - unsigned char hsync_enable, - unsigned char vsync_enable, - unsigned char deskew_enable, - unsigned char deskew_setting, - unsigned char continuous_sync_enable, - unsigned char pll_filter_enable, - unsigned char pll_filter_value); - -typedef void (*PFN_DVICTRL_RESETCHIP)(void); -typedef char* (*PFN_DVICTRL_GETCHIPSTRING)(void); -typedef unsigned short (*PFN_DVICTRL_GETVENDORID)(void); -typedef unsigned short (*PFN_DVICTRL_GETDEVICEID)(void); -typedef void (*PFN_DVICTRL_SETPOWER)(unsigned char power_up); -typedef void (*PFN_DVICTRL_HOTPLUGDETECTION)(unsigned char enable_hot_plug); -typedef unsigned char (*PFN_DVICTRL_ISCONNECTED)(void); -typedef unsigned char (*PFN_DVICTRL_CHECKINTERRUPT)(void); -typedef void (*PFN_DVICTRL_CLEARINTERRUPT)(void); - -/* Structure to hold all the function pointer to the DVI Controller. */ -struct dvi_ctrl_device { - PFN_DVICTRL_INIT init; - PFN_DVICTRL_RESETCHIP reset_chip; - PFN_DVICTRL_GETCHIPSTRING get_chip_string; - PFN_DVICTRL_GETVENDORID get_vendor_id; - PFN_DVICTRL_GETDEVICEID get_device_id; - PFN_DVICTRL_SETPOWER set_power; - PFN_DVICTRL_HOTPLUGDETECTION enable_hot_plug_detection; - PFN_DVICTRL_ISCONNECTED is_connected; - PFN_DVICTRL_CHECKINTERRUPT check_interrupt; - PFN_DVICTRL_CLEARINTERRUPT clear_interrupt; -}; - -#define DVI_CTRL_SII164 - -/* dvi functions prototype */ -int dvi_init(unsigned char edge_select, - unsigned char bus_select, - unsigned char dual_edge_clk_select, - unsigned char hsync_enable, - unsigned char vsync_enable, - unsigned char deskew_enable, - unsigned char deskew_setting, - unsigned char continuous_sync_enable, - unsigned char pll_filter_enable, - unsigned char pll_filter_value); - -#endif - From patchwork Fri Apr 18 15:17:49 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ruben Wauters X-Patchwork-Id: 882422 Received: from sonic303-24.consmr.mail.gq1.yahoo.com (sonic303-24.consmr.mail.gq1.yahoo.com [98.137.64.205]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CABCA21128A for ; Fri, 18 Apr 2025 15:18:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=98.137.64.205 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744989504; cv=none; b=bCwI1YczUmZiM59pCcsQZwwv2OnVrqKENCWqIsiwfdjiWnKBhIDk81BuRk21I5+Pq3SUxNAV70j1+VALhmKZWN+i1JWBheSC8+ZRIpth5A6d2bEiO2xNuVa+N0da/FGGRC9FJE4IEqbarRghA6uqRHIvoUAFxWBtEbnlctgtKRI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744989504; c=relaxed/simple; bh=0egqAhQ+l5rRA7yaNYbjCrgURYXpcpUo1RvqDyp+R6Q=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=sbn6qt+9VIsr7j10Ry3XldkGkvnFHWW93eP4k6KFiEGTeVgI4vksG1AHiRPFxgFiiGuy1ihTM0nR6vr0F3PwiWeOeHGRTM4Tf8Wz6hzAFmcvkIHosMGXmb3K0ykdoTJz5q+xVeM03c7v5n7Y1u26/R5mHZ1kg/F7RJjDc4B0SOU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=aol.com; spf=pass smtp.mailfrom=aol.com; dkim=pass (2048-bit key) header.d=aol.com header.i=@aol.com header.b=RRV/5uU+; arc=none smtp.client-ip=98.137.64.205 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=aol.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=aol.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=aol.com header.i=@aol.com header.b="RRV/5uU+" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=aol.com; s=a2048; t=1744989502; bh=3+QIDz+8a7WhEyG6a1nGl5YyF8rJ364ekdxk7SsUvjg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From:Subject:Reply-To; b=RRV/5uU+qkyg3fr0lX0p9ok+UdJy3DruN7vTOu9HW6nEf//7g3MFv5nf5dcXL5mzOhy9a5PdwvkEkueEG/tZY4wHTERuOiSG0ZU1aVXq5oXqIgqptKtbSB+t0KNxa6nHJcvUxtPW/sc+WheG7kBQDC+zEbcgYSq8UWkKlxLsywsDN/uJMFzDT0qvsnrk06z+MLIBOvmRaCP6mmsqxXDKyELoAjxc8pZo95KgCkinW87D4m7VDxwnP2tRaIVYZm21rkITHIfxadkyz8eY1mnKQFFekzJk3xF5xxGa81YwqfNIUp5wDdXESmCpfwhofiRzcEnW6foimEHuT3kTs7b7fA== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1744989502; bh=PYwPYcuRky0Fcfb87XVACXGqNNtWIgyTXDuHfjjFk8p=; h=X-Sonic-MF:From:To:Subject:Date:From:Subject; b=aRmeFxBV8GN3jEiaMkbOYX0/4HrpdGIvOSBo9KVt4PDnU210vKisueQKV4SPfqELD1mrMoWrgUwMQAOomM68PnxhBmanxHKn5ajeEdG5VneOtH8cixH6sx4KAlJi4WmP0yLFuv8l5I//PPF8vcehsnNM9FCDsU2Y3ls2aOUIfYnYNDdemjbM8RChAU1WtNy90zkcbc8tQxpC2dYa0uGBCdnafeyMygypvghv0VxZrgwCjIgyIXKgpm553lixnA0+fQj5sq/HPyZnen+gmb3yzvMu3EyOg9fNejWK4Vt9efgMgIUZtIst8f7dIFUvSI7gEa+G/fPswe2rhoX7XjLX4A== X-YMail-OSG: z5VYAMMVM1k89tlHf2BhUz_gQAURrg1v1yR_T.Dz.sRWKqW1olZArnKpDCmvIIw GGSlIz9qHIxZSPRS1ZMUT9ajAK8_TkrlzYCdr.MJpIxPt.vnJm4m4MHFEPR6WXR_QXmgdRMea2R6 YIcRpeZUdNVnCUkdx_equXA75yBShFV3MOfiPRSs4sVf6g9.CmMtKkOdOW8BAWa1mBpaW7i.ST8f 0MF.HjQu_LJc1Qn4jMW6iAr1BlUFlfkwsK3P4DiPyRoRCK3bobbwV86qC2ZNMIUpcyK0.apXGzOF weIrIQcPLEVonucSeYVd8jqzLRjpjkZtZa.3UPTr4lseh2t6hTXSZTPfrQ.Txlsgcm9P5fUako4L nz3.3j.p2VLjslLIEcFIkh_yP_CmjXwuTR_6ELQmcejzwFUayNDILfXRll1b2xJ5fa58nLn0XWIw UKSb.aFNXm02Ujr7_lRUsqkgwHibx9XaKJ8_fMkfDrpTtoMTq92iV9OaBZe98qoLILUuwfRgi6zc hFAv0ADoPgnHqjtkS1epCnIF_r03tdITFCMluWtClLkI.BjRDrm4l0VMBA6rWBGxk6efSD445oTf FPfStIZxHEe29wFHTYfB0zeltRgSZyVUlmrnuEsbaRVPAI.uAqitAtYNFEgSFKxfebt10K.vjK0M xVC3IF232PZY0I0jk99Jnk5IvAFHU7dvix3oHLSAVYUWtAaUy3odoXZG4ZUR72IKUoXzigr.jPzI KlVOsyCiVHdCkDjYROYr92liA1AUOKmjTr05sWjQ4lX1Fbrq6GWxZH_lFcLSz7XB7AH5Kwtw7ZHT dzgYo6F.DBhVvsci59_Abx4GLIUGwqcVkeDgK1m.2Gj7njt3maP1SKArHboxadulsqBz7zd43lwC oFft19HhaUNSCSXWQ4_EPPQMvZ1Mur.2xPzC8lYrOfepy4NFbxOLbGSx.UKxGcWssMeRkEHPNkuF MafMAcBvXKKVxv_YzYOmPuLHnhH53MW_Nb4R5ileb6ytBZvn0liaK7yADrt5YkiCv66Dwo7VWj89 0HJZlQJ0O6j8D11jGXfioW7vT8I8AihEZB.6daoq2GMM6BqKM_Cwujf23kfWBxhSkxky4d81x74S ur1IPtynQ9dp4Dr0OYSjKd83zebzAOl9f_JhdE3cA1FsvqDAnma9XEovP5WM1_S_AAh3rpKCRcUX EhQ9n9NRcSa5me.hMMHiPoN1R1PLqtxBrbHd57MPHhhv7NrN90m62swq7mZpBWEuVYU52Axt_fXc zSY4R0YnvLxA4.0z01soOKqoqc4fwF0PzGVFQmcw1n_QHeYpL9EVYz3ajRPbQb2BYLWXqDcGfzjD eBZToUbcdt4HRJ031L.K9K_Xbjk9mLGV1U7Yxc4hv_1ivhUqDtk2l74qgpkUz4_L0ztN_gg5If_l 8kBViatGgB8p_7wLgTRSE8eUCC9Z1_gysqkOGfdQOj4rw65wU1ef00fUWZzOIf6a7XiGwl6IS322 JPYp6VF0Yp.pQvhpCITSXcMJYSIlAnECfG6NdSDivonGMVa.crwjQuENM4htNffGMm2aieGL1ZEf 3_20hrnSu6uiFCgW.rRr5E2UROVHqC9LDDAf7Stsrl2Lh1saPF7.YWbHwc9zxcGA0vBEArmTnYkC plgCILskRmC2dSiBmVa6MdUKOqmIKE6fCQ08Mtgs_sUyO89YyjcKkdaDuIDVHQWYGVGAfsRDHZa1 dAnlWCf9Oyp4JogTzyCwRQSoSdiBAd49Wwi21_6Q2DcKJZvw1gs9NJPdWE8n1cuHcZh7qXlKwdip _3In_wPRhLr6lHmNC.3TxHO7adpDmpZGcvmpZGYjXSV3Rasayr89XxOeknpBkolGjrGZwsI.w1Ql .6BbIThPEId0fH_im0eRyVmpZqKnWpRYiPOOEsbbA5_vKqm3nGslXHmVLW5zGvaeHWwXT5Mv8V0z WhD3GbAAl.98zHkibUF8kMbVxrWosPT8JjHhl0M93fqskOBqP6tU8lpy0ZFLWGaF6ucGbPbxdy7K TEljkt5vKq3xt0lTV4gcDqMDeA6ioy6J5zmsUcu5uyT96nZcPmyq_IKaXo.66XaQbe37D14ImWcX RHKQquugwKTeEcqA3UnvwTUvQu7AJRuB7hSc8dfVnSNj9VGBu4LF1NCfzJxhCbHVfkJBjX2oJeP6 2r4oBAuBnQkxaU4J1qdZwlvbBUOa7qhiDWNvFdtKw5KEWnbF9aqvAYmPvfKx5uFaqb_MCjYeL2PR JbmF2oXKyuEJ9B4ZxeLg2WTt2SUPUZbZN1Y4V2xvjw_A9KASCc2XII7UHvCsR32P78hDqC0GOZbk vJsnw7rY- X-Sonic-MF: X-Sonic-ID: 55914de9-c7f4-4caa-a157-6e1755fef135 Received: from sonic.gate.mail.ne1.yahoo.com by sonic303.consmr.mail.gq1.yahoo.com with HTTP; Fri, 18 Apr 2025 15:18:22 +0000 Received: by hermes--production-ir2-858bd4ff7b-rjtcv (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID 8d9c4354726140fe64c22851ae4eda49; Fri, 18 Apr 2025 15:18:17 +0000 (UTC) From: Ruben Wauters To: Greg Kroah-Hartman , Sudip Mukherjee , Teddy Wang , Sudip Mukherjee Cc: Ruben Wauters , linux-fbdev@vger.kernel.org, linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org Subject: [PATCH 3/4] staging: sm750fb: remove ddk750_hwi2c Date: Fri, 18 Apr 2025 16:17:49 +0100 Message-ID: <20250418151755.42624-4-rubenru09@aol.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250418151755.42624-1-rubenru09@aol.com> References: <20250418151755.42624-1-rubenru09@aol.com> Precedence: bulk X-Mailing-List: linux-fbdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 With the removal of ddk750_sii164.c, the functions in ddk750_hwi2c are now also unused. This patch removes them and the files they are in. Signed-off-by: Ruben Wauters --- drivers/staging/sm750fb/Makefile | 2 +- drivers/staging/sm750fb/ddk750.h | 3 - drivers/staging/sm750fb/ddk750_hwi2c.c | 247 ------------------------- drivers/staging/sm750fb/ddk750_hwi2c.h | 12 -- 4 files changed, 1 insertion(+), 263 deletions(-) delete mode 100644 drivers/staging/sm750fb/ddk750_hwi2c.c delete mode 100644 drivers/staging/sm750fb/ddk750_hwi2c.h diff --git a/drivers/staging/sm750fb/Makefile b/drivers/staging/sm750fb/Makefile index b3cb973e2672..f7e227df0e54 100644 --- a/drivers/staging/sm750fb/Makefile +++ b/drivers/staging/sm750fb/Makefile @@ -3,4 +3,4 @@ obj-$(CONFIG_FB_SM750) += sm750fb.o sm750fb-objs := sm750.o sm750_hw.o sm750_accel.o sm750_cursor.o \ ddk750_chip.o ddk750_power.o ddk750_mode.o \ - ddk750_display.o ddk750_swi2c.o ddk750_hwi2c.o + ddk750_display.o ddk750_swi2c.o diff --git a/drivers/staging/sm750fb/ddk750.h b/drivers/staging/sm750fb/ddk750.h index 64ef4d258a91..8a32f8cf3a98 100644 --- a/drivers/staging/sm750fb/ddk750.h +++ b/drivers/staging/sm750fb/ddk750.h @@ -14,8 +14,5 @@ #include "ddk750_chip.h" #include "ddk750_display.h" #include "ddk750_power.h" -#ifdef USE_HW_I2C -#include "ddk750_hwi2c.h" -#endif #include "ddk750_swi2c.h" #endif diff --git a/drivers/staging/sm750fb/ddk750_hwi2c.c b/drivers/staging/sm750fb/ddk750_hwi2c.c deleted file mode 100644 index 8482689b665b..000000000000 --- a/drivers/staging/sm750fb/ddk750_hwi2c.c +++ /dev/null @@ -1,247 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0 -#define USE_HW_I2C -#ifdef USE_HW_I2C -#include "ddk750_chip.h" -#include "ddk750_reg.h" -#include "ddk750_hwi2c.h" -#include "ddk750_power.h" - -#define MAX_HWI2C_FIFO 16 -#define HWI2C_WAIT_TIMEOUT 0xF0000 - -int sm750_hw_i2c_init(unsigned char bus_speed_mode) -{ - unsigned int value; - - /* Enable GPIO 30 & 31 as IIC clock & data */ - value = peek32(GPIO_MUX); - - value |= (GPIO_MUX_30 | GPIO_MUX_31); - poke32(GPIO_MUX, value); - - /* - * Enable Hardware I2C power. - * TODO: Check if we need to enable GPIO power? - */ - sm750_enable_i2c(1); - - /* Enable the I2C Controller and set the bus speed mode */ - value = peek32(I2C_CTRL) & ~(I2C_CTRL_MODE | I2C_CTRL_EN); - if (bus_speed_mode) - value |= I2C_CTRL_MODE; - value |= I2C_CTRL_EN; - poke32(I2C_CTRL, value); - - return 0; -} - -void sm750_hw_i2c_close(void) -{ - unsigned int value; - - /* Disable I2C controller */ - value = peek32(I2C_CTRL) & ~I2C_CTRL_EN; - poke32(I2C_CTRL, value); - - /* Disable I2C Power */ - sm750_enable_i2c(0); - - /* Set GPIO 30 & 31 back as GPIO pins */ - value = peek32(GPIO_MUX); - value &= ~GPIO_MUX_30; - value &= ~GPIO_MUX_31; - poke32(GPIO_MUX, value); -} - -static long hw_i2c_wait_tx_done(void) -{ - unsigned int timeout; - - /* Wait until the transfer is completed. */ - timeout = HWI2C_WAIT_TIMEOUT; - while (!(peek32(I2C_STATUS) & I2C_STATUS_TX) && (timeout != 0)) - timeout--; - - if (timeout == 0) - return -1; - - return 0; -} - -/* - * This function writes data to the i2c slave device registers. - * - * Parameters: - * addr - i2c Slave device address - * length - Total number of bytes to be written to the device - * buf - The buffer that contains the data to be written to the - * i2c device. - * - * Return Value: - * Total number of bytes those are actually written. - */ -static unsigned int hw_i2c_write_data(unsigned char addr, - unsigned int length, - unsigned char *buf) -{ - unsigned char count, i; - unsigned int total_bytes = 0; - - /* Set the Device Address */ - poke32(I2C_SLAVE_ADDRESS, addr & ~0x01); - - /* - * Write data. - * Note: - * Only 16 byte can be accessed per i2c start instruction. - */ - do { - /* - * Reset I2C by writing 0 to I2C_RESET register to - * clear the previous status. - */ - poke32(I2C_RESET, 0); - - /* Set the number of bytes to be written */ - if (length < MAX_HWI2C_FIFO) - count = length - 1; - else - count = MAX_HWI2C_FIFO - 1; - poke32(I2C_BYTE_COUNT, count); - - /* Move the data to the I2C data register */ - for (i = 0; i <= count; i++) - poke32(I2C_DATA0 + i, *buf++); - - /* Start the I2C */ - poke32(I2C_CTRL, peek32(I2C_CTRL) | I2C_CTRL_CTRL); - - /* Wait until the transfer is completed. */ - if (hw_i2c_wait_tx_done() != 0) - break; - - /* Subtract length */ - length -= (count + 1); - - /* Total byte written */ - total_bytes += (count + 1); - - } while (length > 0); - - return total_bytes; -} - -/* - * This function reads data from the slave device and stores them - * in the given buffer - * - * Parameters: - * addr - i2c Slave device address - * length - Total number of bytes to be read - * buf - Pointer to a buffer to be filled with the data read - * from the slave device. It has to be the same size as the - * length to make sure that it can keep all the data read. - * - * Return Value: - * Total number of actual bytes read from the slave device - */ -static unsigned int hw_i2c_read_data(unsigned char addr, - unsigned int length, - unsigned char *buf) -{ - unsigned char count, i; - unsigned int total_bytes = 0; - - /* Set the Device Address */ - poke32(I2C_SLAVE_ADDRESS, addr | 0x01); - - /* - * Read data and save them to the buffer. - * Note: - * Only 16 byte can be accessed per i2c start instruction. - */ - do { - /* - * Reset I2C by writing 0 to I2C_RESET register to - * clear all the status. - */ - poke32(I2C_RESET, 0); - - /* Set the number of bytes to be read */ - if (length <= MAX_HWI2C_FIFO) - count = length - 1; - else - count = MAX_HWI2C_FIFO - 1; - poke32(I2C_BYTE_COUNT, count); - - /* Start the I2C */ - poke32(I2C_CTRL, peek32(I2C_CTRL) | I2C_CTRL_CTRL); - - /* Wait until transaction done. */ - if (hw_i2c_wait_tx_done() != 0) - break; - - /* Save the data to the given buffer */ - for (i = 0; i <= count; i++) - *buf++ = peek32(I2C_DATA0 + i); - - /* Subtract length by 16 */ - length -= (count + 1); - - /* Number of bytes read. */ - total_bytes += (count + 1); - - } while (length > 0); - - return total_bytes; -} - -/* - * This function reads the slave device's register - * - * Parameters: - * deviceAddress - i2c Slave device address which register - * to be read from - * registerIndex - Slave device's register to be read - * - * Return Value: - * Register value - */ -unsigned char sm750_hw_i2c_read_reg(unsigned char addr, unsigned char reg) -{ - unsigned char value = 0xFF; - - if (hw_i2c_write_data(addr, 1, ®) == 1) - hw_i2c_read_data(addr, 1, &value); - - return value; -} - -/* - * This function writes a value to the slave device's register - * - * Parameters: - * deviceAddress - i2c Slave device address which register - * to be written - * registerIndex - Slave device's register to be written - * data - Data to be written to the register - * - * Result: - * 0 - Success - * -1 - Fail - */ -int sm750_hw_i2c_write_reg(unsigned char addr, - unsigned char reg, - unsigned char data) -{ - unsigned char value[2]; - - value[0] = reg; - value[1] = data; - if (hw_i2c_write_data(addr, 2, value) == 2) - return 0; - - return -1; -} - -#endif diff --git a/drivers/staging/sm750fb/ddk750_hwi2c.h b/drivers/staging/sm750fb/ddk750_hwi2c.h deleted file mode 100644 index 337c6493ca61..000000000000 --- a/drivers/staging/sm750fb/ddk750_hwi2c.h +++ /dev/null @@ -1,12 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0 */ -#ifndef DDK750_HWI2C_H__ -#define DDK750_HWI2C_H__ - -/* hwi2c functions */ -int sm750_hw_i2c_init(unsigned char bus_speed_mode); -void sm750_hw_i2c_close(void); - -unsigned char sm750_hw_i2c_read_reg(unsigned char addr, unsigned char reg); -int sm750_hw_i2c_write_reg(unsigned char addr, unsigned char reg, - unsigned char data); -#endif