linux/drivers/misc/cardreader/rts5228.c

// SPDX-License-Identifier: GPL-2.0-or-later
/* Driver for Realtek PCI-Express card reader
 *
 * Copyright(c) 2018-2019 Realtek Semiconductor Corp. All rights reserved.
 *
 * Author:
 *   Ricky WU <[email protected]>
 *   Rui FENG <[email protected]>
 *   Wei WANG <[email protected]>
 */

#include <linux/module.h>
#include <linux/delay.h>
#include <linux/rtsx_pci.h>

#include "rts5228.h"
#include "rtsx_pcr.h"

static u8 rts5228_get_ic_version(struct rtsx_pcr *pcr)
{}

static void rts5228_fill_driving(struct rtsx_pcr *pcr, u8 voltage)
{}

static void rtsx5228_fetch_vendor_settings(struct rtsx_pcr *pcr)
{}

static int rts5228_optimize_phy(struct rtsx_pcr *pcr)
{}

static void rts5228_force_power_down(struct rtsx_pcr *pcr, u8 pm_state, bool runtime)
{}

static int rts5228_enable_auto_blink(struct rtsx_pcr *pcr)
{}

static int rts5228_disable_auto_blink(struct rtsx_pcr *pcr)
{}

static int rts5228_turn_on_led(struct rtsx_pcr *pcr)
{}

static int rts5228_turn_off_led(struct rtsx_pcr *pcr)
{}

/* SD Pull Control Enable:
 *     SD_DAT[3:0] ==> pull up
 *     SD_CD       ==> pull up
 *     SD_WP       ==> pull up
 *     SD_CMD      ==> pull up
 *     SD_CLK      ==> pull down
 */
static const u32 rts5228_sd_pull_ctl_enable_tbl[] =;

/* SD Pull Control Disable:
 *     SD_DAT[3:0] ==> pull down
 *     SD_CD       ==> pull up
 *     SD_WP       ==> pull down
 *     SD_CMD      ==> pull down
 *     SD_CLK      ==> pull down
 */
static const u32 rts5228_sd_pull_ctl_disable_tbl[] =;

static int rts5228_sd_set_sample_push_timing_sd30(struct rtsx_pcr *pcr)
{}

static int rts5228_card_power_on(struct rtsx_pcr *pcr, int card)
{}

static int rts5228_switch_output_voltage(struct rtsx_pcr *pcr, u8 voltage)
{}

static void rts5228_stop_cmd(struct rtsx_pcr *pcr)
{}

static void rts5228_card_before_power_off(struct rtsx_pcr *pcr)
{}

static void rts5228_enable_ocp(struct rtsx_pcr *pcr)
{}

static void rts5228_disable_ocp(struct rtsx_pcr *pcr)
{}

static int rts5228_card_power_off(struct rtsx_pcr *pcr, int card)
{}

static void rts5228_init_ocp(struct rtsx_pcr *pcr)
{}

static void rts5228_clear_ocpstat(struct rtsx_pcr *pcr)
{}

static void rts5228_process_ocp(struct rtsx_pcr *pcr)
{}

static void rts5228_init_from_cfg(struct rtsx_pcr *pcr)
{}

static int rts5228_extra_init_hw(struct rtsx_pcr *pcr)
{}

static void rts5228_enable_aspm(struct rtsx_pcr *pcr, bool enable)
{}

static void rts5228_disable_aspm(struct rtsx_pcr *pcr, bool enable)
{}

static void rts5228_set_aspm(struct rtsx_pcr *pcr, bool enable)
{}

static void rts5228_set_l1off_cfg_sub_d0(struct rtsx_pcr *pcr, int active)
{}

static const struct pcr_ops rts5228_pcr_ops =;


static inline u8 double_ssc_depth(u8 depth)
{}

int rts5228_pci_switch_clock(struct rtsx_pcr *pcr, unsigned int card_clock,
		u8 ssc_depth, bool initial_mode, bool double_clk, bool vpclk)
{}

void rts5228_init_params(struct rtsx_pcr *pcr)
{}