Lines Matching full:wrapper
18 * Generic Interface (GENI) Serial Engine (SE) Wrapper driver is introduced
19 * to manage GENI firmware based Qualcomm Universal Peripheral (QUP) Wrapper
20 * controller. QUP Wrapper is designed to support various serial bus protocols
38 * |QUP Wrapper |
54 * Figure 1: GENI based QUP Wrapper
66 * GENI SE Wrapper driver is structured into 2 parts:
68 * geni_wrapper represents QUP Wrapper controller. This part of the driver
69 * manages QUP Wrapper information such as hardware version, clock
73 * engine information such as clocks, containing QUP Wrapper, etc. This part
83 * @struct geni_wrapper - Data structure to represent the QUP Wrapper Core
84 * @dev: Device pointer of the QUP wrapper core
85 * @base: Base address of this instance of QUP wrapper core
172 * geni_se_get_qup_hw_version() - Read the QUP wrapper Hardware version
175 * Return: Hardware Version of the wrapper.
179 struct geni_wrapper *wrapper = se->wrapper; in geni_se_get_qup_hw_version() local
181 return readl_relaxed(wrapper->base + QUP_HW_VER_REG); in geni_se_get_qup_hw_version()
434 struct geni_wrapper *wrapper = se->wrapper; in geni_se_clks_off() local
437 clk_bulk_disable_unprepare(ARRAY_SIZE(wrapper->ahb_clks), in geni_se_clks_off()
438 wrapper->ahb_clks); in geni_se_clks_off()
464 struct geni_wrapper *wrapper = se->wrapper; in geni_se_clks_on() local
466 ret = clk_bulk_prepare_enable(ARRAY_SIZE(wrapper->ahb_clks), in geni_se_clks_on()
467 wrapper->ahb_clks); in geni_se_clks_on()
473 clk_bulk_disable_unprepare(ARRAY_SIZE(wrapper->ahb_clks), in geni_se_clks_on()
474 wrapper->ahb_clks); in geni_se_clks_on()
622 struct geni_wrapper *wrapper = se->wrapper; in geni_se_tx_dma_prep() local
625 *iova = dma_map_single(wrapper->dev, buf, len, DMA_TO_DEVICE); in geni_se_tx_dma_prep()
626 if (dma_mapping_error(wrapper->dev, *iova)) in geni_se_tx_dma_prep()
655 struct geni_wrapper *wrapper = se->wrapper; in geni_se_rx_dma_prep() local
658 *iova = dma_map_single(wrapper->dev, buf, len, DMA_FROM_DEVICE); in geni_se_rx_dma_prep()
659 if (dma_mapping_error(wrapper->dev, *iova)) in geni_se_rx_dma_prep()
685 struct geni_wrapper *wrapper = se->wrapper; in geni_se_tx_dma_unprep() local
687 if (iova && !dma_mapping_error(wrapper->dev, iova)) in geni_se_tx_dma_unprep()
688 dma_unmap_single(wrapper->dev, iova, len, DMA_TO_DEVICE); in geni_se_tx_dma_unprep()
702 struct geni_wrapper *wrapper = se->wrapper; in geni_se_rx_dma_unprep() local
704 if (iova && !dma_mapping_error(wrapper->dev, iova)) in geni_se_rx_dma_unprep()
705 dma_unmap_single(wrapper->dev, iova, len, DMA_FROM_DEVICE); in geni_se_rx_dma_unprep()
713 struct geni_wrapper *wrapper; in geni_se_probe() local
716 wrapper = devm_kzalloc(dev, sizeof(*wrapper), GFP_KERNEL); in geni_se_probe()
717 if (!wrapper) in geni_se_probe()
720 wrapper->dev = dev; in geni_se_probe()
722 wrapper->base = devm_ioremap_resource(dev, res); in geni_se_probe()
723 if (IS_ERR(wrapper->base)) in geni_se_probe()
724 return PTR_ERR(wrapper->base); in geni_se_probe()
726 wrapper->ahb_clks[0].id = "m-ahb"; in geni_se_probe()
727 wrapper->ahb_clks[1].id = "s-ahb"; in geni_se_probe()
728 ret = devm_clk_bulk_get(dev, NUM_AHB_CLKS, wrapper->ahb_clks); in geni_se_probe()
734 dev_set_drvdata(dev, wrapper); in geni_se_probe()