123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 |
- /* Copyright (C) 2018 RDA Technologies Limited and/or its affiliates("RDA").
- * All rights reserved.
- *
- * This software is supplied "AS IS" without any warranties.
- * RDA assumes no responsibility or liability for the use of the software,
- * conveys no license or title under any patent, copyright, or mask work
- * right to the product. RDA reserves the right to make changes in the
- * software without notification. RDA also make no representation or
- * warranty that such application will be suitable for the specified use
- * without further testing or modification.
- */
- #ifndef _GPIO_H_
- #define _GPIO_H_
- // Auto generated by dtools(see dtools.txt for its version).
- // Don't edit it manually!
- #define IDX_GPIO_DCON (0)
- #define IDX_GPO_CHG (0)
- #define REG_GPIO1_BASE (0x51703000)
- #define REG_GPIO2_BASE (0x51503000)
- typedef volatile struct
- {
- uint32_t gpio_oen_val; // 0x00000000
- uint32_t gpio_oen_set_out; // 0x00000004
- uint32_t gpio_oen_set_in; // 0x00000008
- uint32_t gpio_val_reg; // 0x0000000c
- uint32_t gpio_set_reg; // 0x00000010
- uint32_t gpio_clr_reg; // 0x00000014
- uint32_t gpint_ctrl_r_set_reg; // 0x00000018
- uint32_t gpint_ctrl_r_clr_reg; // 0x0000001c
- uint32_t int_clr; // 0x00000020
- uint32_t int_status; // 0x00000024
- uint32_t chg_ctrl; // 0x00000028
- uint32_t chg_cmd; // 0x0000002c
- uint32_t gpo_set_reg; // 0x00000030
- uint32_t gpo_clr_reg; // 0x00000034
- uint32_t gpint_ctrl_f_set_reg; // 0x00000038
- uint32_t gpint_ctrl_f_clr_reg; // 0x0000003c
- uint32_t dbn_en_set_reg; // 0x00000040
- uint32_t dbn_en_clr_reg; // 0x00000044
- uint32_t gpint_mode_set_reg; // 0x00000048
- uint32_t gpint_mode_clr_reg; // 0x0000004c
- } HWP_GPIO_T;
- #define hwp_gpio1 ((HWP_GPIO_T *)REG_ACCESS_ADDRESS(REG_GPIO1_BASE))
- #define hwp_gpio2 ((HWP_GPIO_T *)REG_ACCESS_ADDRESS(REG_GPIO2_BASE))
- // chg_ctrl
- typedef union {
- uint32_t v;
- struct
- {
- uint32_t out_time : 4; // [3:0]
- uint32_t wait_time : 6; // [9:4]
- uint32_t __15_10 : 6; // [15:10]
- uint32_t int_mode : 2; // [17:16]
- uint32_t __31_18 : 14; // [31:18]
- } b;
- } REG_GPIO_CHG_CTRL_T;
- // chg_cmd
- typedef union {
- uint32_t v;
- struct
- {
- uint32_t dcon_mode_set : 1; // [0], write set
- uint32_t __3_1 : 3; // [3:1]
- uint32_t chg_mode_set : 1; // [4], write set
- uint32_t __7_5 : 3; // [7:5]
- uint32_t dcon_mode_clr : 1; // [8], write clear
- uint32_t __11_9 : 3; // [11:9]
- uint32_t chg_mode_clr : 1; // [12], write clear
- uint32_t __23_13 : 11; // [23:13]
- uint32_t chg_down : 1; // [24], write set
- uint32_t __31_25 : 7; // [31:25]
- } b;
- } REG_GPIO_CHG_CMD_T;
- // gpo_set_reg
- typedef union {
- uint32_t v;
- struct
- {
- uint32_t gpo_set : 8; // [7:0], write set
- uint32_t __31_8 : 24; // [31:8]
- } b;
- } REG_GPIO_GPO_SET_REG_T;
- // gpo_clr_reg
- typedef union {
- uint32_t v;
- struct
- {
- uint32_t gpo_clr : 8; // [7:0], write clear
- uint32_t __31_8 : 24; // [31:8]
- } b;
- } REG_GPIO_GPO_CLR_REG_T;
- // chg_ctrl
- #define GPIO_OUT_TIME(n) (((n)&0xf) << 0)
- #define GPIO_WAIT_TIME(n) (((n)&0x3f) << 4)
- #define GPIO_INT_MODE(n) (((n)&0x3) << 16)
- #define GPIO_INT_MODE_L2H (0 << 16)
- #define GPIO_INT_MODE_H2L (1 << 16)
- #define GPIO_INT_MODE_RR (3 << 16)
- #define GPIO_INT_MODE_V_L2H (0)
- #define GPIO_INT_MODE_V_H2L (1)
- #define GPIO_INT_MODE_V_RR (3)
- // chg_cmd
- #define GPIO_DCON_MODE_SET (1 << 0)
- #define GPIO_CHG_MODE_SET (1 << 4)
- #define GPIO_DCON_MODE_CLR (1 << 8)
- #define GPIO_CHG_MODE_CLR (1 << 12)
- #define GPIO_CHG_DOWN (1 << 24)
- // gpo_set_reg
- #define GPIO_GPO_SET(n) (((n)&0xff) << 0)
- // gpo_clr_reg
- #define GPIO_GPO_CLR(n) (((n)&0xff) << 0)
- #endif // _GPIO_H_
|