183d290c5STom Rini /* SPDX-License-Identifier: GPL-2.0+ */ 26ec1b753SSimon Glass /* 36ec1b753SSimon Glass * Test-related constants for sandbox 46ec1b753SSimon Glass * 56ec1b753SSimon Glass * Copyright (c) 2014 Google, Inc 66ec1b753SSimon Glass */ 76ec1b753SSimon Glass 86ec1b753SSimon Glass #ifndef __ASM_TEST_H 96ec1b753SSimon Glass #define __ASM_TEST_H 106ec1b753SSimon Glass 116ec1b753SSimon Glass /* The sandbox driver always permits an I2C device with this address */ 126ec1b753SSimon Glass #define SANDBOX_I2C_TEST_ADDR 0x59 139569c406SSimon Glass 149569c406SSimon Glass #define SANDBOX_PCI_VENDOR_ID 0x1234 159569c406SSimon Glass #define SANDBOX_PCI_DEVICE_ID 0x5678 169569c406SSimon Glass #define SANDBOX_PCI_CLASS_CODE PCI_CLASS_CODE_COMM 179569c406SSimon Glass #define SANDBOX_PCI_CLASS_SUB_CODE PCI_CLASS_SUB_CODE_COMM_SERIAL 186ec1b753SSimon Glass 1995e11069SBin Meng #define PCI_CAP_ID_PM_OFFSET 0x50 2095e11069SBin Meng #define PCI_CAP_ID_EXP_OFFSET 0x60 2195e11069SBin Meng #define PCI_CAP_ID_MSIX_OFFSET 0x70 2295e11069SBin Meng 2395e11069SBin Meng #define PCI_EXT_CAP_ID_ERR_OFFSET 0x100 2495e11069SBin Meng #define PCI_EXT_CAP_ID_VC_OFFSET 0x200 2595e11069SBin Meng #define PCI_EXT_CAP_ID_DSN_OFFSET 0x300 2695e11069SBin Meng 2759a160e8SBin Meng /* Useful for PCI_VDEVICE() macro */ 2859a160e8SBin Meng #define PCI_VENDOR_ID_SANDBOX SANDBOX_PCI_VENDOR_ID 2959a160e8SBin Meng #define SWAP_CASE_DRV_DATA 0x55aa 3059a160e8SBin Meng 316a1c7cefSSimon Glass #define SANDBOX_CLK_RATE 32768 326a1c7cefSSimon Glass 3304035fd3SSimon Glass /* System controller driver data */ 3404035fd3SSimon Glass enum { 3504035fd3SSimon Glass SYSCON0 = 32, 3604035fd3SSimon Glass SYSCON1, 3704035fd3SSimon Glass 3804035fd3SSimon Glass SYSCON_COUNT 3904035fd3SSimon Glass }; 4004035fd3SSimon Glass 41182bf92dSSimon Glass /** 42182bf92dSSimon Glass * sandbox_i2c_set_test_mode() - set test mode for running unit tests 43182bf92dSSimon Glass * 44182bf92dSSimon Glass * See sandbox_i2c_xfer() for the behaviour changes. 45182bf92dSSimon Glass * 46182bf92dSSimon Glass * @bus: sandbox I2C bus to adjust 47182bf92dSSimon Glass * @test_mode: true to select test mode, false to run normally 48182bf92dSSimon Glass */ 49182bf92dSSimon Glass void sandbox_i2c_set_test_mode(struct udevice *bus, bool test_mode); 50182bf92dSSimon Glass 516ec1b753SSimon Glass enum sandbox_i2c_eeprom_test_mode { 526ec1b753SSimon Glass SIE_TEST_MODE_NONE, 536ec1b753SSimon Glass /* Permits read/write of only one byte per I2C transaction */ 546ec1b753SSimon Glass SIE_TEST_MODE_SINGLE_BYTE, 556ec1b753SSimon Glass }; 566ec1b753SSimon Glass 576ec1b753SSimon Glass void sandbox_i2c_eeprom_set_test_mode(struct udevice *dev, 586ec1b753SSimon Glass enum sandbox_i2c_eeprom_test_mode mode); 596ec1b753SSimon Glass 606ec1b753SSimon Glass void sandbox_i2c_eeprom_set_offset_len(struct udevice *dev, int offset_len); 616ec1b753SSimon Glass 62909bd6d9SJoe Hershberger /* 63909bd6d9SJoe Hershberger * sandbox_timer_add_offset() 64909bd6d9SJoe Hershberger * 65909bd6d9SJoe Hershberger * Allow tests to add to the time reported through lib/time.c functions 66909bd6d9SJoe Hershberger * offset: number of milliseconds to advance the system time 67909bd6d9SJoe Hershberger */ 68909bd6d9SJoe Hershberger void sandbox_timer_add_offset(unsigned long offset); 69909bd6d9SJoe Hershberger 70dd18e5d8SSimon Glass /** 71dd18e5d8SSimon Glass * sandbox_i2c_rtc_set_offset() - set the time offset from system/base time 72dd18e5d8SSimon Glass * 73dd18e5d8SSimon Glass * @dev: RTC device to adjust 74dd18e5d8SSimon Glass * @use_system_time: true to use system time, false to use @base_time 75dd18e5d8SSimon Glass * @offset: RTC offset from current system/base time (-1 for no 76dd18e5d8SSimon Glass * change) 77dd18e5d8SSimon Glass * @return old value of RTC offset 78dd18e5d8SSimon Glass */ 79dd18e5d8SSimon Glass long sandbox_i2c_rtc_set_offset(struct udevice *dev, bool use_system_time, 80dd18e5d8SSimon Glass int offset); 81dd18e5d8SSimon Glass 82dd18e5d8SSimon Glass /** 83dd18e5d8SSimon Glass * sandbox_i2c_rtc_get_set_base_time() - get and set the base time 84dd18e5d8SSimon Glass * 85dd18e5d8SSimon Glass * @dev: RTC device to adjust 86dd18e5d8SSimon Glass * @base_time: New base system time (set to -1 for no change) 87dd18e5d8SSimon Glass * @return old base time 88dd18e5d8SSimon Glass */ 89dd18e5d8SSimon Glass long sandbox_i2c_rtc_get_set_base_time(struct udevice *dev, long base_time); 90dd18e5d8SSimon Glass 91d8a26f03SSimon Glass int sandbox_usb_keyb_add_string(struct udevice *dev, const char *str); 92d8a26f03SSimon Glass 934eea5318SMario Six /** 944eea5318SMario Six * sandbox_osd_get_mem() - get the internal memory of a sandbox OSD 954eea5318SMario Six * 964eea5318SMario Six * @dev: OSD device for which to access the internal memory for 974eea5318SMario Six * @buf: pointer to buffer to receive the OSD memory data 984eea5318SMario Six * @buflen: length of buffer in bytes 994eea5318SMario Six */ 1004eea5318SMario Six int sandbox_osd_get_mem(struct udevice *dev, u8 *buf, size_t buflen); 1015d9a88f4SSimon Glass 1025d9a88f4SSimon Glass /** 1035d9a88f4SSimon Glass * sandbox_pwm_get_config() - get the PWM config for a channel 1045d9a88f4SSimon Glass * 1055d9a88f4SSimon Glass * @dev: Device to check 1065d9a88f4SSimon Glass * @channel: Channel number to check 1075d9a88f4SSimon Glass * @period_ns: Period of the PWM in nanoseconds 1085d9a88f4SSimon Glass * @duty_ns: Current duty cycle of the PWM in nanoseconds 1095d9a88f4SSimon Glass * @enable: true if the PWM is enabled 1105d9a88f4SSimon Glass * @polarity: true if the PWM polarity is active high 1115d9a88f4SSimon Glass * @return 0 if OK, -ENOSPC if the PWM number is invalid 1125d9a88f4SSimon Glass */ 1135d9a88f4SSimon Glass int sandbox_pwm_get_config(struct udevice *dev, uint channel, uint *period_nsp, 1145d9a88f4SSimon Glass uint *duty_nsp, bool *enablep, bool *polarityp); 1155d9a88f4SSimon Glass 116a58986caSSimon Glass /** 117a58986caSSimon Glass * sandbox_sf_set_block_protect() - Set the BP bits of the status register 118a58986caSSimon Glass * 119a58986caSSimon Glass * @dev: Device to update 120a58986caSSimon Glass * @bp_mask: BP bits to set (bits 2:0, so a value of 0 to 7) 121a58986caSSimon Glass */ 122a58986caSSimon Glass void sandbox_sf_set_block_protect(struct udevice *dev, int bp_mask); 123a58986caSSimon Glass 124ce6d99a0SSimon Glass /** 125ce6d99a0SSimon Glass * sandbox_get_codec_params() - Read back codec parameters 126ce6d99a0SSimon Glass * 127ce6d99a0SSimon Glass * This reads back the parameters set by audio_codec_set_params() for the 128ce6d99a0SSimon Glass * sandbox audio driver. Arguments are as for that function. 129ce6d99a0SSimon Glass */ 130ce6d99a0SSimon Glass void sandbox_get_codec_params(struct udevice *dev, int *interfacep, int *ratep, 131ce6d99a0SSimon Glass int *mclk_freqp, int *bits_per_samplep, 132ce6d99a0SSimon Glass uint *channelsp); 133ce6d99a0SSimon Glass 134e96fa6c9SSimon Glass /** 135e96fa6c9SSimon Glass * sandbox_get_i2s_sum() - Read back the sum of the audio data so far 136e96fa6c9SSimon Glass * 137e96fa6c9SSimon Glass * This data is provided to the sandbox driver by the I2S tx_data() method. 138e96fa6c9SSimon Glass * 139e96fa6c9SSimon Glass * @dev: Device to check 140e96fa6c9SSimon Glass * @return sum of audio data 141e96fa6c9SSimon Glass */ 142e96fa6c9SSimon Glass int sandbox_get_i2s_sum(struct udevice *dev); 143e96fa6c9SSimon Glass 144d4901898SSimon Glass /** 145d4901898SSimon Glass * sandbox_get_setup_called() - Returns the number of times setup(*) was called 146d4901898SSimon Glass * 147d4901898SSimon Glass * This is used in the sound test 148d4901898SSimon Glass * 149d4901898SSimon Glass * @dev: Device to check 150d4901898SSimon Glass * @return call count for the setup() method 151d4901898SSimon Glass */ 152d4901898SSimon Glass int sandbox_get_setup_called(struct udevice *dev); 153d4901898SSimon Glass 154d4901898SSimon Glass /** 155d4901898SSimon Glass * sandbox_get_sound_sum() - Read back the sum of the sound data so far 156d4901898SSimon Glass * 157d4901898SSimon Glass * This data is provided to the sandbox driver by the sound play() method. 158d4901898SSimon Glass * 159d4901898SSimon Glass * @dev: Device to check 160d4901898SSimon Glass * @return sum of audio data 161d4901898SSimon Glass */ 162d4901898SSimon Glass int sandbox_get_sound_sum(struct udevice *dev); 163d4901898SSimon Glass 164b45c833cSSimon Glass /** 165*28502669SSimon Glass * sandbox_set_allow_beep() - Set whether the 'beep' interface is supported 166*28502669SSimon Glass * 167*28502669SSimon Glass * @dev: Device to update 168*28502669SSimon Glass * @allow: true to allow the start_beep() method, false to disallow it 169*28502669SSimon Glass */ 170*28502669SSimon Glass void sandbox_set_allow_beep(struct udevice *dev, bool allow); 171*28502669SSimon Glass 172*28502669SSimon Glass /** 173*28502669SSimon Glass * sandbox_get_beep_frequency() - Get the frequency of the current beep 174*28502669SSimon Glass * 175*28502669SSimon Glass * @dev: Device to check 176*28502669SSimon Glass * @return frequency of beep, if there is an active beep, else 0 177*28502669SSimon Glass */ 178*28502669SSimon Glass int sandbox_get_beep_frequency(struct udevice *dev); 179*28502669SSimon Glass 180*28502669SSimon Glass /** 181b45c833cSSimon Glass * sandbox_get_pch_spi_protect() - Get the PCI SPI protection status 182b45c833cSSimon Glass * 183b45c833cSSimon Glass * @dev: Device to check 184b45c833cSSimon Glass * @return 0 if not protected, 1 if protected 185b45c833cSSimon Glass */ 186b45c833cSSimon Glass int sandbox_get_pch_spi_protect(struct udevice *dev); 187b45c833cSSimon Glass 1886ec1b753SSimon Glass #endif 189