blob: e54da86e3530d75a94e3358b8f7c6cb38f5cad33 [file] [log] [blame]
Tom Rini10e47792018-05-06 17:58:06 -04001/* SPDX-License-Identifier: GPL-2.0+ */
Simon Glass558ec672017-04-05 16:23:36 -06002/*
3 * (C) Copyright 2012,2015 Stephen Warren
Simon Glass558ec672017-04-05 16:23:36 -06004 */
5
6#ifndef _BCM2835_MSG_H
7#define _BCM2835_MSG_H
8
9/**
10 * bcm2835_power_on_module() - power on an SoC module
11 *
12 * @module: ID of module to power on (BCM2835_MBOX_POWER_DEVID_...)
Heinrich Schuchardt47b4c022022-01-19 18:05:50 +010013 * Return: 0 if OK, -EIO on error
Simon Glass558ec672017-04-05 16:23:36 -060014 */
15int bcm2835_power_on_module(u32 module);
16
Simon Glass13ddef82017-04-05 16:23:37 -060017/**
18 * bcm2835_get_mmc_clock() - get the frequency of the MMC clock
19 *
Jonathan Grayf98c4852018-03-17 16:15:48 +110020 * @clock_id: ID of clock to get frequency for
Heinrich Schuchardt47b4c022022-01-19 18:05:50 +010021 * Return: clock frequency, or -ve on error
Simon Glass13ddef82017-04-05 16:23:37 -060022 */
Jonathan Grayf98c4852018-03-17 16:15:48 +110023int bcm2835_get_mmc_clock(u32 clock_id);
Simon Glass13ddef82017-04-05 16:23:37 -060024
Simon Glass31efc382017-04-05 16:23:40 -060025/**
Vincent Fazioc9c95392021-09-14 13:19:19 -050026 * bcm2835_set_sdhost_clock() - determine if firmware controls sdhost cdiv
27 *
28 * @rate_hz: Input clock frequency
29 * @rate_1: Returns a clock frequency
30 * @rate_2: Returns a clock frequency
31 * @return 0 of OK, -EIO on error
32 */
33int bcm2835_set_sdhost_clock(u32 rate_hz, u32 *rate_1, u32 *rate_2);
34
35/**
Simon Glass31efc382017-04-05 16:23:40 -060036 * bcm2835_get_video_size() - get the current display size
37 *
38 * @widthp: Returns the width in pixels
39 * @heightp: Returns the height in pixels
Heinrich Schuchardt47b4c022022-01-19 18:05:50 +010040 * Return: 0 if OK, -ve on error
Simon Glass31efc382017-04-05 16:23:40 -060041 */
42int bcm2835_get_video_size(int *widthp, int *heightp);
43
Simon Glass929df012017-04-05 16:23:41 -060044/**
45 * bcm2835_set_video_params() - set the video parameters
46 *
47 * @widthp: Video width to request (returns the actual width selected)
48 * @heightp: Video height to request (returns the actual height selected)
49 * @depth_bpp: Requested bit depth
50 * @pixel_order: Pixel order to use (BCM2835_MBOX_PIXEL_ORDER_...)
51 * @alpha_mode: Alpha transparency mode to use (BCM2835_MBOX_ALPHA_MODE_...)
52 * @fb_basep: Returns base address of frame buffer
53 * @fb_sizep: Returns size of frame buffer
54 * @pitchp: Returns number of bytes in each frame buffer line
Heinrich Schuchardt47b4c022022-01-19 18:05:50 +010055 * Return: 0 if OK, -ve on error
Simon Glass929df012017-04-05 16:23:41 -060056 */
57int bcm2835_set_video_params(int *widthp, int *heightp, int depth_bpp,
58 int pixel_order, int alpha_mode, ulong *fb_basep,
59 ulong *fb_sizep, int *pitchp);
60
Nicolas Saenz Julienne2ae573d2020-06-29 18:37:22 +020061/**
62 * bcm2711_load_vl805_firmware() - get vl805's firmware loaded
63 *
Heinrich Schuchardt47b4c022022-01-19 18:05:50 +010064 * Return: 0 if OK, -EIO on error
Nicolas Saenz Julienne2ae573d2020-06-29 18:37:22 +020065 */
66int bcm2711_notify_vl805_reset(void);
67
Simon Glass558ec672017-04-05 16:23:36 -060068#endif