1 /* $NetBSD: vcprop.h,v 1.20 2021/03/08 13:53:08 mlelstv Exp $ */ 2 3 /*- 4 * Copyright (c) 2012 The NetBSD Foundation, Inc. 5 * All rights reserved. 6 * 7 * This code is derived from software contributed to The NetBSD Foundation 8 * by Nick Hudson 9 * 10 * Redistribution and use in source and binary forms, with or without 11 * modification, are permitted provided that the following conditions 12 * are met: 13 * 1. Redistributions of source code must retain the above copyright 14 * notice, this list of conditions and the following disclaimer. 15 * 2. Redistributions in binary form must reproduce the above copyright 16 * notice, this list of conditions and the following disclaimer in the 17 * documentation and/or other materials provided with the distribution. 18 * 19 * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 20 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 21 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 22 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 23 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 24 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 25 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 26 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 27 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 28 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 29 * POSSIBILITY OF SUCH DAMAGE. 30 */ 31 32 /* 33 * Mailbox property interface 34 */ 35 36 #ifndef _EVBARM_RPI_VCPROP_H_ 37 #define _EVBARM_RPI_VCPROP_H_ 38 39 #include "opt_vcprop.h" 40 41 #include <sys/endian.h> 42 43 struct vcprop_tag { 44 uint32_t vpt_tag; 45 #define VCPROPTAG_NULL 0x00000000 46 #define VCPROPTAG_GET_FIRMWAREREV 0x00000001 47 #define VCPROPTAG_GET_FIRMWAREVARIANT 0x00000002 48 #define VCPROPTAG_GET_FIRMWAREHASH 0x00000003 49 #define VCPROPTAG_GET_BOARDMODEL 0x00010001 50 #define VCPROPTAG_GET_BOARDREVISION 0x00010002 51 #define VCPROPTAG_GET_MACADDRESS 0x00010003 52 #define VCPROPTAG_GET_BOARDSERIAL 0x00010004 53 #define VCPROPTAG_GET_ARMMEMORY 0x00010005 54 #define VCPROPTAG_GET_VCMEMORY 0x00010006 55 #define VCPROPTAG_GET_CLOCKS 0x00010007 56 57 #define VCPROPTAG_GET_POWERSTATE 0x00020001 58 #define VCPROPTAG_GET_POWERTIMING 0x00020002 59 #define VCPROPTAG_SET_POWERSTATE 0x00028001 60 61 #define VCPROPTAG_GET_CLOCKSTATE 0x00030001 62 #define VCPROPTAG_SET_CLOCKSTATE 0x00038001 63 #define VCPROPTAG_GET_CLOCKRATE 0x00030002 64 #define VCPROPTAG_SET_CLOCKRATE 0x00038002 65 #define VCPROPTAG_GET_MIN_CLOCKRATE 0x00030007 66 #define VCPROPTAG_GET_MAX_CLOCKRATE 0x00030004 67 #define VCPROPTAG_GET_TURBO 0x00030009 68 #define VCPROPTAG_SET_TURBO 0x00038009 69 70 #define VCPROPTAG_GET_STC 0x0003000b 71 #define VCPROPTAG_GET_THROTTLED 0x00030046 72 #define VCPROPTAG_GET_CLOCK_MEASURED 0x00030047 73 #define VCPROPTAG_NOTIFY_REBOOT 0x00030048 74 75 #define VCPROPTAG_GET_VOLTAGE 0x00030003 76 #define VCPROPTAG_SET_VOLTAGE 0x00038003 77 #define VCPROPTAG_GET_MIN_VOLTAGE 0x00030008 78 #define VCPROPTAG_GET_MAX_VOLTAGE 0x00030005 79 80 #define VCPROPTAG_GET_TEMPERATURE 0x00030006 81 #define VCPROPTAG_GET_MAX_TEMPERATURE 0x0003000a 82 83 #define VCPROPTAG_GET_DOMAIN_STATE 0x00030030 84 #define VCPROPTAG_SET_DOMAIN_STATE 0x00038030 85 86 #define VCPROPTAG_GET_GPIO_STATE 0x00030041 87 #define VCPROPTAG_SET_GPIO_STATE 0x00038041 88 #define VCPROPTAG_GET_GPIO_CONFIG 0x00030041 89 #define VCPROPTAG_SET_GPIO_CONFIG 0x00038041 90 #define VCPROPTAG_GET_PERIPH_REG 0x00030045 91 #define VCPROPTAG_SET_PERIPH_REG 0x00038045 92 93 #define VCPROPTAG_GET_OTP 0x00030021 94 #define VCPROPTAG_SET_OTP 0x00038021 95 96 #define VCPROPTAG_SET_SDHOST_CLOCK 0x00038042 97 98 #define VCPROPTAG_GET_POE_HAT_VAL 0x00030049 99 #define VCPROPTAG_SET_POE_HAT_VAL 0x00030050 100 101 #define VCPROPTAG_NOTIFY_XHCI_RESET 0x00030058 102 103 #define VCPROPTAG_GET_CMDLINE 0x00050001 104 #define VCPROPTAG_GET_DMACHAN 0x00060001 105 106 #define VCPROPTAG_ALLOCATE_BUFFER 0x00040001 107 #define VCPROPTAG_RELEASE_BUFFER 0x00048001 108 #define VCPROPTAG_BLANK_SCREEN 0x00040002 109 #define VCPROPTAG_GET_FB_RES 0x00040003 110 #define VCPROPTAG_TST_FB_RES 0x00044003 111 #define VCPROPTAG_SET_FB_RES 0x00048003 112 #define VCPROPTAG_GET_FB_VRES 0x00040004 113 #define VCPROPTAG_TST_FB_VRES 0x00044004 114 #define VCPROPTAG_SET_FB_VRES 0x00048004 115 #define VCPROPTAG_GET_FB_DEPTH 0x00040005 116 #define VCPROPTAG_TST_FB_DEPTH 0x00044005 117 #define VCPROPTAG_SET_FB_DEPTH 0x00048005 118 #define VCPROPTAG_GET_FB_PIXEL_ORDER 0x00040006 119 #define VCPROPTAG_TST_FB_PIXEL_ORDER 0x00044006 120 #define VCPROPTAG_SET_FB_PIXEL_ORDER 0x00048006 121 #define VCPROPTAG_GET_FB_ALPHA_MODE 0x00040007 122 #define VCPROPTAG_TST_FB_ALPHA_MODE 0x00044007 123 #define VCPROPTAG_SET_FB_ALPHA_MODE 0x00048007 124 #define VCPROPTAG_GET_FB_PITCH 0x00040008 125 #define VCPROPTAG_GET_VIRTUAL_OFFSET 0x00040009 126 #define VCPROPTAG_TST_VIRTUAL_OFFSET 0x00044009 127 #define VCPROPTAG_SET_VIRTUAL_OFFSET 0x00048009 128 #define VCPROPTAG_GET_OVERSCAN 0x0004000a 129 #define VCPROPTAG_TST_OVERSCAN 0x0004400a 130 #define VCPROPTAG_SET_OVERSCAN 0x0004800a 131 #define VCPROPTAG_GET_PALETTE 0x0004000b 132 #define VCPROPTAG_TST_PALETTE 0x0004400b 133 #define VCPROPTAG_SET_PALETTE 0x0004800b 134 #define VCPROPTAG_GET_FB_LAYER 0x0004000c 135 #define VCPROPTAG_TST_FB_LAYER 0x0004400c 136 #define VCPROPTAG_SET_FB_LAYER 0x0004800c 137 #define VCPROPTAG_GET_TRANSFORM 0x0004000d 138 #define VCPROPTAG_TST_TRANSFORM 0x0004400d 139 #define VCPROPTAG_SET_TRANSFORM 0x0004800d 140 #define VCPROPTAG_GET_VSYNC 0x0004000e 141 #define VCPROPTAG_TST_VSYNC 0x0004400e 142 #define VCPROPTAG_SET_VSYNC 0x0004800e 143 #define VCPROPTAG_GET_TOUCHBUF 0x0004000f 144 #define VCPROPTAG_GET_SET_BACKLIGHT 0x0004800f 145 #define VCPROPTAG_GET_GPIOVIRTBUF 0x00040010 146 #define VCPROPTAG_SET_GPIOVIRTBUF 0x00048020 147 #define VCPROPTAG_GET_NUM_DISPLAYS 0x00040013 148 #define VCPROPTAG_SET_DISPLAYNUM 0x00048013 149 #define VCPROPTAG_GET_DISPLAY_SETTINGS 0x00040014 150 #define VCPROPTAG_GET_DISPLAYID 0x00040016 151 152 #define VCPROPTAG_VCHIQ_INIT 0x00048010 153 154 #define VCPROPTAG_SET_PLANE 0x00048015 155 #define VCPROPTAG_GET_TIMING 0x00040017 156 #define VCPROPTAG_SET_TIMING 0x00048017 157 #define VCPROPTAG_GET_DISPLAY_CFG 0x00048018 158 159 #define VCPROPTAG_GET_EDID_BLOCK 0x00030020 160 #define VCPROPTAG_GET_EDID_BLOCK_DISP 0x00030021 161 162 #define VCPROPTAG_ALLOCMEM 0x0003000c 163 #define VCPROPTAG_LOCKMEM 0x0003000d 164 #define VCPROPTAG_UNLOCKMEM 0x0003000e 165 #define VCPROPTAG_RELEASEMEM 0x0003000f 166 #define VCPROPTAG_EXECUTE_CODE 0x00030010 167 #define VCPROPTAG_EXECUTE_QPU 0x00030011 168 #define VCPROPTAG_SET_ENABLE_QPU 0x00030012 169 #define VCPROPTAG_GET_DISPMANX_HANDLE 0x00030014 170 171 #define VCPROPTAG_SET_CURSOR_INFO 0x00008010 172 #define VCPROPTAG_SET_CURSOR_STATE 0x00008011 173 174 uint32_t vpt_len; 175 uint32_t vpt_rcode; 176 #define VCPROPTAG_REQUEST (0U << 31) 177 #define VCPROPTAG_RESPONSE (1U << 31) 178 179 }; 180 181 #define VCPROPTAG_LEN(x) (sizeof((x)) - sizeof(struct vcprop_tag)) 182 183 #define VCPROP_INIT_REQUEST(req) \ 184 do { \ 185 memset(&(req), 0, sizeof((req))); \ 186 (req).vb_hdr.vpb_len = htole32(sizeof((req))); \ 187 (req).vb_hdr.vpb_rcode = htole32(VCPROP_PROCESS_REQUEST);\ 188 (req).end.vpt_tag = htole32(VCPROPTAG_NULL); \ 189 } while (0) 190 #define VCPROP_INIT_TAG(s, t) \ 191 do { \ 192 (s).tag.vpt_tag = htole32(t); \ 193 (s).tag.vpt_rcode = htole32(VCPROPTAG_REQUEST); \ 194 (s).tag.vpt_len = htole32(VCPROPTAG_LEN(s)); \ 195 } while (0) 196 197 struct vcprop_memory { 198 uint32_t base; 199 uint32_t size; 200 }; 201 202 #define VCPROP_MAXMEMBLOCKS 4 203 struct vcprop_tag_memory { 204 struct vcprop_tag tag; 205 struct vcprop_memory mem[VCPROP_MAXMEMBLOCKS]; 206 }; 207 208 struct vcprop_tag_fwrev { 209 struct vcprop_tag tag; 210 uint32_t rev; 211 }; 212 213 struct vcprop_tag_boardmodel { 214 struct vcprop_tag tag; 215 uint32_t model; 216 }; 217 218 struct vcprop_tag_boardrev { 219 struct vcprop_tag tag; 220 uint32_t rev; 221 }; 222 223 #define VCPROP_REV_PCBREV __BITS(3,0) 224 #define VCPROP_REV_MODEL __BITS(11,4) 225 #define RPI_MODEL_A 0 226 #define RPI_MODEL_B 1 227 #define RPI_MODEL_A_PLUS 2 228 #define RPI_MODEL_B_PLUS 3 229 #define RPI_MODEL_B_PI2 4 230 #define RPI_MODEL_ALPHA 5 231 #define RPI_MODEL_COMPUTE 6 232 #define RPI_MODEL_B_PI3 8 233 #define RPI_MODEL_ZERO 9 234 #define RPI_MODEL_COMPUTE_PI3 10 235 #define RPI_MODEL_ZERO_W 12 236 #define RPI_MODEL_B_PLUS_PI3 13 237 #define RPI_MODEL_A_PLUS_PI3 14 238 #define RPI_MODEL_CM_PLUS_PI3 16 239 #define RPI_MODEL_B_PI4 17 240 #define VCPROP_REV_PROCESSOR __BITS(15,12) 241 #define RPI_PROCESSOR_BCM2835 0 242 #define RPI_PROCESSOR_BCM2836 1 243 #define RPI_PROCESSOR_BCM2837 2 244 #define RPI_PROCESSOR_BCM2711 3 245 #define VCPROP_REV_MANUF __BITS(19,16) 246 #define RPI_MANUF_SONY 0 247 #define RPI_MANUF_EGOMAN 1 248 #define RPI_MANUF_QISDA 16 249 #define RPI_MANUF_EMBEST 2 250 #define RPI_MANUF_SONYJAPAN 3 251 #define VCPROP_REV_MEMSIZE __BITS(22,20) 252 #define RPI_MEMSIZE_256 0 253 #define RPI_MEMSIZE_512 1 254 #define RPI_MEMSIZE_1024 2 255 #define RPI_MEMSIZE_2048 3 256 #define RPI_MEMSIZE_4096 4 257 #define VCPROP_REV_ENCFLAG __BIT(23) 258 #define VCPROP_REV_WARRANTY __BITS(25,24) 259 260 struct vcprop_tag_macaddr { 261 struct vcprop_tag tag; 262 uint64_t addr; 263 } __packed; 264 265 struct vcprop_tag_boardserial { 266 struct vcprop_tag tag; 267 uint64_t sn; 268 } __packed; 269 270 #define VCPROP_CLK_EMMC 1 271 #define VCPROP_CLK_UART 2 272 #define VCPROP_CLK_ARM 3 273 #define VCPROP_CLK_CORE 4 274 #define VCPROP_CLK_V3D 5 275 #define VCPROP_CLK_H264 6 276 #define VCPROP_CLK_ISP 7 277 #define VCPROP_CLK_SDRAM 8 278 #define VCPROP_CLK_PIXEL 9 279 #define VCPROP_CLK_PWM 10 280 #define VCPROP_CLK_EMMC2 12 281 282 struct vcprop_clock { 283 uint32_t pclk; 284 uint32_t cclk; 285 }; 286 287 #define VCPROP_MAXCLOCKS 16 288 struct vcprop_tag_clock { 289 struct vcprop_tag tag; 290 struct vcprop_clock clk[VCPROP_MAXCLOCKS]; 291 }; 292 293 #ifndef VCPROP_MAXCMDLINE 294 #define VCPROP_MAXCMDLINE 1024 295 #endif 296 struct vcprop_tag_cmdline { 297 struct vcprop_tag tag; 298 uint8_t cmdline[VCPROP_MAXCMDLINE]; 299 }; 300 301 struct vcprop_tag_dmachan { 302 struct vcprop_tag tag; 303 uint32_t mask; 304 }; 305 306 struct vcprop_tag_clockstate { 307 struct vcprop_tag tag; 308 uint32_t id; 309 uint32_t state; 310 }; 311 312 struct vcprop_tag_clockrate { 313 struct vcprop_tag tag; 314 uint32_t id; 315 uint32_t rate; 316 uint32_t noturbo; 317 }; 318 319 struct vcprop_tag_sdhostclock { 320 struct vcprop_tag tag; 321 uint32_t clock; 322 uint32_t clock1; 323 uint32_t clock2; 324 }; 325 326 #define VCPROP_VOLTAGE_CORE 1 327 #define VCPROP_VOLTAGE_SDRAM_C 2 328 #define VCPROP_VOLTAGE_SDRAM_P 3 329 #define VCPROP_VOLTAGE_SDRAM_I 4 330 331 struct vcprop_tag_voltage { 332 struct vcprop_tag tag; 333 uint32_t id; 334 uint32_t value; 335 }; 336 337 #define VCPROP_TEMP_SOC 0 338 339 struct vcprop_tag_temperature { 340 struct vcprop_tag tag; 341 uint32_t id; 342 uint32_t value; 343 }; 344 345 #define VCPROP_POWER_SDCARD 0 346 #define VCPROP_POWER_UART0 1 347 #define VCPROP_POWER_UART1 2 348 #define VCPROP_POWER_USB 3 349 #define VCPROP_POWER_I2C0 4 350 #define VCPROP_POWER_I2C1 5 351 #define VCPROP_POWER_I2C2 6 352 #define VCPROP_POWER_SPI 7 353 #define VCPROP_POWER_CCP2TX 8 354 355 #define VCPROP_DOMAIN_I2C0 1 356 #define VCPROP_DOMAIN_I2C1 2 357 #define VCPROP_DOMAIN_I2C2 3 358 #define VCPROP_DOMAIN_VIDEO_SCALER 4 359 #define VCPROP_DOMAIN_VPU1 5 360 #define VCPROP_DOMAIN_HDMI 6 361 #define VCPROP_DOMAIN_USB 7 362 #define VCPROP_DOMAIN_VEC 8 363 #define VCPROP_DOMAIN_JPEG 9 364 #define VCPROP_DOMAIN_H264 10 365 #define VCPROP_DOMAIN_V3D 11 366 #define VCPROP_DOMAIN_ISP 12 367 #define VCPROP_DOMAIN_UNICAM0 13 368 #define VCPROP_DOMAIN_UNICAM1 14 369 #define VCPROP_DOMAIN_CCP2RX 15 370 #define VCPROP_DOMAIN_CSI2 16 371 #define VCPROP_DOMAIN_CPI 17 372 #define VCPROP_DOMAIN_DSI0 18 373 #define VCPROP_DOMAIN_DSI1 19 374 #define VCPROP_DOMAIN_TRANSPOSER 20 375 #define VCPROP_DOMAIN_CCP2TX 21 376 #define VCPROP_DOMAIN_CDP 22 377 #define VCPROP_DOMAIN_ARM 23 378 379 struct vcprop_tag_powertiming { 380 struct vcprop_tag tag; 381 uint32_t id; 382 uint32_t waitusec; 383 }; 384 385 struct vcprop_tag_powerstate { 386 struct vcprop_tag tag; 387 uint32_t id; 388 uint32_t state; 389 }; 390 391 struct vcprop_tag_allocbuf { 392 struct vcprop_tag tag; 393 uint32_t address; /* alignment for request */ 394 uint32_t size; 395 }; 396 397 #define VCPROP_BLANK_OFF 0 398 #define VCPROP_BLANK_ON 1 399 400 struct vcprop_tag_blankscreen { 401 struct vcprop_tag tag; 402 uint32_t state; 403 }; 404 405 struct vcprop_tag_fbres { 406 struct vcprop_tag tag; 407 uint32_t width; 408 uint32_t height; 409 }; 410 411 struct vcprop_tag_fbdepth { 412 struct vcprop_tag tag; 413 uint32_t bpp; 414 }; 415 416 #define VCPROP_PIXEL_BGR 0 417 #define VCPROP_PIXEL_RGB 1 418 419 struct vcprop_tag_fbpixelorder { 420 struct vcprop_tag tag; 421 uint32_t order; 422 }; 423 424 struct vcprop_tag_fbpitch { 425 struct vcprop_tag tag; 426 uint32_t linebytes; 427 }; 428 429 #define VCPROP_ALPHA_ENABLED 0 430 #define VCPROP_ALPHA_REVERSED 1 431 #define VCPROP_ALPHA_IGNORED 2 432 433 struct vcprop_tag_fbalpha { 434 struct vcprop_tag tag; 435 uint32_t state; 436 }; 437 438 struct vcprop_tag_edidblock { 439 struct vcprop_tag tag; 440 uint32_t blockno; 441 uint32_t status; 442 uint8_t data[128]; 443 }; 444 445 struct vcprop_tag_numdpy { 446 struct vcprop_tag tag; 447 uint32_t count; 448 }; 449 450 struct vcprop_tag_setdpy { 451 struct vcprop_tag tag; 452 uint32_t display_num; 453 }; 454 455 struct vcprop_tag_cursorinfo { 456 struct vcprop_tag tag; 457 uint32_t width; 458 uint32_t height; 459 uint32_t format; 460 uint32_t pixels; /* bus address in VC memory */ 461 uint32_t hotspot_x; 462 uint32_t hotspot_y; 463 }; 464 465 struct vcprop_tag_cursorstate { 466 struct vcprop_tag tag; 467 uint32_t enable; /* 1 - visible */ 468 uint32_t x; 469 uint32_t y; 470 uint32_t flags; /* 0 - display coord. 1 - fb coord. */ 471 }; 472 473 struct vcprop_tag_allocmem { 474 struct vcprop_tag tag; 475 uint32_t size; /* handle returned here */ 476 uint32_t align; 477 uint32_t flags; 478 /* 479 * flag definitions from 480 * https://github.com/raspberrypi/firmware/wiki/Mailbox-property-interface 481 */ 482 #define MEM_FLAG_DISCARDABLE (1 << 0) /* can be resized to 0 at any time. Use for cached data */ 483 #define MEM_FLAG_NORMAL (0 << 2) /* normal allocating alias. Don't use from ARM */ 484 #define MEM_FLAG_DIRECT (1 << 2) /* 0xC alias uncached */ 485 #define MEM_FLAG_COHERENT (2 << 2) /* 0x8 alias. Non-allocating in L2 but coherent */ 486 #define MEM_FLAG_L1_NONALLOCATING (MEM_FLAG_DIRECT | MEM_FLAG_COHERENT) /* Allocating in L2 */ 487 #define MEM_FLAG_ZERO (1 << 4) /* initialise buffer to all zeros */ 488 #define MEM_FLAG_NO_INIT (1 << 5) /* don't initialise (default is initialise to all ones */ 489 #define MEM_FLAG_HINT_PERMALOCK (1 << 6) /* Likely to be locked for long periods of time. */ 490 }; 491 492 /* also for unlock and release */ 493 struct vcprop_tag_lockmem { 494 struct vcprop_tag tag; 495 uint32_t handle; /* bus address returned here */ 496 }; 497 498 struct vcprop_tag_vchiqinit { 499 struct vcprop_tag tag; 500 uint32_t base; 501 }; 502 503 struct vcprop_tag_notifyxhcireset { 504 struct vcprop_tag tag; 505 uint32_t deviceaddress; 506 }; 507 508 struct vcprop_buffer_hdr { 509 uint32_t vpb_len; 510 uint32_t vpb_rcode; 511 #define VCPROP_PROCESS_REQUEST 0 512 #define VCPROP_REQ_SUCCESS (1U << 31) 513 #define VCPROP_REQ_EPARSE (1U << 0) 514 }; 515 516 static inline bool 517 vcprop_buffer_success_p(struct vcprop_buffer_hdr *vpbh) 518 { 519 520 return le32toh(vpbh->vpb_rcode) & VCPROP_REQ_SUCCESS; 521 } 522 523 static inline bool 524 vcprop_tag_success_p(struct vcprop_tag *vpbt) 525 { 526 527 return le32toh(vpbt->vpt_rcode) & VCPROPTAG_RESPONSE; 528 } 529 530 static inline size_t 531 vcprop_tag_resplen(struct vcprop_tag *vpbt) 532 { 533 534 return le32toh(vpbt->vpt_rcode) & ~VCPROPTAG_RESPONSE; 535 } 536 537 uint32_t rpi_alloc_mem(uint32_t, uint32_t, uint32_t); 538 bus_addr_t rpi_lock_mem(uint32_t); 539 int rpi_unlock_mem(uint32_t); 540 int rpi_release_mem(uint32_t); 541 542 int rpi_fb_set_video(int); 543 544 int rpi_fb_movecursor(int, int, int); 545 int rpi_fb_initcursor(bus_addr_t, int, int); 546 547 int rpi_fb_set_pixelorder(uint32_t); 548 int rpi_fb_get_pixelorder(uint32_t *); 549 550 int rpi_set_domain(uint32_t, uint32_t); 551 int rpi_get_domain(uint32_t, uint32_t *); 552 553 int rpi_vchiq_init(uint32_t *); 554 555 int rpi_notify_xhci_reset(uint32_t); 556 557 #endif /* _EVBARM_RPI_VCPROP_H_ */ 558 559