]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - drivers/spi/atmel_dataflash_spi.c
spi: atmel_dataflash: Simplify AT91F_SpiEnable implementation
[karo-tx-uboot.git] / drivers / spi / atmel_dataflash_spi.c
index 363e07a53f978ec9641b02559f3b87bfb6bc892c..a2e9c00ea660733758f8f5d768932b1ad50a655d 100644 (file)
@@ -2,21 +2,7 @@
  * Driver for ATMEL DataFlash support
  * Author : Hamid Ikdoumi (Atmel)
  *
- * 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
- *
+ * SPDX-License-Identifier:    GPL-2.0+
  */
 
 /*
@@ -116,33 +102,26 @@ void AT91F_SpiEnable(int cs)
 {
        unsigned long mode;
 
+       mode = readl(ATMEL_BASE_SPI0 + AT91_SPI_MR);
+       mode &= ~AT91_SPI_PCS;
+
        switch (cs) {
-       case 0: /* Configure SPI CS0 for Serial DataFlash AT45DBxx */
-               mode = readl(ATMEL_BASE_SPI0 + AT91_SPI_MR);
-               mode &= 0xFFF0FFFF;
-               writel(mode | ((AT91_SPI_PCS0_DATAFLASH_CARD<<16) & AT91_SPI_PCS),
-                      ATMEL_BASE_SPI0 + AT91_SPI_MR);
+       case 0:
+               mode |= AT91_SPI_PCS0_DATAFLASH_CARD << 16;
                break;
-       case 1: /* Configure SPI CS1 for Serial DataFlash AT45DBxx */
-               mode = readl(ATMEL_BASE_SPI0 + AT91_SPI_MR);
-               mode &= 0xFFF0FFFF;
-               writel(mode | ((AT91_SPI_PCS1_DATAFLASH_CARD<<16) & AT91_SPI_PCS),
-                      ATMEL_BASE_SPI0 + AT91_SPI_MR);
+       case 1:
+               mode |= AT91_SPI_PCS1_DATAFLASH_CARD << 16;
                break;
-       case 2: /* Configure SPI CS2 for Serial DataFlash AT45DBxx */
-               mode = readl(ATMEL_BASE_SPI0 + AT91_SPI_MR);
-               mode &= 0xFFF0FFFF;
-               writel(mode | ((AT91_SPI_PCS2_DATAFLASH_CARD<<16) & AT91_SPI_PCS),
-                      ATMEL_BASE_SPI0 + AT91_SPI_MR);
+       case 2:
+               mode |= AT91_SPI_PCS2_DATAFLASH_CARD << 16;
                break;
        case 3:
-               mode = readl(ATMEL_BASE_SPI0 + AT91_SPI_MR);
-               mode &= 0xFFF0FFFF;
-               writel(mode | ((AT91_SPI_PCS3_DATAFLASH_CARD<<16) & AT91_SPI_PCS),
-                      ATMEL_BASE_SPI0 + AT91_SPI_MR);
+               mode |= AT91_SPI_PCS3_DATAFLASH_CARD << 16;
                break;
        }
 
+       writel(mode, ATMEL_BASE_SPI0 + AT91_SPI_MR);
+
        /* SPI_Enable */
        writel(AT91_SPI_SPIEN, ATMEL_BASE_SPI0 + AT91_SPI_CR);
 }