/*
* Driver for S3C2440 base board.
*
* Copyright (C) 2019 Alan NWPU <alantian.at@gmail.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
* MULTIBEANS, NPU Youyi West Ave, Beilin District, Xi'an, China.*/#include<linux/module.h>/* Every Linux kernel module must include this head */#include<linux/init.h>/* Every Linux kernel module must include this head */#include<linux/kernel.h>/* printk() */#include<linux/fs.h>/* struct fops */#include<linux/errno.h>/* error codes */#include<linux/delay.h>#include<linux/moduleparam.h>#include<linux/spi/spi.h>#include<linux/types.h>#include<linux/gpio.h>#include<linux/types.h>#include<linux/irq.h>#include<linux/slab.h>#include<linux/uaccess.h>#include<linux/interrupt.h>#include<linux/pm.h>#include<linux/device.h>#include<asm/irq.h>#include<mach/gpio-nrs.h>#include<mach/regs-gpio.h>#include<mach/gpio.h>#include<mach/hardware.h>#include<plat/gpio-cfg.h>#include<linux/spi/spi.h>#include<linux/mtd/cfi.h>#include<linux/mtd/mtd.h>#include<linux/mtd/partitions.h>#define DRV_NAME "s3c2440_w25q16"#define DRV_AUTHOR "Alan Tian <alantian.at@gmail.com>"#define DRV_DESC "S3C2440 W25Q16 Driver"staticintw25q16_bus_spi_probe(struct spi_device *spi);staticintw25q16_spi_remove(struct spi_device *spi);struct spi_master *spi_master_p;struct spi_device *spi_flash;struct spi_message *spi_mesg_p;voidSPIFlashReadID(int*pMID,int*pDID){
unsignedchar tx_buf[4];unsignedchar rx_buf[2];
tx_buf[0]=0x90;
tx_buf[1]=0;
tx_buf[2]=0;
tx_buf[3]=0;spi_write_then_read(spi_flash, tx_buf,4, rx_buf,2);//先发送tx_buf数组里面的4个字节,然后在读取2个字节并存入rx_buf中*pMID = rx_buf[0];*pDID = rx_buf[1];}st