16ec1b753SSimon Glass /* 26ec1b753SSimon Glass * Test-related constants for sandbox 36ec1b753SSimon Glass * 46ec1b753SSimon Glass * Copyright (c) 2014 Google, Inc 56ec1b753SSimon Glass * 66ec1b753SSimon Glass * SPDX-License-Identifier: GPL-2.0+ 76ec1b753SSimon Glass */ 86ec1b753SSimon Glass 96ec1b753SSimon Glass #ifndef __ASM_TEST_H 106ec1b753SSimon Glass #define __ASM_TEST_H 116ec1b753SSimon Glass 126ec1b753SSimon Glass /* The sandbox driver always permits an I2C device with this address */ 136ec1b753SSimon Glass #define SANDBOX_I2C_TEST_ADDR 0x59 149569c406SSimon Glass 159569c406SSimon Glass #define SANDBOX_PCI_VENDOR_ID 0x1234 169569c406SSimon Glass #define SANDBOX_PCI_DEVICE_ID 0x5678 179569c406SSimon Glass #define SANDBOX_PCI_CLASS_CODE PCI_CLASS_CODE_COMM 189569c406SSimon Glass #define SANDBOX_PCI_CLASS_SUB_CODE PCI_CLASS_SUB_CODE_COMM_SERIAL 196ec1b753SSimon Glass 206a1c7cefSSimon Glass #define SANDBOX_CLK_RATE 32768 216a1c7cefSSimon Glass 2204035fd3SSimon Glass /* System controller driver data */ 2304035fd3SSimon Glass enum { 2404035fd3SSimon Glass SYSCON0 = 32, 2504035fd3SSimon Glass SYSCON1, 2604035fd3SSimon Glass 2704035fd3SSimon Glass SYSCON_COUNT 2804035fd3SSimon Glass }; 2904035fd3SSimon Glass 30182bf92dSSimon Glass /** 31182bf92dSSimon Glass * sandbox_i2c_set_test_mode() - set test mode for running unit tests 32182bf92dSSimon Glass * 33182bf92dSSimon Glass * See sandbox_i2c_xfer() for the behaviour changes. 34182bf92dSSimon Glass * 35182bf92dSSimon Glass * @bus: sandbox I2C bus to adjust 36182bf92dSSimon Glass * @test_mode: true to select test mode, false to run normally 37182bf92dSSimon Glass */ 38182bf92dSSimon Glass void sandbox_i2c_set_test_mode(struct udevice *bus, bool test_mode); 39182bf92dSSimon Glass 406ec1b753SSimon Glass enum sandbox_i2c_eeprom_test_mode { 416ec1b753SSimon Glass SIE_TEST_MODE_NONE, 426ec1b753SSimon Glass /* Permits read/write of only one byte per I2C transaction */ 436ec1b753SSimon Glass SIE_TEST_MODE_SINGLE_BYTE, 446ec1b753SSimon Glass }; 456ec1b753SSimon Glass 466ec1b753SSimon Glass void sandbox_i2c_eeprom_set_test_mode(struct udevice *dev, 476ec1b753SSimon Glass enum sandbox_i2c_eeprom_test_mode mode); 486ec1b753SSimon Glass 496ec1b753SSimon Glass void sandbox_i2c_eeprom_set_offset_len(struct udevice *dev, int offset_len); 506ec1b753SSimon Glass 51909bd6d9SJoe Hershberger /* 52909bd6d9SJoe Hershberger * sandbox_timer_add_offset() 53909bd6d9SJoe Hershberger * 54909bd6d9SJoe Hershberger * Allow tests to add to the time reported through lib/time.c functions 55909bd6d9SJoe Hershberger * offset: number of milliseconds to advance the system time 56909bd6d9SJoe Hershberger */ 57909bd6d9SJoe Hershberger void sandbox_timer_add_offset(unsigned long offset); 58909bd6d9SJoe Hershberger 59dd18e5d8SSimon Glass /** 60dd18e5d8SSimon Glass * sandbox_i2c_rtc_set_offset() - set the time offset from system/base time 61dd18e5d8SSimon Glass * 62dd18e5d8SSimon Glass * @dev: RTC device to adjust 63dd18e5d8SSimon Glass * @use_system_time: true to use system time, false to use @base_time 64dd18e5d8SSimon Glass * @offset: RTC offset from current system/base time (-1 for no 65dd18e5d8SSimon Glass * change) 66dd18e5d8SSimon Glass * @return old value of RTC offset 67dd18e5d8SSimon Glass */ 68dd18e5d8SSimon Glass long sandbox_i2c_rtc_set_offset(struct udevice *dev, bool use_system_time, 69dd18e5d8SSimon Glass int offset); 70dd18e5d8SSimon Glass 71dd18e5d8SSimon Glass /** 72dd18e5d8SSimon Glass * sandbox_i2c_rtc_get_set_base_time() - get and set the base time 73dd18e5d8SSimon Glass * 74dd18e5d8SSimon Glass * @dev: RTC device to adjust 75dd18e5d8SSimon Glass * @base_time: New base system time (set to -1 for no change) 76dd18e5d8SSimon Glass * @return old base time 77dd18e5d8SSimon Glass */ 78dd18e5d8SSimon Glass long sandbox_i2c_rtc_get_set_base_time(struct udevice *dev, long base_time); 79dd18e5d8SSimon Glass 80d8a26f03SSimon Glass int sandbox_usb_keyb_add_string(struct udevice *dev, const char *str); 81d8a26f03SSimon Glass 82*b6e92505SSimon Glass /** 83*b6e92505SSimon Glass * sandbox_osd_get_mem() - get the internal memory of a sandbox OSD 84*b6e92505SSimon Glass * 85*b6e92505SSimon Glass * @dev: OSD device for which to access the internal memory for 86*b6e92505SSimon Glass * @buf: pointer to buffer to receive the OSD memory data 87*b6e92505SSimon Glass * @buflen: length of buffer in bytes 88*b6e92505SSimon Glass */ 89*b6e92505SSimon Glass int sandbox_osd_get_mem(struct udevice *dev, u8 *buf, size_t buflen); 90*b6e92505SSimon Glass 91*b6e92505SSimon Glass /** 92*b6e92505SSimon Glass * sandbox_pwm_get_config() - get the PWM config for a channel 93*b6e92505SSimon Glass * 94*b6e92505SSimon Glass * @dev: Device to check 95*b6e92505SSimon Glass * @channel: Channel number to check 96*b6e92505SSimon Glass * @period_ns: Period of the PWM in nanoseconds 97*b6e92505SSimon Glass * @duty_ns: Current duty cycle of the PWM in nanoseconds 98*b6e92505SSimon Glass * @enable: true if the PWM is enabled 99*b6e92505SSimon Glass * @polarity: true if the PWM polarity is active high 100*b6e92505SSimon Glass * @return 0 if OK, -ENOSPC if the PWM number is invalid 101*b6e92505SSimon Glass */ 102*b6e92505SSimon Glass int sandbox_pwm_get_config(struct udevice *dev, uint channel, uint *period_nsp, 103*b6e92505SSimon Glass uint *duty_nsp, bool *enablep, bool *polarityp); 104*b6e92505SSimon Glass 105*b6e92505SSimon Glass /** 106*b6e92505SSimon Glass * sandbox_sf_set_block_protect() - Set the BP bits of the status register 107*b6e92505SSimon Glass * 108*b6e92505SSimon Glass * @dev: Device to update 109*b6e92505SSimon Glass * @bp_mask: BP bits to set (bits 2:0, so a value of 0 to 7) 110*b6e92505SSimon Glass */ 111*b6e92505SSimon Glass void sandbox_sf_set_block_protect(struct udevice *dev, int bp_mask); 112*b6e92505SSimon Glass 1136ec1b753SSimon Glass #endif 114