[zynq][gem] Move MIO cfg in the gem driver to the target cfg

This commit is contained in:
Chris Anderson
2014-10-10 13:39:09 -07:00
parent bd20280aa2
commit 3e6334670f
4 changed files with 38 additions and 60 deletions

View File

@@ -202,36 +202,6 @@ enum handler_return gem_int_handler(void *arg) {
return (resched) ? INT_RESCHEDULE : INT_NO_RESCHEDULE;
}
static void gem_io_init(void)
{
uint32_t pin_cfg;
zynq_slcr_unlock();
pin_cfg = MIO_L0_SEL | MIO_SPEED_FAST | MIO_IO_TYPE_HSTL | MIO_PULLUP | MIO_DISABLE_RCVR;
SLCR_REG(MIO_PIN_16) = pin_cfg;
SLCR_REG(MIO_PIN_17) = pin_cfg;
SLCR_REG(MIO_PIN_18) = pin_cfg;
SLCR_REG(MIO_PIN_19) = pin_cfg;
SLCR_REG(MIO_PIN_20) = pin_cfg;
SLCR_REG(MIO_PIN_21) = pin_cfg;
pin_cfg = MIO_L0_SEL | MIO_SPEED_FAST | MIO_IO_TYPE_HSTL | MIO_PULLUP;
SLCR_REG(MIO_PIN_22) = pin_cfg;
SLCR_REG(MIO_PIN_23) = pin_cfg;
SLCR_REG(MIO_PIN_24) = pin_cfg;
SLCR_REG(MIO_PIN_25) = pin_cfg;
SLCR_REG(MIO_PIN_26) = pin_cfg;
SLCR_REG(MIO_PIN_27) = pin_cfg;
pin_cfg = MIO_L3_SEL(0x4) | MIO_IO_TYPE_LVCMOS18 | MIO_PULLUP;
SLCR_REG(MIO_PIN_52) = pin_cfg;
SLCR_REG(MIO_PIN_53) = pin_cfg;
/* Enable VREF from GPIOB */
SLCR_REG(GPIOB_CTRL) = 0x1;
zynq_slcr_lock();
}
static bool wait_for_phy_idle(void)
{
int iters = 1000;
@@ -412,8 +382,8 @@ status_t gem_init(uintptr_t base, uint32_t dmasize)
DMA_CFG_TX_PKTBUF_MEMSZ_SEL | DMA_CFG_CSUM_GEN_OFFLOAD_EN |
DMA_CFG_AHB_FIXED_BURST_LEN(0x16);
/* Enable MDIO, tx, and rx */
gem_io_init();
/* Enable VREF from GPIOB */
SLCR_REG(GPIOB_CTRL) = 0x1;
ret = gem_phy_init();
if (!ret) {

View File

@@ -130,6 +130,8 @@ typedef struct {
uint32_t dci_clk;
uint32_t gem0_clk;
uint32_t gem0_rclk;
uint32_t gem1_clk;
uint32_t gem1_rclk;
uint32_t lqspi_clk;
uint32_t sdio_clk;
uint32_t uart_clk;

View File

@@ -100,18 +100,20 @@ const uint32_t zynq_mio_cfg[ZYNQ_MIO_CNT] = {
[13] = MIO_IO_TYPE_LVCMOS33,
[14] = MIO_IO_TYPE_LVCMOS33,
[15] = MIO_IO_TYPE_LVCMOS33,
[16] = MIO_L0_SEL | MIO_IO_TYPE_LVCMOS18,
[17] = MIO_L0_SEL | MIO_IO_TYPE_LVCMOS18,
[18] = MIO_L0_SEL | MIO_IO_TYPE_LVCMOS18,
[19] = MIO_L0_SEL | MIO_IO_TYPE_LVCMOS18,
[20] = MIO_L0_SEL | MIO_IO_TYPE_LVCMOS18,
[21] = MIO_L0_SEL | MIO_IO_TYPE_LVCMOS18,
[22] = MIO_TRI_ENABLE | MIO_L0_SEL | MIO_IO_TYPE_LVCMOS18,
[23] = MIO_TRI_ENABLE | MIO_L0_SEL | MIO_IO_TYPE_LVCMOS18,
[24] = MIO_TRI_ENABLE | MIO_L0_SEL | MIO_IO_TYPE_LVCMOS18,
[25] = MIO_TRI_ENABLE | MIO_L0_SEL | MIO_IO_TYPE_LVCMOS18,
[26] = MIO_TRI_ENABLE | MIO_L0_SEL | MIO_IO_TYPE_LVCMOS18,
[27] = MIO_TRI_ENABLE | MIO_L0_SEL | MIO_IO_TYPE_LVCMOS18,
// 16-21 gem0
[16] = MIO_L0_SEL | MIO_SPEED_FAST | MIO_IO_TYPE_HSTL | MIO_PULLUP | MIO_DISABLE_RCVR,
[17] = MIO_L0_SEL | MIO_SPEED_FAST | MIO_IO_TYPE_HSTL | MIO_PULLUP | MIO_DISABLE_RCVR,
[18] = MIO_L0_SEL | MIO_SPEED_FAST | MIO_IO_TYPE_HSTL | MIO_PULLUP | MIO_DISABLE_RCVR,
[19] = MIO_L0_SEL | MIO_SPEED_FAST | MIO_IO_TYPE_HSTL | MIO_PULLUP | MIO_DISABLE_RCVR,
[20] = MIO_L0_SEL | MIO_SPEED_FAST | MIO_IO_TYPE_HSTL | MIO_PULLUP | MIO_DISABLE_RCVR,
[21] = MIO_L0_SEL | MIO_SPEED_FAST | MIO_IO_TYPE_HSTL | MIO_PULLUP | MIO_DISABLE_RCVR,
// 22-27 gem0
[22] = MIO_L0_SEL | MIO_SPEED_FAST | MIO_IO_TYPE_HSTL | MIO_PULLUP,
[23] = MIO_L0_SEL | MIO_SPEED_FAST | MIO_IO_TYPE_HSTL | MIO_PULLUP,
[24] = MIO_L0_SEL | MIO_SPEED_FAST | MIO_IO_TYPE_HSTL | MIO_PULLUP,
[25] = MIO_L0_SEL | MIO_SPEED_FAST | MIO_IO_TYPE_HSTL | MIO_PULLUP,
[26] = MIO_L0_SEL | MIO_SPEED_FAST | MIO_IO_TYPE_HSTL | MIO_PULLUP,
[27] = MIO_L0_SEL | MIO_SPEED_FAST | MIO_IO_TYPE_HSTL | MIO_PULLUP,
[28] = MIO_L1_SEL | MIO_IO_TYPE_LVCMOS18,
[29] = MIO_TRI_ENABLE | MIO_L1_SEL | MIO_IO_TYPE_LVCMOS18,
[30] = MIO_L1_SEL | MIO_IO_TYPE_LVCMOS18,
@@ -136,8 +138,9 @@ const uint32_t zynq_mio_cfg[ZYNQ_MIO_CNT] = {
[49] = MIO_TRI_ENABLE | MIO_L3_SEL(0x7) | MIO_IO_TYPE_LVCMOS18,
[50] = MIO_TRI_ENABLE | MIO_IO_TYPE_LVCMOS18,
[51] = MIO_IO_TYPE_LVCMOS18,
[52] = MIO_L3_SEL(0x4) | MIO_IO_TYPE_LVCMOS18,
[53] = MIO_L3_SEL(0x4) | MIO_IO_TYPE_LVCMOS18,
// 52-53 gem0
[52] = MIO_L3_SEL(0x4) | MIO_IO_TYPE_LVCMOS18 | MIO_PULLUP,
[53] = MIO_L3_SEL(0x4) | MIO_IO_TYPE_LVCMOS18 | MIO_PULLUP,
};
const zynq_clk_cfg_t zynq_clk_cfg = {

View File

@@ -84,18 +84,20 @@ const uint32_t zynq_mio_cfg[ZYNQ_MIO_CNT] = {
[5] = MIO_L0_SEL | MIO_SPEED_FAST | MIO_IO_TYPE_LVCMOS33,
[6] = MIO_L0_SEL | MIO_SPEED_FAST | MIO_IO_TYPE_LVCMOS33,
[8] = MIO_L0_SEL | MIO_SPEED_FAST | MIO_IO_TYPE_LVCMOS33,
[16] = MIO_L0_SEL | MIO_SPEED_FAST | MIO_IO_TYPE_HSTL | MIO_DISABLE_RCVR,
[17] = MIO_L0_SEL | MIO_SPEED_FAST | MIO_IO_TYPE_HSTL | MIO_DISABLE_RCVR,
[18] = MIO_L0_SEL | MIO_SPEED_FAST | MIO_IO_TYPE_HSTL | MIO_DISABLE_RCVR,
[19] = MIO_L0_SEL | MIO_SPEED_FAST | MIO_IO_TYPE_HSTL | MIO_DISABLE_RCVR,
[20] = MIO_L0_SEL | MIO_SPEED_FAST | MIO_IO_TYPE_HSTL | MIO_DISABLE_RCVR,
[21] = MIO_L0_SEL | MIO_SPEED_FAST | MIO_IO_TYPE_HSTL | MIO_DISABLE_RCVR,
[22] = MIO_TRI_ENABLE | MIO_L0_SEL | MIO_SPEED_FAST | MIO_IO_TYPE_HSTL,
[23] = MIO_TRI_ENABLE | MIO_L0_SEL | MIO_SPEED_FAST | MIO_IO_TYPE_HSTL,
[24] = MIO_TRI_ENABLE | MIO_L0_SEL | MIO_SPEED_FAST | MIO_IO_TYPE_HSTL,
[25] = MIO_TRI_ENABLE | MIO_L0_SEL | MIO_SPEED_FAST | MIO_IO_TYPE_HSTL,
[26] = MIO_TRI_ENABLE | MIO_L0_SEL | MIO_SPEED_FAST | MIO_IO_TYPE_HSTL,
[27] = MIO_TRI_ENABLE | MIO_L0_SEL | MIO_SPEED_FAST | MIO_IO_TYPE_HSTL,
// 16-21 gem0
[16] = MIO_L0_SEL | MIO_SPEED_FAST | MIO_IO_TYPE_HSTL | MIO_PULLUP | MIO_DISABLE_RCVR,
[17] = MIO_L0_SEL | MIO_SPEED_FAST | MIO_IO_TYPE_HSTL | MIO_PULLUP | MIO_DISABLE_RCVR,
[18] = MIO_L0_SEL | MIO_SPEED_FAST | MIO_IO_TYPE_HSTL | MIO_PULLUP | MIO_DISABLE_RCVR,
[19] = MIO_L0_SEL | MIO_SPEED_FAST | MIO_IO_TYPE_HSTL | MIO_PULLUP | MIO_DISABLE_RCVR,
[20] = MIO_L0_SEL | MIO_SPEED_FAST | MIO_IO_TYPE_HSTL | MIO_PULLUP | MIO_DISABLE_RCVR,
[21] = MIO_L0_SEL | MIO_SPEED_FAST | MIO_IO_TYPE_HSTL | MIO_PULLUP | MIO_DISABLE_RCVR,
// 22-27 gem0
[22] = MIO_L0_SEL | MIO_SPEED_FAST | MIO_IO_TYPE_HSTL | MIO_PULLUP,
[23] = MIO_L0_SEL | MIO_SPEED_FAST | MIO_IO_TYPE_HSTL | MIO_PULLUP,
[24] = MIO_L0_SEL | MIO_SPEED_FAST | MIO_IO_TYPE_HSTL | MIO_PULLUP,
[25] = MIO_L0_SEL | MIO_SPEED_FAST | MIO_IO_TYPE_HSTL | MIO_PULLUP,
[26] = MIO_L0_SEL | MIO_SPEED_FAST | MIO_IO_TYPE_HSTL | MIO_PULLUP,
[27] = MIO_L0_SEL | MIO_SPEED_FAST | MIO_IO_TYPE_HSTL | MIO_PULLUP,
[28] = MIO_L1_SEL | MIO_SPEED_FAST | MIO_IO_TYPE_LVCMOS18,
[29] = MIO_L1_SEL | MIO_SPEED_FAST | MIO_IO_TYPE_LVCMOS18 | MIO_TRI_ENABLE,
[30] = MIO_L1_SEL | MIO_SPEED_FAST | MIO_IO_TYPE_LVCMOS18,
@@ -117,8 +119,9 @@ const uint32_t zynq_mio_cfg[ZYNQ_MIO_CNT] = {
[47] = MIO_TRI_ENABLE | MIO_IO_TYPE_LVCMOS18,
[48] = MIO_L3_SEL(0x7) | MIO_IO_TYPE_LVCMOS18,
[49] = MIO_TRI_ENABLE | MIO_L3_SEL(0x7) | MIO_IO_TYPE_LVCMOS18,
[52] = MIO_L3_SEL(0x4) | MIO_IO_TYPE_LVCMOS18,
[53] = MIO_L3_SEL(0x4) | MIO_IO_TYPE_LVCMOS18,
// 52-53 gem0
[52] = MIO_L3_SEL(0x4) | MIO_IO_TYPE_LVCMOS18 | MIO_PULLUP,
[53] = MIO_L3_SEL(0x4) | MIO_IO_TYPE_LVCMOS18 | MIO_PULLUP,
};
const zynq_clk_cfg_t zynq_clk_cfg = {