// SPDX-License-Identifier: GPL-2.0+
/*
 * Copyright 2015 Freescale Semiconductor, Inc.
 */
#include <common.h>
#include <asm/io.h>
#include <asm/arch/immap_ls102xa.h>
#include <ahci.h>
#include <scsi.h>

/* port register default value */
#define AHCI_PORT_PHY_1_CFG	0xa003fffe
#define AHCI_PORT_PHY_2_CFG	0x28183414
#define AHCI_PORT_PHY_3_CFG	0x0e080e06
#define AHCI_PORT_PHY_4_CFG	0x064a080b
#define AHCI_PORT_PHY_5_CFG	0x2aa86470
#define AHCI_PORT_TRANS_CFG	0x08000029

#define SATA_ECC_REG_ADDR	0x20220520
#define SATA_ECC_DISABLE	0x00020000

int ls1021a_sata_init(void)
{
	struct ccsr_ahci __iomem *ccsr_ahci = (void *)AHCI_BASE_ADDR;

#ifdef CONFIG_SYS_FSL_ERRATUM_A008407
	out_le32((void *)SATA_ECC_REG_ADDR, SATA_ECC_DISABLE);
#endif

	out_le32(&ccsr_ahci->ppcfg, AHCI_PORT_PHY_1_CFG);
	out_le32(&ccsr_ahci->pp2c, AHCI_PORT_PHY_2_CFG);
	out_le32(&ccsr_ahci->pp3c, AHCI_PORT_PHY_3_CFG);
	out_le32(&ccsr_ahci->pp4c, AHCI_PORT_PHY_4_CFG);
	out_le32(&ccsr_ahci->pp5c, AHCI_PORT_PHY_5_CFG);
	out_le32(&ccsr_ahci->ptc, AHCI_PORT_TRANS_CFG);

	ahci_init((void __iomem *)AHCI_BASE_ADDR);
	scsi_scan(false);

	return 0;
}
