/* * Copyright (c) 2016, NVIDIA CORPORATION. All rights reserved. * * This program is free software; you can redistribute it and/or modify it * under the terms and conditions of the GNU General Public License, * version 2, as published by the Free Software Foundation. * * This program is distributed in the hope it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. */ #ifndef __SOC_TEGRA_BPMP_H #define __SOC_TEGRA_BPMP_H #include #include #include #include #include struct tegra_bpmp_clk; struct tegra_bpmp_soc { struct { struct { unsigned int offset; unsigned int count; unsigned int timeout; } cpu_tx, thread, cpu_rx; } channels; unsigned int num_resets; }; struct tegra_bpmp_mb_data { u32 code; u32 flags; u8 data[MSG_DATA_MIN_SZ]; } __packed; struct tegra_bpmp_channel { struct tegra_bpmp *bpmp; struct tegra_bpmp_mb_data *ib; struct tegra_bpmp_mb_data *ob; struct completion completion; struct tegra_ivc *ivc; }; typedef void (*tegra_bpmp_mrq_handler_t)(unsigned int mrq, struct tegra_bpmp_channel *channel, void *data); struct tegra_bpmp_mrq { struct list_head list; unsigned int mrq; tegra_bpmp_mrq_handler_t handler; void *data; }; struct tegra_bpmp { const struct tegra_bpmp_soc *soc; struct device *dev; struct { struct gen_pool *pool; dma_addr_t phys; void *virt; } tx, rx; struct { struct mbox_client client; struct mbox_chan *channel; } mbox; struct tegra_bpmp_channel *channels; unsigned int num_channels; struct { unsigned long *allocated; unsigned long *busy; unsigned int count; struct semaphore lock; } threaded; struct list_head mrqs; spinlock_t lock; struct tegra_bpmp_clk **clocks; unsigned int num_clocks; struct reset_controller_dev rstc; }; struct tegra_bpmp *tegra_bpmp_get(struct device *dev); void tegra_bpmp_put(struct tegra_bpmp *bpmp); struct tegra_bpmp_message { unsigned int mrq; struct { const void *data; size_t size; } tx; struct { void *data; size_t size; } rx; }; int tegra_bpmp_transfer_atomic(struct tegra_bpmp *bpmp, struct tegra_bpmp_message *msg); int tegra_bpmp_transfer(struct tegra_bpmp *bpmp, struct tegra_bpmp_message *msg); int tegra_bpmp_request_mrq(struct tegra_bpmp *bpmp, unsigned int mrq, tegra_bpmp_mrq_handler_t handler, void *data); void tegra_bpmp_free_mrq(struct tegra_bpmp *bpmp, unsigned int mrq, void *data); #if IS_ENABLED(CONFIG_CLK_TEGRA_BPMP) int tegra_bpmp_init_clocks(struct tegra_bpmp *bpmp); #else static inline int tegra_bpmp_init_clocks(struct tegra_bpmp *bpmp) { return 0; } #endif #if IS_ENABLED(CONFIG_RESET_TEGRA_BPMP) int tegra_bpmp_init_resets(struct tegra_bpmp *bpmp); #else static inline int tegra_bpmp_init_resets(struct tegra_bpmp *bpmp) { return 0; } #endif #endif /* __SOC_TEGRA_BPMP_H */ s-private-remove&id=f39908d3b1c45208c6898550167bfa766fdd6bb8'>include/dt-bindings/clock
ModeNameSize
-rw-r--r--alphascale,asm9260.h2695logplain
-rw-r--r--at91.h751logplain
-rw-r--r--ath79-clk.h479logplain
-rw-r--r--axis,artpec6-clkctrl.h1112logplain
-rw-r--r--bcm-cygnus.h3135logplain
-rw-r--r--bcm-ns2.h2915logplain
-rw-r--r--bcm-nsp.h2148logplain
-rw-r--r--bcm21664.h1984logplain
-rw-r--r--bcm281xx.h2456logplain
-rw-r--r--bcm2835-aux.h635logplain
-rw-r--r--bcm2835.h1962logplain
-rw-r--r--berlin2.h1034logplain
-rw-r--r--berlin2q.h695logplain
-rw-r--r--clps711x-clock.h718logplain
-rw-r--r--efm32-cmu.h1112logplain
-rw-r--r--exynos-audss-clk.h597logplain
-rw-r--r--exynos3250.h9083logplain
-rw-r--r--exynos4.h8284logplain
-rw-r--r--exynos4415.h9828logplain
-rw-r--r--exynos5250.h4616logplain
-rw-r--r--exynos5260-clk.h14876logplain
-rw-r--r--exynos5410.h1689logplain
-rw-r--r--exynos5420.h6857logplain
-rw-r--r--exynos5433.h45372logplain
-rw-r--r--exynos5440.h1141logplain
-rw-r--r--exynos7-clk.h5281logplain
-rw-r--r--gxbb-aoclkc.h2866logplain
-rw-r--r--gxbb-clkc.h592logplain
-rw-r--r--hi3516cv300-clock.h1668logplain
-rw-r--r--hi3519-clock.h1328logplain
-rw-r--r--hi3620-clock.h4496logplain
-rw-r--r--hi6220-clock.h4508logplain
-rw-r--r--hip04-clock.h1137logplain
-rw-r--r--histb-clock.h2012logplain
-rw-r--r--hix5hd2-clock.h2415logplain
-rw-r--r--imx1-clock.h1055logplain
-rw-r--r--imx21-clock.h2461logplain
-rw-r--r--imx27-clock.h3494logplain
-rw-r--r--imx5-clock.h7212logplain
-rw-r--r--imx6qdl-clock.h9593logplain
-rw-r--r--imx6sl-clock.h5849logplain
-rw-r--r--imx6sx-clock.h9099logplain
-rw-r--r--imx6ul-clock.h8203logplain
-rw-r--r--imx7d-clock.h15974logplain
-rw-r--r--jz4740-cgu.h1028logplain
-rw-r--r--jz4780-cgu.h2470logplain
-rw-r--r--lpc18xx-ccu.h2134logplain
-rw-r--r--lpc18xx-cgu.h1142logplain
-rw-r--r--lpc32xx-clock.h1633logplain
-rw-r--r--lsi,axm5516-clks.h974logplain
-rw-r--r--marvell,mmp2.h2022logplain
-rw-r--r--marvell,pxa168.h1654logplain
-rw-r--r--marvell,pxa1928.h1535logplain
-rw-r--r--marvell,pxa910.h1598logplain
-rw-r--r--maxim,max77620.h632logplain
-rw-r--r--maxim,max77686.h648logplain
-rw-r--r--maxim,max77802.h630logplain
-rw-r--r--meson8b-clkc.h523logplain
-rw-r--r--microchip,pic32-clock.h1150logplain
-rw-r--r--mpc512x-clock.h2236logplain
-rw-r--r--mt2701-clk.h13832logplain
-rw-r--r--mt8135-clk.h5641logplain
-rw-r--r--mt8173-clk.h9293logplain
-rw-r--r--oxsemi,ox810se.h1002logplain
-rw-r--r--oxsemi,ox820.h1203logplain
-rw-r--r--pistachio-clk.h4863logplain
-rw-r--r--pxa-clock.h1715logplain
-rw-r--r--qcom,gcc-apq8084.h12872logplain
-rw-r--r--qcom,gcc-ipq4019.h5423logplain
-rw-r--r--qcom,gcc-ipq806x.h8574logplain
-rw-r--r--qcom,gcc-mdm9615.h9497logplain
-rw-r--r--qcom,gcc-msm8660.h7932logplain
-rw-r--r--qcom,gcc-msm8916.h6190logplain
-rw-r--r--qcom,gcc-msm8960.h9342logplain
-rw-r--r--qcom,gcc-msm8974.h12340logplain
-rw-r--r--qcom,gcc-msm8994.h4858logplain
-rw-r--r--qcom,gcc-msm8996.h12575logplain
-rw-r--r--qcom,lcc-ipq806x.h899logplain
-rw-r--r--qcom,lcc-mdm9615.h1701logplain
-rw-r--r--qcom,lcc-msm8960.h1616logplain
-rw-r--r--qcom,mmcc-apq8084.h5722logplain
-rw-r--r--qcom,mmcc-msm8960.h4109logplain
-rw-r--r--qcom,mmcc-msm8974.h5223logplain
-rw-r--r--qcom,mmcc-msm8996.h9403logplain
-rw-r--r--qcom,rpmcc.h2101logplain
-rw-r--r--r7s72100-clock.h1218logplain
-rw-r--r--r8a73a4-clock.h1596logplain
-rw-r--r--r8a7740-clock.h1992logplain
-rw-r--r--r8a7743-cpg-mssr.h1269logplain
-rw-r--r--r8a7745-cpg-mssr.h1298logplain
-rw-r--r--r8a7778-clock.h1855logplain
-rw-r--r--r8a7779-clock.h1647logplain
-rw-r--r--r8a7790-clock.h4367logplain
-rw-r--r--r8a7791-clock.h4388logplain
-rw-r--r--r8a7792-clock.h2562logplain
-rw-r--r--r8a7793-clock.h4561logplain
-rw-r--r--r8a7794-clock.h3679logplain
-rw-r--r--r8a7795-cpg-mssr.h1890logplain
-rw-r--r--r8a7796-cpg-mssr.h2066logplain
-rw-r--r--renesas-cpg-mssr.h542logplain
-rw-r--r--rk1108-cru.h6605logplain
-rw-r--r--rk3036-cru.h4584logplain
-rw-r--r--rk3066a-cru.h1068logplain
-rw-r--r--rk3188-cru-common.h6105logplain
-rw-r--r--rk3188-cru.h1435logplain