linux/drivers/usb/storage/cypress_atacb.c

// SPDX-License-Identifier: GPL-2.0+
/*
 * Support for emulating SAT (ata pass through) on devices based
 *       on the Cypress USB/ATA bridge supporting ATACB.
 *
 * Copyright (c) 2008 Matthieu Castet ([email protected])
 */

#include <linux/module.h>
#include <scsi/scsi.h>
#include <scsi/scsi_cmnd.h>
#include <scsi/scsi_eh.h>
#include <linux/ata.h>

#include "usb.h"
#include "protocol.h"
#include "scsiglue.h"
#include "debug.h"

#define DRV_NAME

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

/*
 * The table of devices
 */
#define UNUSUAL_DEV

static struct usb_device_id cypress_usb_ids[] =;
MODULE_DEVICE_TABLE(usb, cypress_usb_ids);

#undef UNUSUAL_DEV

/*
 * The flags table
 */
#define UNUSUAL_DEV

static struct us_unusual_dev cypress_unusual_dev_list[] =;

#undef UNUSUAL_DEV


/*
 * ATACB is a protocol used on cypress usb<->ata bridge to
 * send raw ATA command over mass storage
 * There is a ATACB2 protocol that support LBA48 on newer chip.
 * More info that be found on cy7c68310_8.pdf and cy7c68300c_8.pdf
 * datasheet from cypress.com.
 */
static void cypress_atacb_passthrough(struct scsi_cmnd *srb, struct us_data *us)
{}

static struct scsi_host_template cypress_host_template;

static int cypress_probe(struct usb_interface *intf,
			 const struct usb_device_id *id)
{}

static struct usb_driver cypress_driver =;

module_usb_stor_driver(cypress_driver, cypress_host_template, DRV_NAME);