The patch changes PCIe dts node status to 'disabled' if the corresponding controller is disabled according to serdes protocol. Signed-off-by: Minghuan Lian <Minghuan.Lian@freescale.com> Reviewed-by: York Sun <yorksun@freescale.com>master
parent
306fa01279
commit
da419027af
@ -0,0 +1,13 @@ |
|||||||
|
/*
|
||||||
|
* Copyright 2014 Freescale Semiconductor, Inc. |
||||||
|
* |
||||||
|
* SPDX-License-Identifier: GPL-2.0+ |
||||||
|
*/ |
||||||
|
|
||||||
|
#ifndef __PCIE_LAYERSCAPE_H_ |
||||||
|
#define __PCIE_LAYERSCAPE_H_ |
||||||
|
|
||||||
|
void pci_init_board(void); |
||||||
|
void ft_pcie_setup(void *blob, bd_t *bd); |
||||||
|
|
||||||
|
#endif |
@ -0,0 +1,51 @@ |
|||||||
|
/*
|
||||||
|
* Copyright 2014 Freescale Semiconductor, Inc. |
||||||
|
* Layerscape PCIe driver |
||||||
|
* |
||||||
|
* SPDX-License-Identifier: GPL-2.0+ |
||||||
|
*/ |
||||||
|
|
||||||
|
#include <common.h> |
||||||
|
#include <asm/arch/fsl_serdes.h> |
||||||
|
#include <pci.h> |
||||||
|
#include <asm/io.h> |
||||||
|
#include <asm/pcie_layerscape.h> |
||||||
|
|
||||||
|
#ifdef CONFIG_OF_BOARD_SETUP |
||||||
|
#include <libfdt.h> |
||||||
|
#include <fdt_support.h> |
||||||
|
|
||||||
|
static void ft_pcie_ls_setup(void *blob, const char *pci_compat, |
||||||
|
unsigned long ctrl_addr, enum srds_prtcl dev) |
||||||
|
{ |
||||||
|
int off; |
||||||
|
|
||||||
|
off = fdt_node_offset_by_compat_reg(blob, pci_compat, |
||||||
|
(phys_addr_t)ctrl_addr); |
||||||
|
if (off < 0) |
||||||
|
return; |
||||||
|
|
||||||
|
if (!is_serdes_configured(dev)) |
||||||
|
fdt_set_node_status(blob, off, FDT_STATUS_DISABLED, 0); |
||||||
|
} |
||||||
|
|
||||||
|
void ft_pcie_setup(void *blob, bd_t *bd) |
||||||
|
{ |
||||||
|
#ifdef CONFIG_PCIE1 |
||||||
|
ft_pcie_ls_setup(blob, FSL_PCIE_COMPAT, CONFIG_SYS_PCIE1_ADDR, PCIE1); |
||||||
|
#endif |
||||||
|
|
||||||
|
#ifdef CONFIG_PCIE2 |
||||||
|
ft_pcie_ls_setup(blob, FSL_PCIE_COMPAT, CONFIG_SYS_PCIE2_ADDR, PCIE2); |
||||||
|
#endif |
||||||
|
} |
||||||
|
|
||||||
|
#else |
||||||
|
void ft_pcie_setup(void *blob, bd_t *bd) |
||||||
|
{ |
||||||
|
} |
||||||
|
#endif |
||||||
|
|
||||||
|
void pci_init_board(void) |
||||||
|
{ |
||||||
|
} |
Loading…
Reference in new issue