linux/drivers/ata/ahci_dwc.c

// SPDX-License-Identifier: GPL-2.0-or-later
/*
 * DWC AHCI SATA Platform driver
 *
 * Copyright (C) 2021 BAIKAL ELECTRONICS, JSC
 */

#include <linux/ahci_platform.h>
#include <linux/bitfield.h>
#include <linux/bits.h>
#include <linux/clk.h>
#include <linux/device.h>
#include <linux/kernel.h>
#include <linux/libata.h>
#include <linux/log2.h>
#include <linux/mfd/syscon.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/platform_device.h>
#include <linux/pm.h>
#include <linux/regmap.h>

#include "ahci.h"

#define DRV_NAME

#define AHCI_DWC_FBS_PMPN_MAX

/* DWC AHCI SATA controller specific registers */
#define AHCI_DWC_HOST_OOBR
#define AHCI_DWC_HOST_OOB_WE
#define AHCI_DWC_HOST_CWMIN_MASK
#define AHCI_DWC_HOST_CWMAX_MASK
#define AHCI_DWC_HOST_CIMIN_MASK
#define AHCI_DWC_HOST_CIMAX_MASK

#define AHCI_DWC_HOST_GPCR
#define AHCI_DWC_HOST_GPSR

#define AHCI_DWC_HOST_TIMER1MS
#define AHCI_DWC_HOST_TIMV_MASK

#define AHCI_DWC_HOST_GPARAM1R
#define AHCI_DWC_HOST_ALIGN_M
#define AHCI_DWC_HOST_RX_BUFFER
#define AHCI_DWC_HOST_PHY_DATA_MASK
#define AHCI_DWC_HOST_PHY_RST
#define AHCI_DWC_HOST_PHY_CTRL_MASK
#define AHCI_DWC_HOST_PHY_STAT_MASK
#define AHCI_DWC_HOST_LATCH_M
#define AHCI_DWC_HOST_PHY_TYPE_MASK
#define AHCI_DWC_HOST_RET_ERR
#define AHCI_DWC_HOST_AHB_ENDIAN_MASK
#define AHCI_DWC_HOST_S_HADDR
#define AHCI_DWC_HOST_M_HADDR
#define AHCI_DWC_HOST_S_HDATA_MASK
#define AHCI_DWC_HOST_M_HDATA_MASK

#define AHCI_DWC_HOST_GPARAM2R
#define AHCI_DWC_HOST_FBS_MEM_S
#define AHCI_DWC_HOST_FBS_PMPN_MASK
#define AHCI_DWC_HOST_FBS_SUP
#define AHCI_DWC_HOST_DEV_CP
#define AHCI_DWC_HOST_DEV_MP
#define AHCI_DWC_HOST_ENCODE_M
#define AHCI_DWC_HOST_RXOOB_CLK_M
#define AHCI_DWC_HOST_RXOOB_M
#define AHCI_DWC_HOST_TXOOB_M
#define AHCI_DWC_HOST_RXOOB_M
#define AHCI_DWC_HOST_RXOOB_CLK_MASK

#define AHCI_DWC_HOST_PPARAMR
#define AHCI_DWC_HOST_TX_MEM_M
#define AHCI_DWC_HOST_TX_MEM_S
#define AHCI_DWC_HOST_RX_MEM_M
#define AHCI_DWC_HOST_RX_MEM_S
#define AHCI_DWC_HOST_TXFIFO_DEPTH
#define AHCI_DWC_HOST_RXFIFO_DEPTH

#define AHCI_DWC_HOST_TESTR
#define AHCI_DWC_HOST_PSEL_MASK
#define AHCI_DWC_HOST_TEST_IF

#define AHCI_DWC_HOST_VERSIONR
#define AHCI_DWC_HOST_IDR

#define AHCI_DWC_PORT_DMACR
#define AHCI_DWC_PORT_RXABL_MASK
#define AHCI_DWC_PORT_TXABL_MASK
#define AHCI_DWC_PORT_RXTS_MASK
#define AHCI_DWC_PORT_TXTS_MASK
#define AHCI_DWC_PORT_PHYCR
#define AHCI_DWC_PORT_PHYSR

/* Baikal-T1 AHCI SATA specific registers */
#define AHCI_BT1_HOST_PHYCR
#define AHCI_BT1_HOST_MPLM_MASK
#define AHCI_BT1_HOST_LOSDT_MASK
#define AHCI_BT1_HOST_CRR
#define AHCI_BT1_HOST_CRW
#define AHCI_BT1_HOST_CRCD
#define AHCI_BT1_HOST_CRCA
#define AHCI_BT1_HOST_CRDI_MASK

#define AHCI_BT1_HOST_PHYSR
#define AHCI_BT1_HOST_CRA
#define AHCI_BT1_HOST_CRDO_MASK

struct ahci_dwc_plat_data {};

struct ahci_dwc_host_priv {};

static int ahci_bt1_init(struct ahci_host_priv *hpriv)
{}

static struct ahci_host_priv *ahci_dwc_get_resources(struct platform_device *pdev)
{}

static void ahci_dwc_check_cap(struct ahci_host_priv *hpriv)
{}

static void ahci_dwc_init_timer(struct ahci_host_priv *hpriv)
{}

static int ahci_dwc_init_dmacr(struct ahci_host_priv *hpriv)
{}

static int ahci_dwc_init_host(struct ahci_host_priv *hpriv)
{}

static int ahci_dwc_reinit_host(struct ahci_host_priv *hpriv)
{}

static void ahci_dwc_clear_host(struct ahci_host_priv *hpriv)
{}

static void ahci_dwc_stop_host(struct ata_host *host)
{}

static struct ata_port_operations ahci_dwc_port_ops =;

static const struct ata_port_info ahci_dwc_port_info =;

static const struct scsi_host_template ahci_dwc_scsi_info =;

static int ahci_dwc_probe(struct platform_device *pdev)
{}

static int ahci_dwc_suspend(struct device *dev)
{}

static int ahci_dwc_resume(struct device *dev)
{}

static DEFINE_SIMPLE_DEV_PM_OPS(ahci_dwc_pm_ops, ahci_dwc_suspend,
				ahci_dwc_resume);

static struct ahci_dwc_plat_data ahci_dwc_plat =;

static struct ahci_dwc_plat_data ahci_bt1_plat =;

static const struct of_device_id ahci_dwc_of_match[] =;
MODULE_DEVICE_TABLE(of, ahci_dwc_of_match);

static struct platform_driver ahci_dwc_driver =;
module_platform_driver();

MODULE_DESCRIPTION();
MODULE_AUTHOR();
MODULE_LICENSE();