Lines Matching +full:zynq +full:- +full:7000

1 /*-
2 * SPDX-License-Identifier: BSD-2-Clause
30 * Zynq-700 SLCR driver. Provides hooks for cpu_reset and PL control stuff.
33 * Reference: Zynq-7000 All Programmable SoC Technical Reference Manual.
66 #define ZSLCR_LOCK(sc) mtx_lock(&(sc)->sc_mtx)
67 #define ZSLCR_UNLOCK(sc) mtx_unlock(&(sc)->sc_mtx)
69 mtx_init(&(sc)->sc_mtx, device_get_nameunit((sc)->dev), \
71 #define ZSLCR_LOCK_DESTROY(_sc) mtx_destroy(&_sc->sc_mtx);
73 #define RD4(sc, off) (bus_read_4((sc)->mem_res, (off)))
74 #define WR4(sc, off, val) (bus_write_4((sc)->mem_res, (off), (val)))
78 SYSCTL_NODE(_hw, OID_AUTO, zynq, CTLFLAG_RD | CTLFLAG_MPSAFE, 0,
79 "Xilinx Zynq-7000");
83 "Zynq boot mode");
87 "Zynq PSS IDCODE");
91 0, "Zynq REBOOT_STATUS register");
95 0, "Zynq PS_CLK Frequency");
99 0, "Zynq IO PLL Frequency");
103 &arm_pll_frequency, 0, "Zynq ARM PLL Frequency");
107 &ddr_pll_frequency, 0, "Zynq DDR PLL Frequency");
133 /* This has something to do with a work-around so the fsbl will load in zy7_slcr_cpu_reset()
134 * the bitstream after soft-reboot. It's very important. in zy7_slcr_cpu_reset()
174 /* After PL configuration, enable level shifters and deassert top-level
216 return (-1); in cgem_set_ref_clk()
231 return (-1); in cgem_set_ref_clk()
263 return (-1); in zy7_pl_fclk_set_source()
292 return (-1); in zy7_pl_fclk_get_source()
320 return (-1); in zy7_pl_fclk_set_freq()
337 return (-1); in zy7_pl_fclk_set_freq()
353 return (-1); in zy7_pl_fclk_set_freq()
387 return (-1); in zy7_pl_fclk_get_freq()
404 return (-1); in zy7_pl_fclk_get_freq()
438 return (-1); in zy7_pl_fclk_enable()
462 return (-1); in zy7_pl_fclk_disable()
487 return (-1); in zy7_pl_fclk_enabled()
504 return (-1); in zy7_pl_level_shifters_enabled()
553 device_set_desc(dev, "Zynq-7000 slcr block"); in zy7_slcr_probe()
570 "JTAG", "Quad-SPI", "NOR", "(3?)", in zy7_slcr_attach()
578 sc->dev = dev; in zy7_slcr_attach()
584 sc->mem_res = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &rid, in zy7_slcr_attach()
586 if (sc->mem_res == NULL) { in zy7_slcr_attach()
604 "family: 0x%x sub-family: 0x%x rev: 0x%x", in zy7_slcr_attach()
621 if (OF_getencprop(node, "clock-frequency", &cell, sizeof(cell)) > 0) in zy7_slcr_attach()
683 if (sc->mem_res != NULL) in zy7_slcr_detach()
685 rman_get_rid(sc->mem_res), sc->mem_res); in zy7_slcr_detach()