Lines Matching full:wrapper
19 * Generic Interface (GENI) Serial Engine (SE) Wrapper driver is introduced
20 * to manage GENI firmware based Qualcomm Universal Peripheral (QUP) Wrapper
21 * controller. QUP Wrapper is designed to support various serial bus protocols
39 * |QUP Wrapper |
55 * Figure 1: GENI based QUP Wrapper
67 * GENI SE Wrapper driver is structured into 2 parts:
69 * geni_wrapper represents QUP Wrapper controller. This part of the driver
70 * manages QUP Wrapper information such as hardware version, clock
74 * engine information such as clocks, containing QUP Wrapper, etc. This part
84 * @struct geni_wrapper - Data structure to represent the QUP Wrapper Core
85 * @dev: Device pointer of the QUP wrapper core
86 * @base: Base address of this instance of QUP wrapper core
176 * geni_se_get_qup_hw_version() - Read the QUP wrapper Hardware version
179 * Return: Hardware Version of the wrapper.
183 struct geni_wrapper *wrapper = se->wrapper; in geni_se_get_qup_hw_version() local
185 return readl_relaxed(wrapper->base + QUP_HW_VER_REG); in geni_se_get_qup_hw_version()
452 struct geni_wrapper *wrapper = se->wrapper; in geni_se_clks_off() local
455 clk_bulk_disable_unprepare(ARRAY_SIZE(wrapper->ahb_clks), in geni_se_clks_off()
456 wrapper->ahb_clks); in geni_se_clks_off()
485 struct geni_wrapper *wrapper = se->wrapper; in geni_se_clks_on() local
487 ret = clk_bulk_prepare_enable(ARRAY_SIZE(wrapper->ahb_clks), in geni_se_clks_on()
488 wrapper->ahb_clks); in geni_se_clks_on()
494 clk_bulk_disable_unprepare(ARRAY_SIZE(wrapper->ahb_clks), in geni_se_clks_on()
495 wrapper->ahb_clks); in geni_se_clks_on()
646 struct geni_wrapper *wrapper = se->wrapper; in geni_se_tx_dma_prep() local
649 if (!wrapper) in geni_se_tx_dma_prep()
652 *iova = dma_map_single(wrapper->dev, buf, len, DMA_TO_DEVICE); in geni_se_tx_dma_prep()
653 if (dma_mapping_error(wrapper->dev, *iova)) in geni_se_tx_dma_prep()
682 struct geni_wrapper *wrapper = se->wrapper; in geni_se_rx_dma_prep() local
685 if (!wrapper) in geni_se_rx_dma_prep()
688 *iova = dma_map_single(wrapper->dev, buf, len, DMA_FROM_DEVICE); in geni_se_rx_dma_prep()
689 if (dma_mapping_error(wrapper->dev, *iova)) in geni_se_rx_dma_prep()
715 struct geni_wrapper *wrapper = se->wrapper; in geni_se_tx_dma_unprep() local
717 if (iova && !dma_mapping_error(wrapper->dev, iova)) in geni_se_tx_dma_unprep()
718 dma_unmap_single(wrapper->dev, iova, len, DMA_TO_DEVICE); in geni_se_tx_dma_unprep()
732 struct geni_wrapper *wrapper = se->wrapper; in geni_se_rx_dma_unprep() local
734 if (iova && !dma_mapping_error(wrapper->dev, iova)) in geni_se_rx_dma_unprep()
735 dma_unmap_single(wrapper->dev, iova, len, DMA_FROM_DEVICE); in geni_se_rx_dma_unprep()
834 struct geni_wrapper *wrapper; in geni_se_probe() local
837 wrapper = devm_kzalloc(dev, sizeof(*wrapper), GFP_KERNEL); in geni_se_probe()
838 if (!wrapper) in geni_se_probe()
841 wrapper->dev = dev; in geni_se_probe()
843 wrapper->base = devm_ioremap_resource(dev, res); in geni_se_probe()
844 if (IS_ERR(wrapper->base)) in geni_se_probe()
845 return PTR_ERR(wrapper->base); in geni_se_probe()
848 wrapper->ahb_clks[0].id = "m-ahb"; in geni_se_probe()
849 wrapper->ahb_clks[1].id = "s-ahb"; in geni_se_probe()
850 ret = devm_clk_bulk_get(dev, NUM_AHB_CLKS, wrapper->ahb_clks); in geni_se_probe()
857 dev_set_drvdata(dev, wrapper); in geni_se_probe()