- Fix SATA issue on Armada 3720 - Enable more SPI NOR chips in espressobin defconfig
This commit is contained in:
		
						commit
						e5df264e7a
					
				| 
						 | 
				
			
			@ -55,6 +55,8 @@ CONFIG_SPI_FLASH_MACRONIX=y
 | 
			
		|||
CONFIG_SPI_FLASH_SPANSION=y
 | 
			
		||||
CONFIG_SPI_FLASH_STMICRO=y
 | 
			
		||||
CONFIG_SPI_FLASH_WINBOND=y
 | 
			
		||||
CONFIG_SPI_FLASH_GIGADEVICE=y
 | 
			
		||||
CONFIG_SPI_FLASH_ISSI=y
 | 
			
		||||
CONFIG_PHYLIB=y
 | 
			
		||||
CONFIG_PHY_MARVELL=y
 | 
			
		||||
CONFIG_PHY_GIGE=y
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -273,16 +273,23 @@ static void reg_set_indirect(u32 reg, u16 data, u16 mask)
 | 
			
		|||
 *
 | 
			
		||||
 * return: 1 if PLL locked (OK), 0 otherwise (FAIL)
 | 
			
		||||
 */
 | 
			
		||||
static int comphy_sata_power_up(void)
 | 
			
		||||
static int comphy_sata_power_up(u32 invert)
 | 
			
		||||
{
 | 
			
		||||
	int ret;
 | 
			
		||||
	u32 data = 0;
 | 
			
		||||
 | 
			
		||||
	debug_enter();
 | 
			
		||||
 | 
			
		||||
	/*
 | 
			
		||||
	 * 0. Swap SATA TX lines
 | 
			
		||||
	 * 0. Check the Polarity invert bits
 | 
			
		||||
	 */
 | 
			
		||||
	reg_set_indirect(vphy_sync_pattern_reg, bs_txd_inv, bs_txd_inv);
 | 
			
		||||
	if (invert & PHY_POLARITY_TXD_INVERT)
 | 
			
		||||
		data |= bs_txd_inv;
 | 
			
		||||
 | 
			
		||||
	if (invert & PHY_POLARITY_RXD_INVERT)
 | 
			
		||||
		data |= bs_rxd_inv;
 | 
			
		||||
 | 
			
		||||
	reg_set_indirect(vphy_sync_pattern_reg, data, bs_txd_inv | bs_rxd_inv);
 | 
			
		||||
 | 
			
		||||
	/*
 | 
			
		||||
	 * 1. Select 40-bit data width width
 | 
			
		||||
| 
						 | 
				
			
			@ -924,22 +931,6 @@ void comphy_dedicated_phys_init(void)
 | 
			
		|||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	node = fdt_node_offset_by_compatible(blob, -1,
 | 
			
		||||
					     "marvell,armada-3700-ahci");
 | 
			
		||||
	if (node > 0) {
 | 
			
		||||
		if (fdtdec_get_is_enabled(blob, node)) {
 | 
			
		||||
			ret = comphy_sata_power_up();
 | 
			
		||||
			if (!ret)
 | 
			
		||||
				printf("Failed to initialize SATA PHY\n");
 | 
			
		||||
			else
 | 
			
		||||
				debug("SATA PHY init succeed\n");
 | 
			
		||||
		} else {
 | 
			
		||||
			debug("SATA node is disabled\n");
 | 
			
		||||
		}
 | 
			
		||||
	}  else {
 | 
			
		||||
		debug("No SATA node in DT\n");
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	node = fdt_node_offset_by_compatible(blob, -1,
 | 
			
		||||
					     "marvell,armada-8k-sdhci");
 | 
			
		||||
	if (node <= 0) {
 | 
			
		||||
| 
						 | 
				
			
			@ -1007,6 +998,10 @@ int comphy_a3700_init(struct chip_serdes_phy_config *chip_cfg,
 | 
			
		|||
						    comphy_map->invert);
 | 
			
		||||
			break;
 | 
			
		||||
 | 
			
		||||
		case PHY_TYPE_SATA0:
 | 
			
		||||
			ret = comphy_sata_power_up(comphy_map->invert);
 | 
			
		||||
			break;
 | 
			
		||||
 | 
			
		||||
		default:
 | 
			
		||||
			debug("Unknown SerDes type, skip initialize SerDes %d\n",
 | 
			
		||||
			      lane);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue