88 lines
3 KiB
C
88 lines
3 KiB
C
/*
|
|
* Copyright (c) 2024 Jianxiong Gu <jianxiong.gu@outlook.com>
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
#ifndef ZEPHYR_DRIVERS_USBC_TCPC_RT1715_H_
|
|
#define ZEPHYR_DRIVERS_USBC_TCPC_RT1715_H_
|
|
|
|
#define RT1715_REG_SYS_CTRL_1 0x90
|
|
/** VCONN OVP occurs and discharge path turn-on */
|
|
#define RT1715_REG_SYS_CTRL_1_VCONN_DISCHARGE_EN BIT(5)
|
|
/** Low power mode Rd or Rp */
|
|
#define RT1715_REG_SYS_CTRL_1_BMCIO_LPR_PRD BIT(4)
|
|
/** Low power mode enable */
|
|
#define RT1715_REG_SYS_CTRL_1_BMCIO_LP_EN BIT(3)
|
|
/** BMCIO BandGap enable */
|
|
#define RT1715_REG_SYS_CTRL_1_BMCIO_BG_EN BIT(2)
|
|
/** VBUS detection enable */
|
|
#define RT1715_REG_SYS_CTRL_1_VBUS_DETECT_EN BIT(1)
|
|
/** 24M oscillator for BMC communication */
|
|
#define RT1715_REG_SYS_CTRL_1_BMCIO_OSC_EN BIT(0)
|
|
|
|
#define RT1715_REG_OCP 0x93
|
|
/** VCONN over-current control selection */
|
|
#define RT1715_REG_OCP_BMCIO_VCON_OCP GENMASK(7, 5)
|
|
#define RT1715_VCON_OCP_200MA (0 << 5)
|
|
#define RT1715_VCON_OCP_300MA (1 << 5)
|
|
#define RT1715_VCON_OCP_400MA (2 << 5)
|
|
#define RT1715_VCON_OCP_500MA (3 << 5)
|
|
#define RT1715_VCON_OCP_600MA (4 << 5)
|
|
|
|
#define RT1715_REG_RT_ST 0x97
|
|
/** If VBUS under 0.8V */
|
|
#define RT1715_REG_RT_ST_VBUS_80 BIT(1)
|
|
|
|
#define RT1715_REG_RT_INT 0x98
|
|
/** Ra detach */
|
|
#define RT1715_REG_RT_INT_RA_DETACH BIT(5)
|
|
/** VBUS under 0.8V */
|
|
#define RT1715_REG_RT_INT_VBUS_80 BIT(1)
|
|
/** Low power mode exited */
|
|
#define RT1715_REG_RT_INT_WAKEUP BIT(0)
|
|
|
|
#define RT1715_REG_RT_INT_MASK 0x99
|
|
|
|
#define RT1715_REG_LP_CTRL 0x9B
|
|
/** Clock_300K divided from Clock_24M */
|
|
#define RT1715_REG_LP_CTRL_CK_300K_SEL BIT(7)
|
|
/** Non-Shutdown mode */
|
|
#define RT1715_REG_LP_CTRL_SHUTDOWN_OFF BIT(5)
|
|
/** Enable PD3.0 Extended message */
|
|
#define RT1715_REG_LP_CTRL_ENEXTMSG BIT(4)
|
|
/** Auto enter idle mode enable */
|
|
#define RT1715_REG_LP_CTRL_AUTOIDLE_EN BIT(3)
|
|
/** Enter idle mode timeout time */
|
|
#define RT1715_REG_LP_CTRL_AUTOIDLE_TIMEOUT GENMASK(2, 0)
|
|
#define RT1715_AUTOIDLE_TIMEOUT_96P0_MS 7
|
|
#define RT1715_AUTOIDLE_TIMEOUT_83P2_MS 6
|
|
#define RT1715_AUTOIDLE_TIMEOUT_70P4_MS 5
|
|
#define RT1715_AUTOIDLE_TIMEOUT_57P6_MS 4
|
|
#define RT1715_AUTOIDLE_TIMEOUT_44P8_MS 3
|
|
#define RT1715_AUTOIDLE_TIMEOUT_32P0_MS 2
|
|
#define RT1715_AUTOIDLE_TIMEOUT_19P2_MS 1
|
|
#define RT1715_AUTOIDLE_TIMEOUT_6P4_MS 0
|
|
|
|
#define RT1715_REG_SYS_WAKEUP 0x9F
|
|
/** Wakeup function enable */
|
|
#define RT1715_REG_SYS_WAKEUP_EN BIT(7)
|
|
|
|
#define RT1715_REG_SW_RST 0xA0
|
|
/** Write 1 to trigger software reset */
|
|
#define RT1715_REG_SW_RST_EN BIT(0)
|
|
|
|
#define RT1715_REG_DRP_CTRL_1 0xA2
|
|
/**
|
|
* The period a DRP will complete a Source to Sink and back advertisement.
|
|
* (Period = TDRP * 6.4 + 51.2ms)
|
|
*/
|
|
#define RT1715_REG_DRP_CTRL_1_TDRP GENMASK(3, 0)
|
|
|
|
#define RT1715_REG_DRP_CTRL_2 0xA3
|
|
/**
|
|
* The percent of time that a DRP will advertise Source during tDRP.
|
|
* (DUTY = (DCSRCDRP[9:0] + 1) / 1024)
|
|
*/
|
|
#define RT1715_REG_DRP_CTRL_2_DCSRCDRP GENMASK(9, 0)
|
|
|
|
#endif /* ZEPHYR_DRIVERS_USBC_TCPC_UCPD_NUMAKER_H_ */
|