1 // SPDX-License-Identifier: GPL-2.0+
2 /*
3  * (C) Copyright 2019
4  * Angelo Dureghello <angleo@sysam.it>
5  *
6  * CPU specific dspi routines
7  */
8 
9 #include <common.h>
10 #include <asm/immap.h>
11 #include <asm/io.h>
12 
13 #ifdef CONFIG_CF_DSPI
dspi_chip_select(int cs)14 void dspi_chip_select(int cs)
15 {
16 	struct gpio *gpio = (struct gpio *)MMAP_GPIO;
17 
18 #ifdef CONFIG_MCF5441x
19 	switch (cs) {
20 	case 0:
21 		clrbits_8(&gpio->par_dspi0,
22 			  ~GPIO_PAR_DSPI0_PCS0_MASK);
23 		setbits_8(&gpio->par_dspi0,
24 			  GPIO_PAR_DSPI0_PCS0_DSPI0PCS0);
25 		break;
26 	case 1:
27 		clrbits_8(&gpio->par_dspiow,
28 			  GPIO_PAR_DSPIOW_DSPI0PSC1);
29 		setbits_8(&gpio->par_dspiow,
30 			  GPIO_PAR_DSPIOW_DSPI0PSC1);
31 		break;
32 	}
33 #endif
34 }
35 
dspi_chip_unselect(int cs)36 void dspi_chip_unselect(int cs)
37 {
38 	struct gpio *gpio = (struct gpio *)MMAP_GPIO;
39 
40 #ifdef CONFIG_MCF5441x
41 	if (cs == 1)
42 		clrbits_8(&gpio->par_dspiow, GPIO_PAR_DSPIOW_DSPI0PSC1);
43 #endif
44 }
45 #endif /* CONFIG_CF_DSPI */
46