linux/drivers/ata/pata_cs5535.c

// SPDX-License-Identifier: GPL-2.0-only
/*
 * pata-cs5535.c 	- CS5535 PATA for new ATA layer
 *			  (C) 2005-2006 Red Hat Inc
 *			  Alan Cox <[email protected]>
 *
 * based upon cs5535.c from AMD <[email protected]> as cleaned up and
 * made readable and Linux style by Wolfgang Zuleger <[email protected]>
 * and Alexander Kiausch <[email protected]>
 *
 * Loosely based on the piix & svwks drivers.
 *
 * Documentation:
 *	Available from AMD web site.
 * TODO
 *	Review errata to see if serializing is necessary
 */

#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/pci.h>
#include <linux/blkdev.h>
#include <linux/delay.h>
#include <scsi/scsi_host.h>
#include <linux/libata.h>
#include <asm/msr.h>

#define DRV_NAME
#define DRV_VERSION

/*
 *	The Geode (Aka Athlon GX now) uses an internal MSR based
 *	bus system for control. Demented but there you go.
 */

#define MSR_ATAC_BASE
#define ATAC_GLD_MSR_CAP
#define ATAC_GLD_MSR_CONFIG
#define ATAC_GLD_MSR_SMI
#define ATAC_GLD_MSR_ERROR
#define ATAC_GLD_MSR_PM
#define ATAC_GLD_MSR_DIAG
#define ATAC_IO_BAR
#define ATAC_RESET
#define ATAC_CH0D0_PIO
#define ATAC_CH0D0_DMA
#define ATAC_CH0D1_PIO
#define ATAC_CH0D1_DMA
#define ATAC_PCI_ABRTERR

#define ATAC_BM0_CMD_PRIM
#define ATAC_BM0_STS_PRIM
#define ATAC_BM0_PRD

#define CS5535_CABLE_DETECT

/**
 *	cs5535_cable_detect	-	detect cable type
 *	@ap: Port to detect on
 *
 *	Perform cable detection for ATA66 capable cable. Return a libata
 *	cable type.
 */

static int cs5535_cable_detect(struct ata_port *ap)
{}

/**
 *	cs5535_set_piomode		-	PIO setup
 *	@ap: ATA interface
 *	@adev: device on the interface
 *
 *	Set our PIO requirements. The CS5535 is pretty clean about all this
 */

static void cs5535_set_piomode(struct ata_port *ap, struct ata_device *adev)
{}

/**
 *	cs5535_set_dmamode		-	DMA timing setup
 *	@ap: ATA interface
 *	@adev: Device being configured
 *
 */

static void cs5535_set_dmamode(struct ata_port *ap, struct ata_device *adev)
{}

static const struct scsi_host_template cs5535_sht =;

static struct ata_port_operations cs5535_port_ops =;

/**
 *	cs5535_init_one		-	Initialise a CS5530
 *	@dev: PCI device
 *	@id: Entry in match table
 *
 *	Install a driver for the newly found CS5530 companion chip. Most of
 *	this is just housekeeping. We have to set the chip up correctly and
 *	turn off various bits of emulation magic.
 */

static int cs5535_init_one(struct pci_dev *dev, const struct pci_device_id *id)
{}

static const struct pci_device_id cs5535[] =;

static struct pci_driver cs5535_pci_driver =;

module_pci_driver();

MODULE_AUTHOR();
MODULE_DESCRIPTION();
MODULE_LICENSE();
MODULE_DEVICE_TABLE(pci, cs5535);
MODULE_VERSION();