colibri_imx6: fix video stdout in default environment
[oweals/u-boot.git] / include / twl4030.h
index 093c61d6db0c969222b782ed074d0fb00606b74d..c27ad615eebf9cca9c01ec02f433566e2ac5457b 100644 (file)
@@ -1,9 +1,8 @@
+/* SPDX-License-Identifier: GPL-2.0+ */
 /*
  * Copyright (c) 2009 Wind River Systems, Inc.
  * Tom Rix <Tom.Rix at windriver.com>
  *
- * SPDX-License-Identifier:    GPL-2.0+
- *
  * Derived from code on omapzoom, git://git.omapzoom.com/repo/u-boot.git
  *
  * Copyright (C) 2007-2009 Texas Instruments, Inc.
 #define TWL4030_PM_MASTER_BB_CFG                       0x6D
 #define TWL4030_PM_MASTER_MISC_TST                     0x6E
 #define TWL4030_PM_MASTER_TRIM1                                0x6F
-/* P[1-3]_SW_EVENTS */
-#define TWL4030_PM_MASTER_SW_EVENTS_STOPON_PWRON       (1 << 6)
-#define TWL4030_PM_MASTER_SW_EVENTS_STOPON_SYSEN       (1 << 5)
-#define TWL4030_PM_MASTER_SW_EVENTS_ENABLE_WARMRESET   (1 << 4)
-#define TWL4030_PM_MASTER_SW_EVENTS_LVL_WAKEUP         (1 << 3)
-#define TWL4030_PM_MASTER_SW_EVENTS_DEVACT             (1 << 2)
-#define TWL4030_PM_MASTER_SW_EVENTS_DEVSLP             (1 << 1)
-#define TWL4030_PM_MASTER_SW_EVENTS_DEVOFF             (1 << 0)
 
 /* Power bus message definitions */
 
 /* Power Reference */
 #define RES_Main_Ref            28
 
+/* P[1-3]_SW_EVENTS */
+#define TWL4030_PM_MASTER_SW_EVENTS_STOPON_PWRON       (1 << 6)
+#define TWL4030_PM_MASTER_SW_EVENTS_STOPON_SYSEN       (1 << 5)
+#define TWL4030_PM_MASTER_SW_EVENTS_ENABLE_WARMRESET   (1 << 4)
+#define TWL4030_PM_MASTER_SW_EVENTS_LVL_WAKEUP         (1 << 3)
+#define TWL4030_PM_MASTER_SW_EVENTS_DEVACT             (1 << 2)
+#define TWL4030_PM_MASTER_SW_EVENTS_DEVSLP             (1 << 1)
+#define TWL4030_PM_MASTER_SW_EVENTS_DEVOFF             (1 << 0)
+
+/* HW conditions */
+#define TWL4030_PM_MASTER_STS_HW_CONDITIONS_PWON       (1 << 0)
+#define TWL4030_PM_MASTER_STS_HW_CONDITIONS_CHG                (1 << 1)
+#define TWL4030_PM_MASTER_STS_HW_CONDITIONS_USB                (1 << 2)
+#define TWL4030_PM_MASTER_STS_HW_CONDITIONS_VBUS       (1 << 7)
+
+/* Power transition */
+#define TWL4030_PM_MASTER_CFG_TRANSITION_STARTON_PWON  (1 << 0)
+#define TWL4030_PM_MASTER_CFG_TRANSITION_STARTON_CHG   (1 << 1)
+#define TWL4030_PM_MASTER_CFG_TRANSITION_STARTON_USB   (1 << 2)
+#define TWL4030_PM_MASTER_CFG_TRANSITION_STARTON_RTC   (1 << 3)
+#define TWL4030_PM_MASTER_CFG_TRANSITION_STARTON_VBAT  (1 << 4)
+#define TWL4030_PM_MASTER_CFG_TRANSITION_STARTON_VBUS  (1 << 5)
+#define TWL4030_PM_MASTER_CFG_TRANSITION_STARTON_SWBUG (1 << 7)
+
+/* PWRANA2 */
+#define TWL4030_PM_MASTER_CFG_PWRANA2_LOJIT0_LOWV      (1 << 1)
+#define TWL4030_PM_MASTER_CFG_PWRANA2_LOJIT1_LOWV      (1 << 2)
+
 #define TOTAL_RESOURCES                28
 /*
  * Power Bus Message Format ... these can be sent individually by Linux,
 
 /* Voltage Selection in PM Receiver Module */
 #define TWL4030_PM_RECEIVER_VAUX2_VSEL_18              0x05
+#define TWL4030_PM_RECEIVER_VAUX2_VSEL_28              0x09
+#define TWL4030_PM_RECEIVER_VAUX3_VSEL_18              0x01
 #define TWL4030_PM_RECEIVER_VAUX3_VSEL_28              0x03
 #define TWL4030_PM_RECEIVER_VPLL2_VSEL_18              0x05
 #define TWL4030_PM_RECEIVER_VDAC_VSEL_18               0x03
 #define TWL4030_PM_RECEIVER_VMMC1_VSEL_30              0x02
 #define TWL4030_PM_RECEIVER_VMMC1_VSEL_32              0x03
+#define TWL4030_PM_RECEIVER_VMMC2_VSEL_30              0x0B
+#define TWL4030_PM_RECEIVER_VMMC2_VSEL_32              0x0C
 #define TWL4030_PM_RECEIVER_VSIM_VSEL_18               0x03
 
 /* Device Selection in PM Receiver Module */
  *   examples are TWL4030_PM_RECEIVER_VMMC1_DEV_GRP and
  *   TWL4030_LED_LEDEN.
  */
+#ifndef CONFIG_DM_I2C
 static inline int twl4030_i2c_write_u8(u8 chip_no, u8 reg, u8 val)
 {
        return i2c_write(chip_no, reg, 1, &val, 1);
@@ -634,20 +658,36 @@ static inline int twl4030_i2c_read_u8(u8 chip_no, u8 reg, u8 *val)
 {
        return i2c_read(chip_no, reg, 1, val, 1);
 }
-
+#else
+int twl4030_i2c_write_u8(u8 chip_no, u8 reg, u8 val);
+int twl4030_i2c_read_u8(u8 chip_no, u8 reg, u8 *val);
+#endif
 /*
  * Power
  */
 
 /* For hardware resetting */
 void twl4030_power_reset_init(void);
+/* For power off */
+void twl4030_power_off(void);
 /* For setting device group and voltage */
 void twl4030_pmrecv_vsel_cfg(u8 vsel_reg, u8 vsel_val,
                             u8 dev_grp, u8 dev_grp_sel);
 /* For initializing power device */
 void twl4030_power_init(void);
 /* For initializing mmc power */
-void twl4030_power_mmc_init(void);
+void twl4030_power_mmc_init(int dev_index);
+
+/*
+ * Input
+ */
+
+int twl4030_input_power_button(void);
+int twl4030_input_charger(void);
+int twl4030_input_usb(void);
+
+int twl4030_keypad_scan(unsigned char *matrix);
+int twl4030_keypad_key(unsigned char *matrix, u8 c, u8 r);
 
 /*
  * LED