Home | History | Annotate | Download | only in variant
      1 /*
      2  * Copyright (C) 2017 STMicroelectronics
      3  *
      4  * Licensed under the Apache License, Version 2.0 (the "License");
      5  * you may not use this file except in compliance with the License.
      6  * You may obtain a copy of the License at
      7  *
      8  *      http://www.apache.org/licenses/LICENSE-2.0
      9  *
     10  * Unless required by applicable law or agreed to in writing, software
     11  * distributed under the License is distributed on an "AS IS" BASIS,
     12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13  * See the License for the specific language governing permissions and
     14  * limitations under the License.
     15  */
     16 
     17 #ifndef _VARIANT_ARGONKEY_H_
     18 #define _VARIANT_ARGONKEY_H_
     19 
     20 #ifdef __cplusplus
     21 extern "C" {
     22 #endif
     23 
     24 #define PLATFORM_HW_TYPE            0x4172   // 'Ar' -> argonkey
     25 
     26 #define VARIANT_VER                 0x00000000
     27 
     28 //we have LSE in argonkey
     29 #define RTC_CLK                     RTC_CLK_LSE
     30 #define RTC_PREDIV_A                0UL
     31 #define RTC_PREDIV_S                32767UL
     32 
     33 //spi bus for comms
     34 #define PLATFORM_HOST_INTF_SPI_BUS  0
     35 
     36 #define SH_INT_WAKEUP               GPIO_PA(0)
     37 #define SH_EXTI_WAKEUP_IRQ          EXTI0_IRQn
     38 #define AP_INT_WAKEUP               GPIO_PA(1)
     39 /*
     40  * Allocating a GPIO for non-wakeup host interrupt is optional in CHRE.
     41  * ArgonKey implements this feature and enables it here. If you want to use
     42  * the GPIO_PA(3) for other purposes, you should comment the line below and
     43  * the corresponding line in the host's devicetree.
     44  */
     45 #define AP_INT_NONWAKEUP            GPIO_PA(3)
     46 
     47 #define DEBUG_UART_UNITNO           1
     48 #define DEBUG_UART_GPIO_TX          GPIO_PA(9)
     49 #define DEBUG_UART_GPIO_RX          GPIO_PA(10)
     50 
     51 #define DEBUG_LOG_EVT               0x3B474F4C
     52 
     53 #define BL_FLASH_TABLE                                                  \
     54 {                                                                       \
     55     { (uint8_t *)(&BL),                      0x04000, BL_FLASH_BL     },\
     56     { (uint8_t *)(__eedata_start),           0x04000, BL_FLASH_EEDATA },\
     57     { (uint8_t *)(__eedata_start + 0x04000), 0x04000, BL_FLASH_EEDATA },\
     58     { (uint8_t *)(__code_start),             0x04000, BL_FLASH_KERNEL },\
     59     { (uint8_t *)(__code_start + 0x04000),   0x10000, BL_FLASH_KERNEL },\
     60     { (uint8_t *)(__code_start + 0x14000),   0x20000, BL_FLASH_KERNEL },\
     61     { (uint8_t *)(__shared_start),           0x20000, BL_FLASH_SHARED },\
     62     { (uint8_t *)(__shared_start + 0x20000), 0x20000, BL_FLASH_SHARED },\
     63     { (uint8_t *)(__shared_start + 0x40000), 0x20000, BL_FLASH_SHARED },\
     64     { (uint8_t *)(__shared_start + 0x60000), 0x20000, BL_FLASH_SHARED },\
     65     { (uint8_t *)(__shared_start + 0x80000), 0x20000, BL_FLASH_SHARED },\
     66     { (uint8_t *)(__shared_start + 0xA0000), 0x20000, BL_FLASH_SHARED },\
     67 }
     68 
     69 /* ------------------------------------------------------------------------ */
     70 /* sensor accel+gyro lsm6dsl (compatible lsm6dsm) on spi */
     71 
     72 // #define LSM6DSM_DBG_ENABLED                 1
     73 
     74 #define LSM6DSM_SPI_SLAVE_BUS_ID               1
     75 #define LSM6DSM_SPI_SLAVE_FREQUENCY_HZ         8000000
     76 #define LSM6DSM_SPI_SLAVE_CS_GPIO              GPIO_PB(12)
     77 
     78 #define LSM6DSM_INT_IRQ                        EXTI1_IRQn
     79 #define LSM6DSM_INT1_GPIO                      GPIO_PB(1)
     80 
     81 /* i2c slave sensor mag lis2mdl (lsm303agr compatible) */
     82 #define LSM6DSM_I2C_MASTER_LSM303AGR           1
     83 
     84 #define LSM6DSM_ACCEL_GYRO_ROT_MATRIX          -1, 0, 0, 0, -1, 0, 0, 0, 1
     85 #define LSM6DSM_MAGN_ROT_MATRIX                -1, 0, 0, 0, 1, 0, 0, 0, 1
     86 
     87 #define LSM6DSM_ACCEL_CALIB_ENABLED            1
     88 #define LSM6DSM_GYRO_CALIB_ENABLED             1
     89 #define LSM6DSM_MAGN_CALIB_ENABLED             1
     90 #define LSM6DSM_OVERTEMP_CALIB_ENABLED         1
     91 
     92 /* ------------------------------------------------------------------------ */
     93 /* sensor baro+temp lps22hb on i2c */
     94 /* unused PIN GPIO_PA(15), INT EXTI15_10_IRQn */
     95 
     96 // #define LPS22HB_DBG_ENABLED                 1
     97 
     98 #define LPS22HB_I2C_BUS_ID                     1
     99 #define LPS22HB_I2C_SPEED                      400000
    100 #define LPS22HB_I2C_ADDR                       0x5D
    101 
    102 /* ------------------------------------------------------------------------ */
    103 /* sensor humidity hts221 on i2c */
    104 /* unused PIN GPIO_PA(2), INT EXTI2_IRQn is used as button */
    105 
    106 // #define HTS221_DBG_ENABLED                  1
    107 
    108 #define HTS221_I2C_BUS_ID                      1
    109 #define HTS221_I2C_SPEED                       400000
    110 #define HTS221_I2C_ADDR                        0x5F
    111 
    112 /* ------------------------------------------------------------------------ */
    113 /* sensor als isl29034 on i2c */
    114 
    115 #define ISL29034_I2C_BUS_ID                    1
    116 #define ISL29034_I2C_SPEED                     400000
    117 #define ISL29034_I2C_ADDR                      0x44
    118 
    119 /* ------------------------------------------------------------------------ */
    120 /* sensor proximity vl53l0x on i2c */
    121 
    122 // FIXME
    123 // I2C_BUS_ID 1
    124 // I2C_SPEED  400000
    125 // I2C_ADDR   0x29
    126 // PIN        GPIO_PB(3)
    127 // IRQ        EXTI3_IRQn
    128 
    129 /* ------------------------------------------------------------------------ */
    130 /* sensor hall mrms501a on gpio */
    131 
    132 #define HALL_PIN                               GPIO_PB(5)
    133 #define HALL_IRQ                               EXTI9_5_IRQn
    134 
    135 /* ------------------------------------------------------------------------ */
    136 /* microphone on i2s */
    137 
    138 // FIXME
    139 // I2S_BUS_ID 4
    140 
    141 /* ------------------------------------------------------------------------ */
    142 /* led controller lp3943 on i2c */
    143 
    144 #define LP3943_I2C_BUS_ID                      2
    145 #define LP3943_I2C_SPEED                       200000
    146 #define LP3943_I2C_ADDR                        0x60
    147 
    148 /* ------------------------------------------------------------------------ */
    149 /* button on gpio */
    150 
    151 // FIXME
    152 // PIN GPIO_PA(2)
    153 // INT EXTI2_IRQn
    154 
    155 #ifdef __cplusplus
    156 }
    157 #endif
    158 
    159 #endif
    160