meson-canvas.h (1911B)
1/* SPDX-License-Identifier: GPL-2.0+ */ 2/* 3 * Copyright (C) 2018 BayLibre, SAS 4 */ 5#ifndef __SOC_MESON_CANVAS_H 6#define __SOC_MESON_CANVAS_H 7 8#include <linux/kernel.h> 9 10#define MESON_CANVAS_WRAP_NONE 0x00 11#define MESON_CANVAS_WRAP_X 0x01 12#define MESON_CANVAS_WRAP_Y 0x02 13 14#define MESON_CANVAS_BLKMODE_LINEAR 0x00 15#define MESON_CANVAS_BLKMODE_32x32 0x01 16#define MESON_CANVAS_BLKMODE_64x64 0x02 17 18#define MESON_CANVAS_ENDIAN_SWAP16 0x1 19#define MESON_CANVAS_ENDIAN_SWAP32 0x3 20#define MESON_CANVAS_ENDIAN_SWAP64 0x7 21#define MESON_CANVAS_ENDIAN_SWAP128 0xf 22 23struct device; 24struct meson_canvas; 25 26/** 27 * meson_canvas_get() - get a canvas provider instance 28 * 29 * @dev: consumer device pointer 30 */ 31struct meson_canvas *meson_canvas_get(struct device *dev); 32 33/** 34 * meson_canvas_alloc() - take ownership of a canvas 35 * 36 * @canvas: canvas provider instance retrieved from meson_canvas_get() 37 * @canvas_index: will be filled with the canvas ID 38 */ 39int meson_canvas_alloc(struct meson_canvas *canvas, u8 *canvas_index); 40 41/** 42 * meson_canvas_free() - remove ownership from a canvas 43 * 44 * @canvas: canvas provider instance retrieved from meson_canvas_get() 45 * @canvas_index: canvas ID that was obtained via meson_canvas_alloc() 46 */ 47int meson_canvas_free(struct meson_canvas *canvas, u8 canvas_index); 48 49/** 50 * meson_canvas_config() - configure a canvas 51 * 52 * @canvas: canvas provider instance retrieved from meson_canvas_get() 53 * @canvas_index: canvas ID that was obtained via meson_canvas_alloc() 54 * @addr: physical address to the pixel buffer 55 * @stride: width of the buffer 56 * @height: height of the buffer 57 * @wrap: undocumented 58 * @blkmode: block mode (linear, 32x32, 64x64) 59 * @endian: byte swapping (swap16, swap32, swap64, swap128) 60 */ 61int meson_canvas_config(struct meson_canvas *canvas, u8 canvas_index, 62 u32 addr, u32 stride, u32 height, 63 unsigned int wrap, unsigned int blkmode, 64 unsigned int endian); 65 66#endif