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 124*ce6d99a0SSimon Glass /** 125*ce6d99a0SSimon Glass * sandbox_get_codec_params() - Read back codec parameters 126*ce6d99a0SSimon Glass * 127*ce6d99a0SSimon Glass * This reads back the parameters set by audio_codec_set_params() for the 128*ce6d99a0SSimon Glass * sandbox audio driver. Arguments are as for that function. 129*ce6d99a0SSimon Glass */ 130*ce6d99a0SSimon Glass void sandbox_get_codec_params(struct udevice *dev, int *interfacep, int *ratep, 131*ce6d99a0SSimon Glass int *mclk_freqp, int *bits_per_samplep, 132*ce6d99a0SSimon Glass uint *channelsp); 133*ce6d99a0SSimon Glass 1346ec1b753SSimon Glass #endif 135