You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
Merge tag 'mfd-for-linus-4.4' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd
Pull MFD updates from Lee Jones: "New Device Support: - Add support for 88pm860; 88pm80x - Add support for 24c08 EEPROM; at24 - Add support for Broxton Whiskey Cove; intel* - Add support for RTS522A; rts5227 - Add support for I2C devices; intel_quark_i2c_gpio New Functionality: - Add microphone support; arizona - Add general purpose switch support; arizona - Add fuel-gauge support; da9150-core - Add shutdown support; sec-core - Add charger support; tps65217 - Add flexible serial communication unit support; atmel-flexcom - Add power button support; axp20x - Add led-flash support; rt5033 Core Frameworks: - Supply a generic macro for defining Regmap IRQs - Rework ACPI child device matching Fix-ups: - Use Regmap to access registers; tps6105x - Use DEFINE_RES_IRQ_NAMED() macro; da9150 - Re-arrange device registration order; intel_quark_i2c_gpio - Allow OF matching; cros_ec_i2c, atmel-hlcdc, hi6421-pmic, max8997, sm501 - Handle deferred probe; twl6040 - Improve accuracy of headphone detect; arizona - Unnecessary MODULE_ALIAS() removal; bcm590xx, rt5033 - Remove unused code; htc-i2cpld, arizona, pcf50633-irq, sec-core - Simplify code; kempld, rts5209, da903x, lm3533, da9052, arizona - Remove #iffery; arizona - DT binding adaptions; many Bug Fixes: - Fix possible NULL pointer dereference; wm831x, tps6105x - Fix 64bit bug; intel_soc_pmic_bxtwc - Fix signedness issue; arizona" * tag 'mfd-for-linus-4.4' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd: (73 commits) bindings: mfd: s2mps11: Add documentation for s2mps15 PMIC mfd: sec-core: Remove unused s2mpu02-rtc and s2mpu02-clk children extcon: arizona: Add extcon specific device tree binding document MAINTAINERS: Add binding docs for Cirrus Logic/Wolfson Arizona devices mfd: arizona: Remove bindings covered in new subsystem specific docs mfd: rt5033: Add RT5033 Flash led sub device mfd: lpss: Add Intel Broxton PCI IDs mfd: lpss: Add Broxton ACPI IDs mfd: arizona: Signedness bug in arizona_runtime_suspend() mfd: axp20x: Add a cell for the power button part of the, axp288 PMICs mfd: dt-bindings: Document pulled down WRSTBI pin on S2MPS1X mfd: sec-core: Disable buck voltage reset on watchdog falling edge mfd: sec-core: Dump PMIC revision to find out the HW mfd: arizona: Use correct type ID for device tree config mfd: arizona: Remove use of codec build config #ifdefs mfd: arizona: Simplify adding subdevices mfd: arizona: Downgrade type mismatch messages to dev_warn mfd: arizona: Factor out checking of jack detection state mfd: arizona: Factor out DCVDD isolation control mfd: Make TPS6105X select REGMAP_I2C ...
This commit is contained in:
@@ -21,6 +21,7 @@ enum {
|
||||
CHIP_INVALID = 0,
|
||||
CHIP_PM800,
|
||||
CHIP_PM805,
|
||||
CHIP_PM860,
|
||||
CHIP_MAX,
|
||||
};
|
||||
|
||||
|
||||
@@ -1065,6 +1065,16 @@
|
||||
#define ARIZONA_CLOCK_CONTROL 0xF00
|
||||
#define ARIZONA_ANC_SRC 0xF01
|
||||
#define ARIZONA_DSP_STATUS 0xF02
|
||||
#define ARIZONA_ANC_COEFF_START 0xF08
|
||||
#define ARIZONA_ANC_COEFF_END 0xF12
|
||||
#define ARIZONA_FCL_FILTER_CONTROL 0xF15
|
||||
#define ARIZONA_FCL_ADC_REFORMATTER_CONTROL 0xF17
|
||||
#define ARIZONA_FCL_COEFF_START 0xF18
|
||||
#define ARIZONA_FCL_COEFF_END 0xF69
|
||||
#define ARIZONA_FCR_FILTER_CONTROL 0xF70
|
||||
#define ARIZONA_FCR_ADC_REFORMATTER_CONTROL 0xF72
|
||||
#define ARIZONA_FCR_COEFF_START 0xF73
|
||||
#define ARIZONA_FCR_COEFF_END 0xFC4
|
||||
#define ARIZONA_DSP1_CONTROL_1 0x1100
|
||||
#define ARIZONA_DSP1_CLOCKING_1 0x1101
|
||||
#define ARIZONA_DSP1_STATUS_1 0x1104
|
||||
@@ -8050,6 +8060,66 @@
|
||||
#define ARIZONA_ISRC3_NOTCH_ENA_SHIFT 0 /* ISRC3_NOTCH_ENA */
|
||||
#define ARIZONA_ISRC3_NOTCH_ENA_WIDTH 1 /* ISRC3_NOTCH_ENA */
|
||||
|
||||
/*
|
||||
* R3840 (0xF00) - Clock Control
|
||||
*/
|
||||
#define ARIZONA_EXT_NG_SEL_CLR 0x0080 /* EXT_NG_SEL_CLR */
|
||||
#define ARIZONA_EXT_NG_SEL_CLR_MASK 0x0080 /* EXT_NG_SEL_CLR */
|
||||
#define ARIZONA_EXT_NG_SEL_CLR_SHIFT 7 /* EXT_NG_SEL_CLR */
|
||||
#define ARIZONA_EXT_NG_SEL_CLR_WIDTH 1 /* EXT_NG_SEL_CLR */
|
||||
#define ARIZONA_EXT_NG_SEL_SET 0x0040 /* EXT_NG_SEL_SET */
|
||||
#define ARIZONA_EXT_NG_SEL_SET_MASK 0x0040 /* EXT_NG_SEL_SET */
|
||||
#define ARIZONA_EXT_NG_SEL_SET_SHIFT 6 /* EXT_NG_SEL_SET */
|
||||
#define ARIZONA_EXT_NG_SEL_SET_WIDTH 1 /* EXT_NG_SEL_SET */
|
||||
#define ARIZONA_CLK_R_ENA_CLR 0x0020 /* CLK_R_ENA_CLR */
|
||||
#define ARIZONA_CLK_R_ENA_CLR_MASK 0x0020 /* CLK_R_ENA_CLR */
|
||||
#define ARIZONA_CLK_R_ENA_CLR_SHIFT 5 /* CLK_R_ENA_CLR */
|
||||
#define ARIZONA_CLK_R_ENA_CLR_WIDTH 1 /* CLK_R_ENA_CLR */
|
||||
#define ARIZONA_CLK_R_ENA_SET 0x0010 /* CLK_R_ENA_SET */
|
||||
#define ARIZONA_CLK_R_ENA_SET_MASK 0x0010 /* CLK_R_ENA_SET */
|
||||
#define ARIZONA_CLK_R_ENA_SET_SHIFT 4 /* CLK_R_ENA_SET */
|
||||
#define ARIZONA_CLK_R_ENA_SET_WIDTH 1 /* CLK_R_ENA_SET */
|
||||
#define ARIZONA_CLK_NG_ENA_CLR 0x0008 /* CLK_NG_ENA_CLR */
|
||||
#define ARIZONA_CLK_NG_ENA_CLR_MASK 0x0008 /* CLK_NG_ENA_CLR */
|
||||
#define ARIZONA_CLK_NG_ENA_CLR_SHIFT 3 /* CLK_NG_ENA_CLR */
|
||||
#define ARIZONA_CLK_NG_ENA_CLR_WIDTH 1 /* CLK_NG_ENA_CLR */
|
||||
#define ARIZONA_CLK_NG_ENA_SET 0x0004 /* CLK_NG_ENA_SET */
|
||||
#define ARIZONA_CLK_NG_ENA_SET_MASK 0x0004 /* CLK_NG_ENA_SET */
|
||||
#define ARIZONA_CLK_NG_ENA_SET_SHIFT 2 /* CLK_NG_ENA_SET */
|
||||
#define ARIZONA_CLK_NG_ENA_SET_WIDTH 1 /* CLK_NG_ENA_SET */
|
||||
#define ARIZONA_CLK_L_ENA_CLR 0x0002 /* CLK_L_ENA_CLR */
|
||||
#define ARIZONA_CLK_L_ENA_CLR_MASK 0x0002 /* CLK_L_ENA_CLR */
|
||||
#define ARIZONA_CLK_L_ENA_CLR_SHIFT 1 /* CLK_L_ENA_CLR */
|
||||
#define ARIZONA_CLK_L_ENA_CLR_WIDTH 1 /* CLK_L_ENA_CLR */
|
||||
#define ARIZONA_CLK_L_ENA_SET 0x0001 /* CLK_L_ENA_SET */
|
||||
#define ARIZONA_CLK_L_ENA_SET_MASK 0x0001 /* CLK_L_ENA_SET */
|
||||
#define ARIZONA_CLK_L_ENA_SET_SHIFT 0 /* CLK_L_ENA_SET */
|
||||
#define ARIZONA_CLK_L_ENA_SET_WIDTH 1 /* CLK_L_ENA_SET */
|
||||
|
||||
/*
|
||||
* R3841 (0xF01) - ANC SRC
|
||||
*/
|
||||
#define ARIZONA_IN_RXANCR_SEL_MASK 0x0070 /* IN_RXANCR_SEL - [4:6] */
|
||||
#define ARIZONA_IN_RXANCR_SEL_SHIFT 4 /* IN_RXANCR_SEL - [4:6] */
|
||||
#define ARIZONA_IN_RXANCR_SEL_WIDTH 3 /* IN_RXANCR_SEL - [4:6] */
|
||||
#define ARIZONA_IN_RXANCL_SEL_MASK 0x0007 /* IN_RXANCL_SEL - [0:2] */
|
||||
#define ARIZONA_IN_RXANCL_SEL_SHIFT 0 /* IN_RXANCL_SEL - [0:2] */
|
||||
#define ARIZONA_IN_RXANCL_SEL_WIDTH 3 /* IN_RXANCL_SEL - [0:2] */
|
||||
|
||||
/*
|
||||
* R3863 (0xF17) - FCL ADC Reformatter Control
|
||||
*/
|
||||
#define ARIZONA_FCL_MIC_MODE_SEL 0x000C /* FCL_MIC_MODE_SEL - [2:3] */
|
||||
#define ARIZONA_FCL_MIC_MODE_SEL_SHIFT 2 /* FCL_MIC_MODE_SEL - [2:3] */
|
||||
#define ARIZONA_FCL_MIC_MODE_SEL_WIDTH 2 /* FCL_MIC_MODE_SEL - [2:3] */
|
||||
|
||||
/*
|
||||
* R3954 (0xF72) - FCR ADC Reformatter Control
|
||||
*/
|
||||
#define ARIZONA_FCR_MIC_MODE_SEL 0x000C /* FCR_MIC_MODE_SEL - [2:3] */
|
||||
#define ARIZONA_FCR_MIC_MODE_SEL_SHIFT 2 /* FCR_MIC_MODE_SEL - [2:3] */
|
||||
#define ARIZONA_FCR_MIC_MODE_SEL_WIDTH 2 /* FCR_MIC_MODE_SEL - [2:3] */
|
||||
|
||||
/*
|
||||
* R4352 (0x1100) - DSP1 Control 1
|
||||
*/
|
||||
|
||||
@@ -18,6 +18,12 @@
|
||||
|
||||
struct irq_domain;
|
||||
|
||||
/* Matches ACPI PNP id, either _HID or _CID, or ACPI _ADR */
|
||||
struct mfd_cell_acpi_match {
|
||||
const char *pnpid;
|
||||
const unsigned long long adr;
|
||||
};
|
||||
|
||||
/*
|
||||
* This struct describes the MFD part ("cell").
|
||||
* After registration the copy of this structure will become the platform data
|
||||
@@ -44,8 +50,8 @@ struct mfd_cell {
|
||||
*/
|
||||
const char *of_compatible;
|
||||
|
||||
/* Matches ACPI PNP id, either _HID or _CID */
|
||||
const char *acpi_pnpid;
|
||||
/* Matches ACPI */
|
||||
const struct mfd_cell_acpi_match *acpi_match;
|
||||
|
||||
/*
|
||||
* These resources can be specified relative to the parent device.
|
||||
|
||||
@@ -65,6 +65,9 @@
|
||||
#define DA9052_GPIO_2_3_REG 22
|
||||
#define DA9052_GPIO_4_5_REG 23
|
||||
#define DA9052_GPIO_6_7_REG 24
|
||||
#define DA9052_GPIO_8_9_REG 25
|
||||
#define DA9052_GPIO_10_11_REG 26
|
||||
#define DA9052_GPIO_12_13_REG 27
|
||||
#define DA9052_GPIO_14_15_REG 28
|
||||
|
||||
/* POWER SEQUENCER CONTROL REGISTERS */
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
#define __DA9150_CORE_H
|
||||
|
||||
#include <linux/device.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/regmap.h>
|
||||
|
||||
@@ -46,23 +47,39 @@
|
||||
#define DA9150_IRQ_GPADC 19
|
||||
#define DA9150_IRQ_WKUP 20
|
||||
|
||||
/* I2C sub-device address */
|
||||
#define DA9150_QIF_I2C_ADDR_LSB 0x5
|
||||
|
||||
struct da9150_fg_pdata {
|
||||
u32 update_interval; /* msecs */
|
||||
u8 warn_soc_lvl; /* % value */
|
||||
u8 crit_soc_lvl; /* % value */
|
||||
};
|
||||
|
||||
struct da9150_pdata {
|
||||
int irq_base;
|
||||
struct da9150_fg_pdata *fg_pdata;
|
||||
};
|
||||
|
||||
struct da9150 {
|
||||
struct device *dev;
|
||||
struct regmap *regmap;
|
||||
struct i2c_client *core_qif;
|
||||
|
||||
struct regmap_irq_chip_data *regmap_irq_data;
|
||||
int irq;
|
||||
int irq_base;
|
||||
};
|
||||
|
||||
/* Device I/O */
|
||||
/* Device I/O - Query Interface for FG and standard register access */
|
||||
void da9150_read_qif(struct da9150 *da9150, u8 addr, int count, u8 *buf);
|
||||
void da9150_write_qif(struct da9150 *da9150, u8 addr, int count, const u8 *buf);
|
||||
|
||||
u8 da9150_reg_read(struct da9150 *da9150, u16 reg);
|
||||
void da9150_reg_write(struct da9150 *da9150, u16 reg, u8 val);
|
||||
void da9150_set_bits(struct da9150 *da9150, u16 reg, u8 mask, u8 val);
|
||||
|
||||
void da9150_bulk_read(struct da9150 *da9150, u16 reg, int count, u8 *buf);
|
||||
void da9150_bulk_write(struct da9150 *da9150, u16 reg, int count, const u8 *buf);
|
||||
|
||||
#endif /* __DA9150_CORE_H */
|
||||
|
||||
@@ -0,0 +1,69 @@
|
||||
/*
|
||||
* intel_bxtwc.h - Header file for Intel Broxton Whiskey Cove PMIC
|
||||
*
|
||||
* Copyright (C) 2015 Intel Corporation. All rights reserved.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms and conditions of the GNU General Public License,
|
||||
* version 2, as published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
* more details.
|
||||
*/
|
||||
|
||||
#include <linux/mfd/intel_soc_pmic.h>
|
||||
|
||||
#ifndef __INTEL_BXTWC_H__
|
||||
#define __INTEL_BXTWC_H__
|
||||
|
||||
/* BXT WC devices */
|
||||
#define BXTWC_DEVICE1_ADDR 0x4E
|
||||
#define BXTWC_DEVICE2_ADDR 0x4F
|
||||
#define BXTWC_DEVICE3_ADDR 0x5E
|
||||
|
||||
/* device1 Registers */
|
||||
#define BXTWC_CHIPID 0x4E00
|
||||
#define BXTWC_CHIPVER 0x4E01
|
||||
|
||||
#define BXTWC_SCHGRIRQ0_ADDR 0x5E1A
|
||||
#define BXTWC_CHGRCTRL0_ADDR 0x5E16
|
||||
#define BXTWC_CHGRCTRL1_ADDR 0x5E17
|
||||
#define BXTWC_CHGRCTRL2_ADDR 0x5E18
|
||||
#define BXTWC_CHGRSTATUS_ADDR 0x5E19
|
||||
#define BXTWC_THRMBATZONE_ADDR 0x4F22
|
||||
|
||||
#define BXTWC_USBPATH_ADDR 0x5E19
|
||||
#define BXTWC_USBPHYCTRL_ADDR 0x5E07
|
||||
#define BXTWC_USBIDCTRL_ADDR 0x5E05
|
||||
#define BXTWC_USBIDEN_MASK 0x01
|
||||
#define BXTWC_USBIDSTAT_ADDR 0x00FF
|
||||
#define BXTWC_USBSRCDETSTATUS_ADDR 0x5E29
|
||||
|
||||
#define BXTWC_DBGUSBBC1_ADDR 0x5FE0
|
||||
#define BXTWC_DBGUSBBC2_ADDR 0x5FE1
|
||||
#define BXTWC_DBGUSBBCSTAT_ADDR 0x5FE2
|
||||
|
||||
#define BXTWC_WAKESRC_ADDR 0x4E22
|
||||
#define BXTWC_WAKESRC2_ADDR 0x4EE5
|
||||
#define BXTWC_CHRTTADDR_ADDR 0x5E22
|
||||
#define BXTWC_CHRTTDATA_ADDR 0x5E23
|
||||
|
||||
#define BXTWC_STHRMIRQ0_ADDR 0x4F19
|
||||
#define WC_MTHRMIRQ1_ADDR 0x4E12
|
||||
#define WC_STHRMIRQ1_ADDR 0x4F1A
|
||||
#define WC_STHRMIRQ2_ADDR 0x4F1B
|
||||
|
||||
#define BXTWC_THRMZN0H_ADDR 0x4F44
|
||||
#define BXTWC_THRMZN0L_ADDR 0x4F45
|
||||
#define BXTWC_THRMZN1H_ADDR 0x4F46
|
||||
#define BXTWC_THRMZN1L_ADDR 0x4F47
|
||||
#define BXTWC_THRMZN2H_ADDR 0x4F48
|
||||
#define BXTWC_THRMZN2L_ADDR 0x4F49
|
||||
#define BXTWC_THRMZN3H_ADDR 0x4F4A
|
||||
#define BXTWC_THRMZN3L_ADDR 0x4F4B
|
||||
#define BXTWC_THRMZN4H_ADDR 0x4F4C
|
||||
#define BXTWC_THRMZN4L_ADDR 0x4F4D
|
||||
|
||||
#endif
|
||||
@@ -25,6 +25,8 @@ struct intel_soc_pmic {
|
||||
int irq;
|
||||
struct regmap *regmap;
|
||||
struct regmap_irq_chip_data *irq_chip_data;
|
||||
struct regmap_irq_chip_data *irq_chip_data_level2;
|
||||
struct device *dev;
|
||||
};
|
||||
|
||||
#endif /* __INTEL_SOC_PMIC_H__ */
|
||||
|
||||
@@ -589,6 +589,7 @@
|
||||
#define FORCE_ASPM_NO_ASPM 0x00
|
||||
#define PM_CLK_FORCE_CTL 0xFE58
|
||||
#define FUNC_FORCE_CTL 0xFE59
|
||||
#define FUNC_FORCE_UPME_XMT_DBG 0x02
|
||||
#define PERST_GLITCH_WIDTH 0xFE5C
|
||||
#define CHANGE_LINK_STATE 0xFE5B
|
||||
#define RESET_LOAD_REG 0xFE5E
|
||||
@@ -712,6 +713,7 @@
|
||||
#define PHY_RCR1 0x02
|
||||
#define PHY_RCR1_ADP_TIME_4 0x0400
|
||||
#define PHY_RCR1_VCO_COARSE 0x001F
|
||||
#define PHY_RCR1_INIT_27S 0x0A1F
|
||||
#define PHY_SSCCR2 0x02
|
||||
#define PHY_SSCCR2_PLL_NCODE 0x0A00
|
||||
#define PHY_SSCCR2_TIME0 0x001C
|
||||
@@ -724,6 +726,7 @@
|
||||
#define PHY_RCR2_FREQSEL_12 0x0040
|
||||
#define PHY_RCR2_CDR_SC_12P 0x0010
|
||||
#define PHY_RCR2_CALIB_LATE 0x0002
|
||||
#define PHY_RCR2_INIT_27S 0xC152
|
||||
#define PHY_SSCCR3 0x03
|
||||
#define PHY_SSCCR3_STEP_IN 0x2740
|
||||
#define PHY_SSCCR3_CHECK_DELAY 0x0008
|
||||
@@ -800,12 +803,14 @@
|
||||
#define PHY_ANA1A_RXT_BIST 0x0500
|
||||
#define PHY_ANA1A_TXR_BIST 0x0040
|
||||
#define PHY_ANA1A_REV 0x0006
|
||||
#define PHY_FLD0_INIT_27S 0x2546
|
||||
#define PHY_FLD1 0x1B
|
||||
#define PHY_FLD2 0x1C
|
||||
#define PHY_FLD3 0x1D
|
||||
#define PHY_FLD3_TIMER_4 0x0800
|
||||
#define PHY_FLD3_TIMER_6 0x0020
|
||||
#define PHY_FLD3_RXDELINK 0x0004
|
||||
#define PHY_FLD3_INIT_27S 0x0004
|
||||
#define PHY_ANA1D 0x1D
|
||||
#define PHY_ANA1D_DEBUG_ADDR 0x0004
|
||||
#define _PHY_FLD0 0x1D
|
||||
@@ -824,6 +829,7 @@
|
||||
#define PHY_FLD4_BER_COUNT 0x00E0
|
||||
#define PHY_FLD4_BER_TIMER 0x000A
|
||||
#define PHY_FLD4_BER_CHK_EN 0x0001
|
||||
#define PHY_FLD4_INIT_27S 0x5C7F
|
||||
#define PHY_DIG1E 0x1E
|
||||
#define PHY_DIG1E_REV 0x4000
|
||||
#define PHY_DIG1E_D0_X_D1 0x1000
|
||||
|
||||
@@ -132,6 +132,10 @@ struct sec_platform_data {
|
||||
int buck2_init;
|
||||
int buck3_init;
|
||||
int buck4_init;
|
||||
/* Whether or not manually set PWRHOLD to low during shutdown. */
|
||||
bool manual_poweroff;
|
||||
/* Disable the WRSTBI (buck voltage warm reset) when probing? */
|
||||
bool disable_wrstbi;
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
@@ -179,6 +179,7 @@ enum s2mps11_regulators {
|
||||
#define S2MPS11_BUCK_N_VOLTAGES (S2MPS11_BUCK_VSEL_MASK + 1)
|
||||
#define S2MPS11_RAMP_DELAY 25000 /* uV/us */
|
||||
|
||||
#define S2MPS11_CTRL1_PWRHOLD_MASK BIT(4)
|
||||
|
||||
#define S2MPS11_BUCK2_RAMP_SHIFT 6
|
||||
#define S2MPS11_BUCK34_RAMP_SHIFT 4
|
||||
|
||||
@@ -184,5 +184,6 @@ enum s2mps13_regulators {
|
||||
* Let's assume that default value will be set.
|
||||
*/
|
||||
#define S2MPS13_BUCK_RAMP_DELAY 12500
|
||||
#define S2MPS13_REG_WRSTBI_MASK BIT(5)
|
||||
|
||||
#endif /* __LINUX_MFD_S2MPS13_H */
|
||||
|
||||
Reference in New Issue
Block a user