linux/drivers/mtd/nand/raw/sm_common.c

// SPDX-License-Identifier: GPL-2.0-only
/*
 * Copyright © 2009 - Maxim Levitsky
 * Common routines & support for xD format
 */
#include <linux/kernel.h>
#include <linux/mtd/rawnand.h>
#include <linux/module.h>
#include <linux/sizes.h>
#include "sm_common.h"

static int oob_sm_ooblayout_ecc(struct mtd_info *mtd, int section,
				struct mtd_oob_region *oobregion)
{}

static int oob_sm_ooblayout_free(struct mtd_info *mtd, int section,
				 struct mtd_oob_region *oobregion)
{}

static const struct mtd_ooblayout_ops oob_sm_ops =;

/* NOTE: This layout is not compatabable with SmartMedia, */
/* because the 256 byte devices have page depenent oob layout */
/* However it does preserve the bad block markers */
/* If you use smftl, it will bypass this and work correctly */
/* If you not, then you break SmartMedia compliance anyway */

static int oob_sm_small_ooblayout_ecc(struct mtd_info *mtd, int section,
				      struct mtd_oob_region *oobregion)
{}

static int oob_sm_small_ooblayout_free(struct mtd_info *mtd, int section,
				       struct mtd_oob_region *oobregion)
{}

static const struct mtd_ooblayout_ops oob_sm_small_ops =;

static int sm_block_markbad(struct nand_chip *chip, loff_t ofs)
{}

static struct nand_flash_dev nand_smartmedia_flash_ids[] =;

static struct nand_flash_dev nand_xd_flash_ids[] =;

static int sm_attach_chip(struct nand_chip *chip)
{}

static const struct nand_controller_ops sm_controller_ops =;

int sm_register_device(struct mtd_info *mtd, int smartmedia)
{}
EXPORT_SYMBOL_GPL();

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