]> git.ipfire.org Git - thirdparty/u-boot.git/blame - board/mscc/common/spi.c
Revert "Merge patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet""
[thirdparty/u-boot.git] / board / mscc / common / spi.c
CommitLineData
c75c9083
HV
1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (c) 2018 Microsemi Coprporation
4 */
5
d678a59d 6#include <common.h>
c75c9083
HV
7#include <asm/io.h>
8#include <spi.h>
cd93d625 9#include <linux/bitops.h>
c75c9083
HV
10
11void external_cs_manage(struct udevice *dev, bool enable)
12{
13 u32 cs = spi_chip_select(dev);
14 /* IF_SI0_OWNER, select the owner of the SI interface
15 * Encoding: 0: SI Slave
16 * 1: SI Boot Master
17 * 2: SI Master Controller
18 */
19 if (!enable) {
20 writel(ICPU_SW_MODE_SW_PIN_CTRL_MODE |
21 ICPU_SW_MODE_SW_SPI_CS(BIT(cs)),
22 BASE_CFG + ICPU_SW_MODE);
23 clrsetbits_le32(BASE_CFG + ICPU_GENERAL_CTRL,
24 ICPU_GENERAL_CTRL_IF_SI_OWNER_M,
25 ICPU_GENERAL_CTRL_IF_SI_OWNER(2));
26 } else {
27 writel(0, BASE_CFG + ICPU_SW_MODE);
28 clrsetbits_le32(BASE_CFG + ICPU_GENERAL_CTRL,
29 ICPU_GENERAL_CTRL_IF_SI_OWNER_M,
30 ICPU_GENERAL_CTRL_IF_SI_OWNER(1));
31 }
32}