Merge changes from topic "add-versal-soc-support" into integration
* changes: zynqmp: pm: Add LPD WDT clock to the pm_clock structure zynqmp: pm: Fix clock models and IDs of GEM-related clocks zynqmp: pm: Rename FPD WDT clock ID plat: xilinx: zynqmp: Correct syscnt freq for QEMU arm64: zynqmp: Add idcodes for new RFSoC silicons ZU48DR and ZU49DR arm64: zynqmp: Add id for new RFSoC device ZU39DR
This commit is contained in:
commit
2049b6f994
|
@ -189,6 +189,18 @@ static const struct {
|
|||
.id = 0x65,
|
||||
.name = "25DR",
|
||||
},
|
||||
{
|
||||
.id = 0x66,
|
||||
.name = "39DR",
|
||||
},
|
||||
{
|
||||
.id = 0x7b,
|
||||
.name = "48DR",
|
||||
},
|
||||
{
|
||||
.id = 0x7e,
|
||||
.name = "49DR",
|
||||
},
|
||||
};
|
||||
|
||||
#define ZYNQMP_PL_STATUS_BIT 9
|
||||
|
@ -338,7 +350,7 @@ unsigned int plat_get_syscnt_freq2(void)
|
|||
unsigned int ver = zynqmp_get_silicon_ver();
|
||||
|
||||
if (ver == ZYNQMP_CSU_VERSION_QEMU)
|
||||
return 50000000;
|
||||
return 65000000;
|
||||
else
|
||||
return mmio_read_32(IOU_SCNTRS_BASEFREQ);
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2014-2018, ARM Limited and Contributors. All rights reserved.
|
||||
* Copyright (c) 2014-2019, ARM Limited and Contributors. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
@ -330,6 +330,7 @@
|
|||
#define IOU_SLCR_GEM_CLK_CTRL (IOU_SLCR_BASEADDR + 0x308)
|
||||
#define IOU_SLCR_CAN_MIO_CTRL (IOU_SLCR_BASEADDR + 0x304)
|
||||
#define FPD_SLCR_WDT_CLK_SEL (FPD_SLCR_BASEADDR + 0x100)
|
||||
#define IOU_SLCR_WDT_CLK_SEL (IOU_SLCR_BASEADDR + 0x300)
|
||||
|
||||
/* Global general storage register base address */
|
||||
#define GGS_BASEADDR (0xFFD80030U)
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2018, ARM Limited and Contributors. All rights reserved.
|
||||
* Copyright (c) 2018-2019, ARM Limited and Contributors. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
@ -562,13 +562,13 @@ static struct pm_clock_node gpu_pp1_nodes[] = {
|
|||
},
|
||||
};
|
||||
|
||||
static struct pm_clock_node gem_nodes[] = {
|
||||
static struct pm_clock_node gem_ref_ungated_nodes[] = {
|
||||
GENERIC_MUX,
|
||||
{
|
||||
.type = TYPE_DIV1,
|
||||
.offset = 8,
|
||||
.width = 6,
|
||||
.clkflags = CLK_IS_BASIC,
|
||||
.clkflags = CLK_SET_RATE_NO_REPARENT | CLK_IS_BASIC,
|
||||
.typeflags = CLK_DIVIDER_ONE_BASED | CLK_DIVIDER_ALLOW_ZERO,
|
||||
.mult = NA_MULT,
|
||||
.div = NA_DIV,
|
||||
|
@ -577,11 +577,70 @@ static struct pm_clock_node gem_nodes[] = {
|
|||
.type = TYPE_DIV2,
|
||||
.offset = 16,
|
||||
.width = 6,
|
||||
.clkflags = CLK_IS_BASIC,
|
||||
.clkflags = CLK_SET_RATE_NO_REPARENT | CLK_IS_BASIC,
|
||||
.typeflags = CLK_DIVIDER_ONE_BASED | CLK_DIVIDER_ALLOW_ZERO,
|
||||
.mult = NA_MULT,
|
||||
.div = NA_DIV,
|
||||
},
|
||||
};
|
||||
|
||||
static struct pm_clock_node gem0_ref_nodes[] = {
|
||||
{
|
||||
.type = TYPE_MUX,
|
||||
.offset = 1,
|
||||
.width = 1,
|
||||
.clkflags = CLK_SET_RATE_PARENT |
|
||||
CLK_SET_RATE_NO_REPARENT |
|
||||
CLK_IS_BASIC,
|
||||
.typeflags = NA_TYPE_FLAGS,
|
||||
.mult = NA_MULT,
|
||||
.div = NA_DIV,
|
||||
},
|
||||
};
|
||||
|
||||
static struct pm_clock_node gem1_ref_nodes[] = {
|
||||
{
|
||||
.type = TYPE_MUX,
|
||||
.offset = 6,
|
||||
.width = 1,
|
||||
.clkflags = CLK_SET_RATE_PARENT |
|
||||
CLK_SET_RATE_NO_REPARENT |
|
||||
CLK_IS_BASIC,
|
||||
.typeflags = NA_TYPE_FLAGS,
|
||||
.mult = NA_MULT,
|
||||
.div = NA_DIV,
|
||||
},
|
||||
};
|
||||
|
||||
static struct pm_clock_node gem2_ref_nodes[] = {
|
||||
{
|
||||
.type = TYPE_MUX,
|
||||
.offset = 11,
|
||||
.width = 1,
|
||||
.clkflags = CLK_SET_RATE_PARENT |
|
||||
CLK_SET_RATE_NO_REPARENT |
|
||||
CLK_IS_BASIC,
|
||||
.typeflags = NA_TYPE_FLAGS,
|
||||
.mult = NA_MULT,
|
||||
.div = NA_DIV,
|
||||
},
|
||||
};
|
||||
|
||||
static struct pm_clock_node gem3_ref_nodes[] = {
|
||||
{
|
||||
.type = TYPE_MUX,
|
||||
.offset = 16,
|
||||
.width = 1,
|
||||
.clkflags = CLK_SET_RATE_PARENT |
|
||||
CLK_SET_RATE_NO_REPARENT |
|
||||
CLK_IS_BASIC,
|
||||
.typeflags = NA_TYPE_FLAGS,
|
||||
.mult = NA_MULT,
|
||||
.div = NA_DIV,
|
||||
},
|
||||
};
|
||||
|
||||
static struct pm_clock_node gem_tx_nodes[] = {
|
||||
{
|
||||
.type = TYPE_GATE,
|
||||
.offset = 25,
|
||||
|
@ -593,84 +652,12 @@ static struct pm_clock_node gem_nodes[] = {
|
|||
},
|
||||
};
|
||||
|
||||
static struct pm_clock_node gem0_tx_nodes[] = {
|
||||
{
|
||||
.type = TYPE_MUX,
|
||||
.offset = 1,
|
||||
.width = 1,
|
||||
.clkflags = CLK_SET_RATE_NO_REPARENT | CLK_IS_BASIC,
|
||||
.typeflags = NA_TYPE_FLAGS,
|
||||
.mult = NA_MULT,
|
||||
.div = NA_DIV,
|
||||
},
|
||||
static struct pm_clock_node gem_rx_nodes[] = {
|
||||
{
|
||||
.type = TYPE_GATE,
|
||||
.offset = 26,
|
||||
.width = PERIPH_GATE_WIDTH,
|
||||
.clkflags = CLK_SET_RATE_PARENT | CLK_IS_BASIC,
|
||||
.typeflags = NA_TYPE_FLAGS,
|
||||
.mult = NA_MULT,
|
||||
.div = NA_DIV,
|
||||
},
|
||||
};
|
||||
|
||||
static struct pm_clock_node gem1_tx_nodes[] = {
|
||||
{
|
||||
.type = TYPE_MUX,
|
||||
.offset = 6,
|
||||
.width = 1,
|
||||
.clkflags = CLK_SET_RATE_NO_REPARENT | CLK_IS_BASIC,
|
||||
.typeflags = NA_TYPE_FLAGS,
|
||||
.mult = NA_MULT,
|
||||
.div = NA_DIV,
|
||||
},
|
||||
{
|
||||
.type = TYPE_GATE,
|
||||
.offset = 26,
|
||||
.width = PERIPH_GATE_WIDTH,
|
||||
.clkflags = CLK_SET_RATE_PARENT | CLK_IS_BASIC,
|
||||
.typeflags = NA_TYPE_FLAGS,
|
||||
.mult = NA_MULT,
|
||||
.div = NA_DIV,
|
||||
},
|
||||
};
|
||||
|
||||
static struct pm_clock_node gem2_tx_nodes[] = {
|
||||
{
|
||||
.type = TYPE_MUX,
|
||||
.offset = 11,
|
||||
.width = 1,
|
||||
.clkflags = CLK_SET_RATE_NO_REPARENT | CLK_IS_BASIC,
|
||||
.typeflags = NA_TYPE_FLAGS,
|
||||
.mult = NA_MULT,
|
||||
.div = NA_DIV,
|
||||
},
|
||||
{
|
||||
.type = TYPE_GATE,
|
||||
.offset = 26,
|
||||
.width = PERIPH_GATE_WIDTH,
|
||||
.clkflags = CLK_SET_RATE_PARENT | CLK_IS_BASIC,
|
||||
.typeflags = NA_TYPE_FLAGS,
|
||||
.mult = NA_MULT,
|
||||
.div = NA_DIV,
|
||||
},
|
||||
};
|
||||
|
||||
static struct pm_clock_node gem3_tx_nodes[] = {
|
||||
{
|
||||
.type = TYPE_MUX,
|
||||
.offset = 16,
|
||||
.width = 1,
|
||||
.clkflags = CLK_SET_RATE_NO_REPARENT | CLK_IS_BASIC,
|
||||
.typeflags = NA_TYPE_FLAGS,
|
||||
.mult = NA_MULT,
|
||||
.div = NA_DIV,
|
||||
},
|
||||
{
|
||||
.type = TYPE_GATE,
|
||||
.offset = 26,
|
||||
.width = PERIPH_GATE_WIDTH,
|
||||
.clkflags = CLK_SET_RATE_PARENT | CLK_IS_BASIC,
|
||||
.clkflags = CLK_IS_BASIC,
|
||||
.typeflags = NA_TYPE_FLAGS,
|
||||
.mult = NA_MULT,
|
||||
.div = NA_DIV,
|
||||
|
@ -1442,8 +1429,8 @@ static struct pm_clock clocks[] = {
|
|||
.nodes = &generic_mux_div_unused_gate_nodes,
|
||||
.num_nodes = ARRAY_SIZE(generic_mux_div_unused_gate_nodes),
|
||||
},
|
||||
[CLK_GEM0_REF] = {
|
||||
.name = "gem0_ref",
|
||||
[CLK_GEM0_REF_UNGATED] = {
|
||||
.name = "gem0_ref_ung",
|
||||
.control_reg = CRL_APB_GEM0_REF_CTRL,
|
||||
.status_reg = 0,
|
||||
.parents = &((int32_t []) {
|
||||
|
@ -1453,11 +1440,11 @@ static struct pm_clock clocks[] = {
|
|||
CLK_DPLL_TO_LPD,
|
||||
CLK_NA_PARENT
|
||||
}),
|
||||
.nodes = &gem_nodes,
|
||||
.num_nodes = ARRAY_SIZE(gem_nodes),
|
||||
.nodes = &gem_ref_ungated_nodes,
|
||||
.num_nodes = ARRAY_SIZE(gem_ref_ungated_nodes),
|
||||
},
|
||||
[CLK_GEM1_REF] = {
|
||||
.name = "gem1_ref",
|
||||
[CLK_GEM1_REF_UNGATED] = {
|
||||
.name = "gem1_ref_ung",
|
||||
.control_reg = CRL_APB_GEM1_REF_CTRL,
|
||||
.status_reg = 0,
|
||||
.parents = &((int32_t []) {
|
||||
|
@ -1467,11 +1454,11 @@ static struct pm_clock clocks[] = {
|
|||
CLK_DPLL_TO_LPD,
|
||||
CLK_NA_PARENT
|
||||
}),
|
||||
.nodes = &gem_nodes,
|
||||
.num_nodes = ARRAY_SIZE(gem_nodes),
|
||||
.nodes = &gem_ref_ungated_nodes,
|
||||
.num_nodes = ARRAY_SIZE(gem_ref_ungated_nodes),
|
||||
},
|
||||
[CLK_GEM2_REF] = {
|
||||
.name = "gem2_ref",
|
||||
[CLK_GEM2_REF_UNGATED] = {
|
||||
.name = "gem2_ref_ung",
|
||||
.control_reg = CRL_APB_GEM2_REF_CTRL,
|
||||
.status_reg = 0,
|
||||
.parents = &((int32_t []) {
|
||||
|
@ -1481,11 +1468,11 @@ static struct pm_clock clocks[] = {
|
|||
CLK_DPLL_TO_LPD,
|
||||
CLK_NA_PARENT
|
||||
}),
|
||||
.nodes = &gem_nodes,
|
||||
.num_nodes = ARRAY_SIZE(gem_nodes),
|
||||
.nodes = &gem_ref_ungated_nodes,
|
||||
.num_nodes = ARRAY_SIZE(gem_ref_ungated_nodes),
|
||||
},
|
||||
[CLK_GEM3_REF] = {
|
||||
.name = "gem3_ref",
|
||||
[CLK_GEM3_REF_UNGATED] = {
|
||||
.name = "gem3_ref_ung",
|
||||
.control_reg = CRL_APB_GEM3_REF_CTRL,
|
||||
.status_reg = 0,
|
||||
.parents = &((int32_t []) {
|
||||
|
@ -1495,8 +1482,60 @@ static struct pm_clock clocks[] = {
|
|||
CLK_DPLL_TO_LPD,
|
||||
CLK_NA_PARENT
|
||||
}),
|
||||
.nodes = &gem_nodes,
|
||||
.num_nodes = ARRAY_SIZE(gem_nodes),
|
||||
.nodes = &gem_ref_ungated_nodes,
|
||||
.num_nodes = ARRAY_SIZE(gem_ref_ungated_nodes),
|
||||
},
|
||||
[CLK_GEM0_REF] = {
|
||||
.name = "gem0_ref",
|
||||
.control_reg = IOU_SLCR_GEM_CLK_CTRL,
|
||||
.status_reg = 0,
|
||||
.parents = &((int32_t []) {
|
||||
CLK_GEM0_REF_UNGATED |
|
||||
(PARENT_CLK_NODE3 << CLK_PARENTS_ID_LEN),
|
||||
EXT_CLK_GEM0_TX_EMIO | CLK_EXTERNAL_PARENT,
|
||||
CLK_NA_PARENT
|
||||
}),
|
||||
.nodes = &gem0_ref_nodes,
|
||||
.num_nodes = ARRAY_SIZE(gem0_ref_nodes),
|
||||
},
|
||||
[CLK_GEM1_REF] = {
|
||||
.name = "gem1_ref",
|
||||
.control_reg = IOU_SLCR_GEM_CLK_CTRL,
|
||||
.status_reg = 0,
|
||||
.parents = &((int32_t []) {
|
||||
CLK_GEM1_REF_UNGATED |
|
||||
(PARENT_CLK_NODE3 << CLK_PARENTS_ID_LEN),
|
||||
EXT_CLK_GEM1_TX_EMIO | CLK_EXTERNAL_PARENT,
|
||||
CLK_NA_PARENT
|
||||
}),
|
||||
.nodes = &gem1_ref_nodes,
|
||||
.num_nodes = ARRAY_SIZE(gem1_ref_nodes),
|
||||
},
|
||||
[CLK_GEM2_REF] = {
|
||||
.name = "gem2_ref",
|
||||
.control_reg = IOU_SLCR_GEM_CLK_CTRL,
|
||||
.status_reg = 0,
|
||||
.parents = &((int32_t []) {
|
||||
CLK_GEM2_REF_UNGATED |
|
||||
(PARENT_CLK_NODE3 << CLK_PARENTS_ID_LEN),
|
||||
EXT_CLK_GEM2_TX_EMIO | CLK_EXTERNAL_PARENT,
|
||||
CLK_NA_PARENT
|
||||
}),
|
||||
.nodes = &gem2_ref_nodes,
|
||||
.num_nodes = ARRAY_SIZE(gem2_ref_nodes),
|
||||
},
|
||||
[CLK_GEM3_REF] = {
|
||||
.name = "gem3_ref",
|
||||
.control_reg = IOU_SLCR_GEM_CLK_CTRL,
|
||||
.status_reg = 0,
|
||||
.parents = &((int32_t []) {
|
||||
CLK_GEM3_REF_UNGATED |
|
||||
(PARENT_CLK_NODE3 << CLK_PARENTS_ID_LEN),
|
||||
EXT_CLK_GEM3_TX_EMIO | CLK_EXTERNAL_PARENT,
|
||||
CLK_NA_PARENT
|
||||
}),
|
||||
.nodes = &gem3_ref_nodes,
|
||||
.num_nodes = ARRAY_SIZE(gem3_ref_nodes),
|
||||
},
|
||||
[CLK_USB0_BUS_REF] = {
|
||||
.name = "usb0_bus_ref",
|
||||
|
@ -1960,69 +1999,93 @@ static struct pm_clock clocks[] = {
|
|||
.nodes = &generic_domain_crossing_nodes,
|
||||
.num_nodes = ARRAY_SIZE(generic_domain_crossing_nodes),
|
||||
},
|
||||
/*
|
||||
* This clock control requires different registers for mux and gate.
|
||||
* Use control and status registers for the same.
|
||||
*/
|
||||
[CLK_GEM0_TX] = {
|
||||
.name = "gem0_tx",
|
||||
.control_reg = IOU_SLCR_GEM_CLK_CTRL,
|
||||
.status_reg = CRL_APB_GEM0_REF_CTRL,
|
||||
.control_reg = CRL_APB_GEM0_REF_CTRL,
|
||||
.status_reg = 0,
|
||||
.parents = &((int32_t []) {
|
||||
CLK_GEM0_REF | (PARENT_CLK_NODE3 << CLK_PARENTS_ID_LEN),
|
||||
EXT_CLK_GEM0_EMIO | CLK_EXTERNAL_PARENT,
|
||||
CLK_GEM0_REF,
|
||||
CLK_NA_PARENT
|
||||
}),
|
||||
.nodes = &gem0_tx_nodes,
|
||||
.num_nodes = ARRAY_SIZE(gem0_tx_nodes),
|
||||
.nodes = &gem_tx_nodes,
|
||||
.num_nodes = ARRAY_SIZE(gem_tx_nodes),
|
||||
},
|
||||
/*
|
||||
* This clock control requires different registers for mux and gate.
|
||||
* Use control and status registers for the same.
|
||||
*/
|
||||
[CLK_GEM1_TX] = {
|
||||
.name = "gem1_tx",
|
||||
.control_reg = IOU_SLCR_GEM_CLK_CTRL,
|
||||
.status_reg = CRL_APB_GEM1_REF_CTRL,
|
||||
.control_reg = CRL_APB_GEM1_REF_CTRL,
|
||||
.status_reg = 0,
|
||||
.parents = &((int32_t []) {
|
||||
CLK_GEM1_REF | (PARENT_CLK_NODE3 << CLK_PARENTS_ID_LEN),
|
||||
EXT_CLK_GEM1_EMIO | CLK_EXTERNAL_PARENT,
|
||||
CLK_GEM1_REF,
|
||||
CLK_NA_PARENT
|
||||
}),
|
||||
.nodes = &gem1_tx_nodes,
|
||||
.num_nodes = ARRAY_SIZE(gem1_tx_nodes),
|
||||
.nodes = &gem_tx_nodes,
|
||||
.num_nodes = ARRAY_SIZE(gem_tx_nodes),
|
||||
},
|
||||
/*
|
||||
* This clock control requires different registers for mux and gate.
|
||||
* Use control and status registers for the same.
|
||||
*/
|
||||
[CLK_GEM2_TX] = {
|
||||
.name = "gem2_tx",
|
||||
.control_reg = IOU_SLCR_GEM_CLK_CTRL,
|
||||
.status_reg = CRL_APB_GEM2_REF_CTRL,
|
||||
.control_reg = CRL_APB_GEM2_REF_CTRL,
|
||||
.status_reg = 0,
|
||||
.parents = &((int32_t []) {
|
||||
CLK_GEM2_REF | (PARENT_CLK_NODE3 << CLK_PARENTS_ID_LEN),
|
||||
EXT_CLK_GEM2_EMIO | CLK_EXTERNAL_PARENT,
|
||||
CLK_GEM2_REF,
|
||||
CLK_NA_PARENT
|
||||
}),
|
||||
.nodes = &gem2_tx_nodes,
|
||||
.num_nodes = ARRAY_SIZE(gem2_tx_nodes),
|
||||
.nodes = &gem_tx_nodes,
|
||||
.num_nodes = ARRAY_SIZE(gem_tx_nodes),
|
||||
},
|
||||
/*
|
||||
* This clock control requires different registers for mux and gate.
|
||||
* Use control and status registers for the same.
|
||||
*/
|
||||
[CLK_GEM3_TX] = {
|
||||
.name = "gem3_tx",
|
||||
.control_reg = IOU_SLCR_GEM_CLK_CTRL,
|
||||
.status_reg = CRL_APB_GEM3_REF_CTRL,
|
||||
.control_reg = CRL_APB_GEM3_REF_CTRL,
|
||||
.status_reg = 0,
|
||||
.parents = &((int32_t []) {
|
||||
CLK_GEM3_REF | (PARENT_CLK_NODE3 << CLK_PARENTS_ID_LEN),
|
||||
EXT_CLK_GEM3_EMIO | CLK_EXTERNAL_PARENT,
|
||||
CLK_GEM3_REF,
|
||||
CLK_NA_PARENT
|
||||
}),
|
||||
.nodes = &gem3_tx_nodes,
|
||||
.num_nodes = ARRAY_SIZE(gem3_tx_nodes),
|
||||
.nodes = &gem_tx_nodes,
|
||||
.num_nodes = ARRAY_SIZE(gem_tx_nodes),
|
||||
},
|
||||
[CLK_GEM0_RX] = {
|
||||
.name = "gem0_rx",
|
||||
.control_reg = CRL_APB_GEM0_REF_CTRL,
|
||||
.status_reg = 0,
|
||||
.parents = &((int32_t []) {
|
||||
EXT_CLK_GEM0_RX_EMIO | CLK_EXTERNAL_PARENT,
|
||||
CLK_NA_PARENT
|
||||
}),
|
||||
.nodes = &gem_rx_nodes,
|
||||
.num_nodes = ARRAY_SIZE(gem_rx_nodes),
|
||||
},
|
||||
[CLK_GEM1_RX] = {
|
||||
.name = "gem1_rx",
|
||||
.control_reg = CRL_APB_GEM1_REF_CTRL,
|
||||
.status_reg = 0,
|
||||
.parents = &((int32_t []) {
|
||||
EXT_CLK_GEM1_RX_EMIO | CLK_EXTERNAL_PARENT,
|
||||
CLK_NA_PARENT
|
||||
}),
|
||||
.nodes = &gem_rx_nodes,
|
||||
.num_nodes = ARRAY_SIZE(gem_rx_nodes),
|
||||
},
|
||||
[CLK_GEM2_RX] = {
|
||||
.name = "gem2_rx",
|
||||
.control_reg = CRL_APB_GEM2_REF_CTRL,
|
||||
.status_reg = 0,
|
||||
.parents = &((int32_t []) {
|
||||
EXT_CLK_GEM2_RX_EMIO | CLK_EXTERNAL_PARENT,
|
||||
CLK_NA_PARENT
|
||||
}),
|
||||
.nodes = &gem_rx_nodes,
|
||||
.num_nodes = ARRAY_SIZE(gem_rx_nodes),
|
||||
},
|
||||
[CLK_GEM3_RX] = {
|
||||
.name = "gem3_rx",
|
||||
.control_reg = CRL_APB_GEM3_REF_CTRL,
|
||||
.status_reg = 0,
|
||||
.parents = &((int32_t []) {
|
||||
EXT_CLK_GEM3_RX_EMIO | CLK_EXTERNAL_PARENT,
|
||||
CLK_NA_PARENT
|
||||
}),
|
||||
.nodes = &gem_rx_nodes,
|
||||
.num_nodes = ARRAY_SIZE(gem_rx_nodes),
|
||||
},
|
||||
[CLK_ACPU_HALF] = {
|
||||
.name = "acpu_half",
|
||||
|
@ -2035,8 +2098,8 @@ static struct pm_clock clocks[] = {
|
|||
.nodes = &acpu_half_nodes,
|
||||
.num_nodes = ARRAY_SIZE(acpu_half_nodes),
|
||||
},
|
||||
[CLK_WDT] = {
|
||||
.name = "wdt",
|
||||
[CLK_FPD_WDT] = {
|
||||
.name = "fpd_wdt",
|
||||
.control_reg = FPD_SLCR_WDT_CLK_SEL,
|
||||
.status_reg = 0,
|
||||
.parents = &((int32_t []) {
|
||||
|
@ -2135,6 +2198,18 @@ static struct pm_clock clocks[] = {
|
|||
.nodes = &can1_nodes,
|
||||
.num_nodes = ARRAY_SIZE(can1_nodes),
|
||||
},
|
||||
[CLK_LPD_WDT] = {
|
||||
.name = "lpd_wdt",
|
||||
.control_reg = IOU_SLCR_WDT_CLK_SEL,
|
||||
.status_reg = 0,
|
||||
.parents = &((int32_t []) {
|
||||
CLK_LPD_LSBUS,
|
||||
EXT_CLK_SWDT1 | CLK_EXTERNAL_PARENT,
|
||||
CLK_NA_PARENT
|
||||
}),
|
||||
.nodes = &wdt_nodes,
|
||||
.num_nodes = ARRAY_SIZE(wdt_nodes),
|
||||
},
|
||||
};
|
||||
|
||||
static struct pm_ext_clock ext_clocks[] = {
|
||||
|
@ -2159,17 +2234,29 @@ static struct pm_ext_clock ext_clocks[] = {
|
|||
[EXT_CLK_INDEX(EXT_CLK_SWDT1)] = {
|
||||
.name = "swdt1_ext_clk",
|
||||
},
|
||||
[EXT_CLK_INDEX(EXT_CLK_GEM0_EMIO)] = {
|
||||
.name = "gem0_emio_clk",
|
||||
[EXT_CLK_INDEX(EXT_CLK_GEM0_TX_EMIO)] = {
|
||||
.name = "gem0_tx_ext",
|
||||
},
|
||||
[EXT_CLK_INDEX(EXT_CLK_GEM1_EMIO)] = {
|
||||
.name = "gem1_emio_clk",
|
||||
[EXT_CLK_INDEX(EXT_CLK_GEM1_TX_EMIO)] = {
|
||||
.name = "gem1_tx_ext",
|
||||
},
|
||||
[EXT_CLK_INDEX(EXT_CLK_GEM2_EMIO)] = {
|
||||
.name = "gem2_emio_clk",
|
||||
[EXT_CLK_INDEX(EXT_CLK_GEM2_TX_EMIO)] = {
|
||||
.name = "gem2_tx_ext",
|
||||
},
|
||||
[EXT_CLK_INDEX(EXT_CLK_GEM3_EMIO)] = {
|
||||
.name = "gem3_emio_clk",
|
||||
[EXT_CLK_INDEX(EXT_CLK_GEM3_TX_EMIO)] = {
|
||||
.name = "gem3_tx_ext",
|
||||
},
|
||||
[EXT_CLK_INDEX(EXT_CLK_GEM0_RX_EMIO)] = {
|
||||
.name = "gem0_rx_ext",
|
||||
},
|
||||
[EXT_CLK_INDEX(EXT_CLK_GEM1_RX_EMIO)] = {
|
||||
.name = "gem1_rx_ext",
|
||||
},
|
||||
[EXT_CLK_INDEX(EXT_CLK_GEM2_RX_EMIO)] = {
|
||||
.name = "gem2_rx_ext",
|
||||
},
|
||||
[EXT_CLK_INDEX(EXT_CLK_GEM3_RX_EMIO)] = {
|
||||
.name = "gem3_rx_ext",
|
||||
},
|
||||
[EXT_CLK_INDEX(EXT_CLK_MIO50_OR_MIO51)] = {
|
||||
.name = "mio_clk_50_51",
|
||||
|
@ -2268,7 +2355,6 @@ static uint32_t pm_clk_invalid_list[] = {CLK_USB0, CLK_USB1, CLK_CSU_SPB,
|
|||
CLK_TOPSW_LSBUS,
|
||||
CLK_GTGREF0_REF,
|
||||
CLK_LPD_SWITCH,
|
||||
CLK_LPD_LSBUS,
|
||||
CLK_CPU_R5,
|
||||
CLK_CPU_R5_CORE,
|
||||
CLK_CSU_SPB,
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2018, ARM Limited and Contributors. All rights reserved.
|
||||
* Copyright (c) 2018-2019, ARM Limited and Contributors. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
@ -102,14 +102,14 @@ enum clock_id {
|
|||
CLK_IOU_SWITCH,
|
||||
CLK_GEM_TSU_REF,
|
||||
CLK_GEM_TSU,
|
||||
CLK_GEM0_REF,
|
||||
CLK_GEM1_REF,
|
||||
CLK_GEM2_REF,
|
||||
CLK_GEM3_REF,
|
||||
CLK_GEM0_TX,
|
||||
CLK_GEM1_TX,
|
||||
CLK_GEM2_TX,
|
||||
CLK_GEM3_TX,
|
||||
CLK_GEM0_RX,
|
||||
CLK_GEM1_RX,
|
||||
CLK_GEM2_RX,
|
||||
CLK_GEM3_RX,
|
||||
CLK_QSPI_REF,
|
||||
CLK_SDIO0_REF,
|
||||
CLK_SDIO1_REF,
|
||||
|
@ -132,7 +132,7 @@ enum clock_id {
|
|||
CLK_PL1_REF,
|
||||
CLK_PL2_REF,
|
||||
CLK_PL3_REF,
|
||||
CLK_WDT,
|
||||
CLK_FPD_WDT,
|
||||
CLK_IOPLL_INT,
|
||||
CLK_IOPLL_PRE_SRC,
|
||||
CLK_IOPLL_HALF,
|
||||
|
@ -161,6 +161,15 @@ enum clock_id {
|
|||
CLK_CAN0_MIO,
|
||||
CLK_CAN1_MIO,
|
||||
CLK_ACPU_FULL,
|
||||
CLK_GEM0_REF,
|
||||
CLK_GEM1_REF,
|
||||
CLK_GEM2_REF,
|
||||
CLK_GEM3_REF,
|
||||
CLK_GEM0_REF_UNGATED,
|
||||
CLK_GEM1_REF_UNGATED,
|
||||
CLK_GEM2_REF_UNGATED,
|
||||
CLK_GEM3_REF_UNGATED,
|
||||
CLK_LPD_WDT,
|
||||
END_OF_OUTPUT_CLKS,
|
||||
};
|
||||
|
||||
|
@ -175,10 +184,14 @@ enum {
|
|||
EXT_CLK_GT_CRX_REF,
|
||||
EXT_CLK_SWDT0,
|
||||
EXT_CLK_SWDT1,
|
||||
EXT_CLK_GEM0_EMIO,
|
||||
EXT_CLK_GEM1_EMIO,
|
||||
EXT_CLK_GEM2_EMIO,
|
||||
EXT_CLK_GEM3_EMIO,
|
||||
EXT_CLK_GEM0_TX_EMIO,
|
||||
EXT_CLK_GEM1_TX_EMIO,
|
||||
EXT_CLK_GEM2_TX_EMIO,
|
||||
EXT_CLK_GEM3_TX_EMIO,
|
||||
EXT_CLK_GEM0_RX_EMIO,
|
||||
EXT_CLK_GEM1_RX_EMIO,
|
||||
EXT_CLK_GEM2_RX_EMIO,
|
||||
EXT_CLK_GEM3_RX_EMIO,
|
||||
EXT_CLK_MIO50_OR_MIO51,
|
||||
EXT_CLK_MIO0,
|
||||
EXT_CLK_MIO1,
|
||||
|
|
Loading…
Reference in New Issue