mfd: axp20x: Add missing registers, and mark more registers volatile
PATCH v4 1/2 mfd: axp20x: Add missing registers, and mark more registers volatile
From: Bruno Pr?mont <[email protected]>
Add an extra set of registers which is necessary tu support the PMICs battery charger function, and mark registers which contain status bits, gpio status, and adc readings as volatile.
---
Changes in v2:
-Add a AXP20X_OCV_MAX define
Changes in v3:
-Add Bruno's S-o-b
Changes in v4:
-Consistently use AXP20X_OCV_MAX everywhere
--- drivers/mfd/axp20x.c | 8 +++++++- include/linux/mfd/axp20x.h | 6 ++++++ 2 files changed, 13 insertions(+), 1 deletion(-)
drivers/mfd/axp20x.c +7 -1
@@ -61,10 +61,16 @@ static const struct regmap_access_table axp152_volatile_table = {static const struct regmap_range axp20x_writeable_ranges[] = {regmap_reg_range (AXP20X_DATACACHE (0 ),AXP20X_IRQ5_STATE ),regmap_reg_range (AXP20X_DCDC_MODE ,AXP20X_FG_RES ), +regmap_reg_range (AXP20X_RDC_H ,AXP20X_OCV (AXP20X_OCV_MAX )), };static const struct regmap_range axp20x_volatile_ranges[] = { +regmap_reg_range (AXP20X_PWR_INPUT_STATUS ,AXP20X_USB_OTG_STATUS ), +regmap_reg_range (AXP20X_CHRG_CTRL1 ,AXP20X_CHRG_CTRL2 ),regmap_reg_range (AXP20X_IRQ1_EN ,AXP20X_IRQ5_STATE ), +regmap_reg_range (AXP20X_ACIN_V_ADC_H ,AXP20X_IPSOUT_V_HIGH_L ), +regmap_reg_range (AXP20X_GPIO20_SS ,AXP20X_GPIO3_CTRL ), +regmap_reg_range (AXP20X_FG_RES ,AXP20X_RDC_L ), };static const struct regmap_access_table axp20x_writeable_table = {
@@ -195,7 +201,7 @@ static const struct regmap_config axp20x_regmap_config = { .val_bits = 8, .wr_table = &axp20x_writeable_table, .volatile_table = &axp20x_volatile_table, - .max_register = AXP20X_FG_RES, + .max_register = AXP20X_OCV(AXP20X_OCV_MAX), .cache_type = REGCACHE_RBTREE, };
include/linux/mfd/axp20x.h +6 -0
@@ -190,6 +190,12 @@ enum {#define AXP20X_CC_CTRL 0xb8#define AXP20X_FG_RES 0xb9 +/* OCV */ +#define AXP20X_RDC_H 0xba +#define AXP20X_RDC_L 0xbb +#define AXP20X_OCV (m) (0xc0 + (m)) +#define AXP20X_OCV_MAX 0xf +/* AXP22X specific registers */ #define AXP22X_BATLOW_THRES1 0xe6
Signature · 1 line
2.4.3
PATCH v4 2/2 mfd: axp20x: Add a cell for the usb power_supply part of the axp20x PMICs
Add a cell for the usb power_supply part of the axp20x PMICs.
Note that this cell is only for the usb power_supply part and not the ac-power / battery-charger / rtc-backup-bat-charger bits.
Depending on the board each of those must be enabled / disabled separately in devicetree as most boards do not use all 4. So in dt each one needs its own child-node of the axp20x node. Another reason for using separate child nodes for each is so that other devicetree nodes can have a power-supply property with a phandle referencing a node representing a single power-supply.
The decision to use a separate devicetree node for each is reflected on the kernel side by each getting its own mfd-cell / platform_device and platform-driver.
Note this commit also makes some whitespace changes to the intialization of existing cells in axp20x_cells, these are pure whitespace changes, functionally nothing changes.
---
Changes in v2:
-Use DEFINE_RES_IRQ_NAMED
-Change indentation of axp20x_cells initializers to avoid line wrapping Changes in v3:
-Improve commit message
-Add Bruno's S-o-b
--- drivers/mfd/axp20x.c | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-)
drivers/mfd/axp20x.c +16 -4
@@ -140,6 +140,13 @@ static struct resource axp20x_pek_resources[] = { }, }; +static struct resource axp20x_usb_power_supply_resources[] = { +DEFINE_RES_IRQ_NAMED (AXP20X_IRQ_VBUS_PLUGIN ,"VBUS_PLUGIN" ), +DEFINE_RES_IRQ_NAMED (AXP20X_IRQ_VBUS_REMOVAL ,"VBUS_REMOVAL" ), +DEFINE_RES_IRQ_NAMED (AXP20X_IRQ_VBUS_VALID ,"VBUS_VALID" ), +DEFINE_RES_IRQ_NAMED (AXP20X_IRQ_VBUS_NOT_VALID ,"VBUS_NOT_VALID" ), +}; +static struct resource axp22x_pek_resources[] = { { .name ="PEK_DBR" ,
@@ -432,11 +439,16 @@ static const struct regmap_irq_chip axp288_regmap_irq_chip = {static struct mfd_cell axp20x_cells[] = { { - .name ="axp20x-pek" , - .num_resources =ARRAY_SIZE (axp20x_pek_resources), - .resources = axp20x_pek_resources, + .name ="axp20x-pek" , + .num_resources =ARRAY_SIZE (axp20x_pek_resources), + .resources = axp20x_pek_resources, }, { - .name ="axp20x-regulator" , + .name ="axp20x-regulator" , + }, { + .name ="axp20x-usb-power-supply" , + .of_compatible ="x-powers,axp202-usb-power-supply" , + .num_resources =ARRAY_SIZE (axp20x_usb_power_supply_resources), + .resources = axp20x_usb_power_supply_resources, }, };
Signature · 1 line
2.4.3
Lee Jones
AppliedPATCH v4 2/2 mfd: axp20x: Add a cell for the usb power_supply part of the axp20x PMICs
Quoted 30 lines · Hans de Goede
Add a cell for the usb
power_supplypart of the axp20x PMICs.Note that this cell is only for the usb
power_supplypart and not the ac-power / battery-charger / rtc-backup-bat-charger bits.Depending on the board each of those must be enabled / disabled separately in devicetree as most boards do not use all 4. So in dt each one needs its own child-node of the axp20x node. Another reason for using separate child nodes for each is so that other devicetree nodes can have a power-supply property with a phandle referencing a node representing a single power-supply.
The decision to use a separate devicetree node for each is reflected on the kernel side by each getting its own mfd-cell /
platform_deviceand platform-driver.Note this commit also makes some whitespace changes to the intialization of existing cells in
axp20x_cells, these are pure whitespace changes, functionally nothing changes.Cc Bruno Pr?mont <[email protected]>Signed-off-by Bruno Pr?mont <[email protected]>Signed-off-by Hans de Goede <[email protected]>Acked-by Maxime Ripard <[email protected]>Acked-by Lee Jones <[email protected]>---
Changes in v2:(quoted diff) +0
-2-Use DEFINE_RES_IRQ_NAMED -Change indentation of axp20x_cells initializers to avoid line wrappingChanges in v3:
Review
Quoted 5 lines
(quoted diff) +0
-3-Improve commit message -Add Bruno's S-o-b --- drivers/mfd/axp20x.c | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-)
Applied, thanks.
Quoted 39 lines
drivers/mfd/axp20x.c +16
-4@@ -140,6 +140,13 @@ static struct resource axp20x_pek_resources[] = { }, }; +static struct resource axp20x_usb_power_supply_resources[] = { +DEFINE_RES_IRQ_NAMED (AXP20X_IRQ_VBUS_PLUGIN ,"VBUS_PLUGIN" ), +DEFINE_RES_IRQ_NAMED (AXP20X_IRQ_VBUS_REMOVAL ,"VBUS_REMOVAL" ), +DEFINE_RES_IRQ_NAMED (AXP20X_IRQ_VBUS_VALID ,"VBUS_VALID" ), +DEFINE_RES_IRQ_NAMED (AXP20X_IRQ_VBUS_NOT_VALID ,"VBUS_NOT_VALID" ), +}; +static struct resource axp22x_pek_resources[] = { { .name ="PEK_DBR" ,@@ -432,11 +439,16 @@ static const struct regmap_irq_chip axp288_regmap_irq_chip = {static struct mfd_cell axp20x_cells[] = { { - .name ="axp20x-pek" , - .num_resources =ARRAY_SIZE (axp20x_pek_resources), - .resources = axp20x_pek_resources, + .name ="axp20x-pek" , + .num_resources =ARRAY_SIZE (axp20x_pek_resources), + .resources = axp20x_pek_resources, }, { - .name ="axp20x-regulator" , + .name ="axp20x-regulator" , + }, { + .name ="axp20x-usb-power-supply" , + .of_compatible ="x-powers,axp202-usb-power-supply" , + .num_resources =ARRAY_SIZE (axp20x_usb_power_supply_resources), + .resources = axp20x_usb_power_supply_resources, }, };
Signature · 4 lines
Lee Jones Linaro STMicroelectronics Landing Team Lead Linaro.org ? Open source software for ARM SoCs Follow Linaro: Facebook | Twitter | Blog
PATCH v4 2/2 mfd: axp20x: Add a cell for the usb power_supply part of the axp20x PMICs
Hi,
Quoted 31 lines · Lee Jones
Quoted 29 lines · Hans de Goede
Add a cell for the usb
power_supplypart of the axp20x PMICs.Note that this cell is only for the usb
power_supplypart and not the ac-power / battery-charger / rtc-backup-bat-charger bits.Depending on the board each of those must be enabled / disabled separately in devicetree as most boards do not use all 4. So in dt each one needs its own child-node of the axp20x node. Another reason for using separate child nodes for each is so that other devicetree nodes can have a power-supply property with a phandle referencing a node representing a single power-supply.
The decision to use a separate devicetree node for each is reflected on the kernel side by each getting its own mfd-cell /
platform_deviceand platform-driver.Note this commit also makes some whitespace changes to the intialization of existing cells in
axp20x_cells, these are pure whitespace changes, functionally nothing changes.Cc Bruno Pr?mont <[email protected]>Signed-off-by Bruno Pr?mont <[email protected]>Signed-off-by Hans de Goede <[email protected]>Acked-by Maxime Ripard <[email protected]>Acked-by Lee Jones <[email protected]>---
Changes in v2:(quoted diff) +0
-2-Use DEFINE_RES_IRQ_NAMED -Change indentation of axp20x_cells initializers to avoid line wrapping
Quoted 8 lines
Review
Quoted 6 lines
Changes in v3:
(quoted diff) +0
-3-Improve commit message -Add Bruno's S-o-b --- drivers/mfd/axp20x.c | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-)Applied, thanks.
Great, but I'm not seeing this in:
https://git.kernel.org/cgit/linux/kernel/git/lee/mfd.git/log/?h=for-mfd-next
?
Regards,
Hans
Quoted 41 lines
Quoted 40 lines
drivers/mfd/axp20x.c +16
-4@@ -140,6 +140,13 @@ static struct resource axp20x_pek_resources[] = { }, }; +static struct resource axp20x_usb_power_supply_resources[] = { +DEFINE_RES_IRQ_NAMED (AXP20X_IRQ_VBUS_PLUGIN ,"VBUS_PLUGIN" ), +DEFINE_RES_IRQ_NAMED (AXP20X_IRQ_VBUS_REMOVAL ,"VBUS_REMOVAL" ), +DEFINE_RES_IRQ_NAMED (AXP20X_IRQ_VBUS_VALID ,"VBUS_VALID" ), +DEFINE_RES_IRQ_NAMED (AXP20X_IRQ_VBUS_NOT_VALID ,"VBUS_NOT_VALID" ), +}; +static struct resource axp22x_pek_resources[] = { { .name ="PEK_DBR" ,@@ -432,11 +439,16 @@ static const struct regmap_irq_chip axp288_regmap_irq_chip = {static struct mfd_cell axp20x_cells[] = { { - .name ="axp20x-pek" , - .num_resources =ARRAY_SIZE (axp20x_pek_resources), - .resources = axp20x_pek_resources, + .name ="axp20x-pek" , + .num_resources =ARRAY_SIZE (axp20x_pek_resources), + .resources = axp20x_pek_resources, }, { - .name ="axp20x-regulator" , + .name ="axp20x-regulator" , + }, { + .name ="axp20x-usb-power-supply" , + .of_compatible ="x-powers,axp202-usb-power-supply" , + .num_resources =ARRAY_SIZE (axp20x_usb_power_supply_resources), + .resources = axp20x_usb_power_supply_resources, }, };
PATCH v4 2/2 mfd: axp20x: Add a cell for the usb power_supply part of the axp20x PMICs
Quoted 43 lines · Hans de Goede
Hi,
Quoted 31 lines · Lee Jones
Quoted 29 lines · Hans de Goede
Add a cell for the usb
power_supplypart of the axp20x PMICs.Note that this cell is only for the usb
power_supplypart and not the ac-power / battery-charger / rtc-backup-bat-charger bits.Depending on the board each of those must be enabled / disabled separately in devicetree as most boards do not use all 4. So in dt each one needs its own child-node of the axp20x node. Another reason for using separate child nodes for each is so that other devicetree nodes can have a power-supply property with a phandle referencing a node representing a single power-supply.
The decision to use a separate devicetree node for each is reflected on the kernel side by each getting its own mfd-cell /
platform_deviceand platform-driver.Note this commit also makes some whitespace changes to the intialization of existing cells in
axp20x_cells, these are pure whitespace changes, functionally nothing changes.Cc Bruno Pr?mont <[email protected]>Signed-off-by Bruno Pr?mont <[email protected]>Signed-off-by Hans de Goede <[email protected]>Acked-by Maxime Ripard <[email protected]>Acked-by Lee Jones <[email protected]>---
Changes in v2:(quoted diff) +0
-2-Use DEFINE_RES_IRQ_NAMED -Change indentation of axp20x_cells initializers to avoid line wrappingQuoted 8 lines
Review
Quoted 6 lines
Changes in v3:
(quoted diff) +0
-3-Improve commit message -Add Bruno's S-o-b --- drivers/mfd/axp20x.c | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-)Applied, thanks.
Quoted 3 lines
Great, but I'm not seeing this in:
https://git.kernel.org/cgit/linux/kernel/git/lee/mfd.git/log/?h=for-mfd-next
Well it does usually take me a day or two push my local branch out, however in this case I had actually dropped a ball somewhere. I've been through my backlog of 'applied' patches and these two are the only ones I failed to pick. I have now, re-picked, re-applied and pushed the branch out. Let me know if something is still not right.
Sorry for the inconvenience.
Quoted 40 lines
Quoted 40 lines
Quoted 39 lines
drivers/mfd/axp20x.c +16
-4@@ -140,6 +140,13 @@ static struct resource axp20x_pek_resources[] = { }, }; +static struct resource axp20x_usb_power_supply_resources[] = { +DEFINE_RES_IRQ_NAMED (AXP20X_IRQ_VBUS_PLUGIN ,"VBUS_PLUGIN" ), +DEFINE_RES_IRQ_NAMED (AXP20X_IRQ_VBUS_REMOVAL ,"VBUS_REMOVAL" ), +DEFINE_RES_IRQ_NAMED (AXP20X_IRQ_VBUS_VALID ,"VBUS_VALID" ), +DEFINE_RES_IRQ_NAMED (AXP20X_IRQ_VBUS_NOT_VALID ,"VBUS_NOT_VALID" ), +}; +static struct resource axp22x_pek_resources[] = { { .name ="PEK_DBR" ,@@ -432,11 +439,16 @@ static const struct regmap_irq_chip axp288_regmap_irq_chip = {static struct mfd_cell axp20x_cells[] = { { - .name ="axp20x-pek" , - .num_resources =ARRAY_SIZE (axp20x_pek_resources), - .resources = axp20x_pek_resources, + .name ="axp20x-pek" , + .num_resources =ARRAY_SIZE (axp20x_pek_resources), + .resources = axp20x_pek_resources, }, { - .name ="axp20x-regulator" , + .name ="axp20x-regulator" , + }, { + .name ="axp20x-usb-power-supply" , + .of_compatible ="x-powers,axp202-usb-power-supply" , + .num_resources =ARRAY_SIZE (axp20x_usb_power_supply_resources), + .resources = axp20x_usb_power_supply_resources, }, };
Signature · 4 lines
Lee Jones Linaro STMicroelectronics Landing Team Lead Linaro.org ? Open source software for ARM SoCs Follow Linaro: Facebook | Twitter | Blog
PATCH v4 2/2 mfd: axp20x: Add a cell for the usb power_supply part of the axp20x PMICs
Hi,
Quoted 47 lines · Lee Jones
Quoted 45 lines · Hans de Goede
Hi,
Quoted 31 lines · Lee Jones
Quoted 29 lines · Hans de Goede
Add a cell for the usb
power_supplypart of the axp20x PMICs.Note that this cell is only for the usb
power_supplypart and not the ac-power / battery-charger / rtc-backup-bat-charger bits.Depending on the board each of those must be enabled / disabled separately in devicetree as most boards do not use all 4. So in dt each one needs its own child-node of the axp20x node. Another reason for using separate child nodes for each is so that other devicetree nodes can have a power-supply property with a phandle referencing a node representing a single power-supply.
The decision to use a separate devicetree node for each is reflected on the kernel side by each getting its own mfd-cell /
platform_deviceand platform-driver.Note this commit also makes some whitespace changes to the intialization of existing cells in
axp20x_cells, these are pure whitespace changes, functionally nothing changes.Cc Bruno Pr?mont <[email protected]>Signed-off-by Bruno Pr?mont <[email protected]>Signed-off-by Hans de Goede <[email protected]>Acked-by Maxime Ripard <[email protected]>Acked-by Lee Jones <[email protected]>---
Changes in v2:(quoted diff) +0
-2-Use DEFINE_RES_IRQ_NAMED -Change indentation of axp20x_cells initializers to avoid line wrappingQuoted 8 lines
Review
Quoted 6 lines
Changes in v3:
(quoted diff) +0
-3-Improve commit message -Add Bruno's S-o-b --- drivers/mfd/axp20x.c | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-)Applied, thanks.
Great, but I'm not seeing this in:
Quoted 7 lines
Well it does usually take me a day or two push my local branch out, however in this case I had actually dropped a ball somewhere. I've been through my backlog of 'applied' patches and these two are the only ones I failed to pick. I have now, re-picked, re-applied and pushed the branch out. Let me know if something is still not right.
Looks good now, thanks.
Quoted 1 line
Sorry for the inconvenience.
No problem, thanks for all the great work you are doing on maintaining the mfd subsys.
Regards,
Hans
Quoted 42 lines
Quoted 41 lines
Quoted 41 lines
Quoted 40 lines
drivers/mfd/axp20x.c +16
-4@@ -140,6 +140,13 @@ static struct resource axp20x_pek_resources[] = { }, }; +static struct resource axp20x_usb_power_supply_resources[] = { +DEFINE_RES_IRQ_NAMED (AXP20X_IRQ_VBUS_PLUGIN ,"VBUS_PLUGIN" ), +DEFINE_RES_IRQ_NAMED (AXP20X_IRQ_VBUS_REMOVAL ,"VBUS_REMOVAL" ), +DEFINE_RES_IRQ_NAMED (AXP20X_IRQ_VBUS_VALID ,"VBUS_VALID" ), +DEFINE_RES_IRQ_NAMED (AXP20X_IRQ_VBUS_NOT_VALID ,"VBUS_NOT_VALID" ), +}; +static struct resource axp22x_pek_resources[] = { { .name ="PEK_DBR" ,@@ -432,11 +439,16 @@ static const struct regmap_irq_chip axp288_regmap_irq_chip = {static struct mfd_cell axp20x_cells[] = { { - .name ="axp20x-pek" , - .num_resources =ARRAY_SIZE (axp20x_pek_resources), - .resources = axp20x_pek_resources, + .name ="axp20x-pek" , + .num_resources =ARRAY_SIZE (axp20x_pek_resources), + .resources = axp20x_pek_resources, }, { - .name ="axp20x-regulator" , + .name ="axp20x-regulator" , + }, { + .name ="axp20x-usb-power-supply" , + .of_compatible ="x-powers,axp202-usb-power-supply" , + .num_resources =ARRAY_SIZE (axp20x_usb_power_supply_resources), + .resources = axp20x_usb_power_supply_resources, }, };
PATCH v4 2/2 mfd: axp20x: Add a cell for the usb power_supply part of the axp20x PMICs
Quoted 52 lines · Hans de Goede
Hi,
Quoted 49 lines · Lee Jones
Quoted 46 lines · Hans de Goede
Hi,
Quoted 31 lines · Lee Jones
Quoted 29 lines · Hans de Goede
Add a cell for the usb
power_supplypart of the axp20x PMICs.Note that this cell is only for the usb
power_supplypart and not the ac-power / battery-charger / rtc-backup-bat-charger bits.Depending on the board each of those must be enabled / disabled separately in devicetree as most boards do not use all 4. So in dt each one needs its own child-node of the axp20x node. Another reason for using separate child nodes for each is so that other devicetree nodes can have a power-supply property with a phandle referencing a node representing a single power-supply.
The decision to use a separate devicetree node for each is reflected on the kernel side by each getting its own mfd-cell /
platform_deviceand platform-driver.Note this commit also makes some whitespace changes to the intialization of existing cells in
axp20x_cells, these are pure whitespace changes, functionally nothing changes.Cc Bruno Pr?mont <[email protected]>Signed-off-by Bruno Pr?mont <[email protected]>Signed-off-by Hans de Goede <[email protected]>Acked-by Maxime Ripard <[email protected]>Acked-by Lee Jones <[email protected]>---
Changes in v2:(quoted diff) +0
-2-Use DEFINE_RES_IRQ_NAMED -Change indentation of axp20x_cells initializers to avoid line wrappingQuoted 8 lines
Review
Quoted 6 lines
Changes in v3:
(quoted diff) +0
-3-Improve commit message -Add Bruno's S-o-b --- drivers/mfd/axp20x.c | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-)Applied, thanks.
Great, but I'm not seeing this in:
https://git.kernel.org/cgit/linux/kernel/git/lee/mfd.git/log/?h=for-mfd-next
Quoted 7 lines
Quoted 5 lines
Well it does usually take me a day or two push my local branch out, however in this case I had actually dropped a ball somewhere. I've been through my backlog of 'applied' patches and these two are the only ones I failed to pick. I have now, re-picked, re-applied and pushed the branch out. Let me know if something is still not right.
Looks good now, thanks.
You're welcome.
Quoted 4 lines
Quoted 1 line
Sorry for the inconvenience.
No problem, thanks for all the great work you are doing on maintaining the mfd subsys.
Thanks. :)
I should print and frame this, to look at when I think about not doing it anymore.
Quoted 41 lines
Quoted 41 lines
Quoted 40 lines
Quoted 40 lines
Quoted 39 lines
drivers/mfd/axp20x.c +16
-4@@ -140,6 +140,13 @@ static struct resource axp20x_pek_resources[] = { }, }; +static struct resource axp20x_usb_power_supply_resources[] = { +DEFINE_RES_IRQ_NAMED (AXP20X_IRQ_VBUS_PLUGIN ,"VBUS_PLUGIN" ), +DEFINE_RES_IRQ_NAMED (AXP20X_IRQ_VBUS_REMOVAL ,"VBUS_REMOVAL" ), +DEFINE_RES_IRQ_NAMED (AXP20X_IRQ_VBUS_VALID ,"VBUS_VALID" ), +DEFINE_RES_IRQ_NAMED (AXP20X_IRQ_VBUS_NOT_VALID ,"VBUS_NOT_VALID" ), +}; +static struct resource axp22x_pek_resources[] = { { .name ="PEK_DBR" ,@@ -432,11 +439,16 @@ static const struct regmap_irq_chip axp288_regmap_irq_chip = {static struct mfd_cell axp20x_cells[] = { { - .name ="axp20x-pek" , - .num_resources =ARRAY_SIZE (axp20x_pek_resources), - .resources = axp20x_pek_resources, + .name ="axp20x-pek" , + .num_resources =ARRAY_SIZE (axp20x_pek_resources), + .resources = axp20x_pek_resources, }, { - .name ="axp20x-regulator" , + .name ="axp20x-regulator" , + }, { + .name ="axp20x-usb-power-supply" , + .of_compatible ="x-powers,axp202-usb-power-supply" , + .num_resources =ARRAY_SIZE (axp20x_usb_power_supply_resources), + .resources = axp20x_usb_power_supply_resources, }, };
Signature · 4 lines
Lee Jones Linaro STMicroelectronics Landing Team Lead Linaro.org ? Open source software for ARM SoCs Follow Linaro: Facebook | Twitter | Blog
Lee Jones
AppliedPATCH v4 1/2 mfd: axp20x: Add missing registers, and mark more registers volatile
In reply to Hans de GoedeQuoted 18 lines · Hans de Goede
From: Bruno Pr?mont <[email protected]>
Add an extra set of registers which is necessary tu support the PMICs battery charger function, and mark registers which contain status bits, gpio status, and adc readings as volatile.
Cc Bruno Pr?mont <[email protected]>Signed-off-by Bruno Pr?mont <[email protected]>Signed-off-by Hans de Goede <[email protected]>Acked-by Lee Jones <[email protected]>Acked-by Maxime Ripard <[email protected]>---
Changes in v2:
-Add aAXP20X_OCV_MAXdefine
Changes in v3:
-Add Bruno's S-o-b
Changes in v4:
-Consistently useAXP20X_OCV_MAXeverywhere
Quoted 4 lines
--- drivers/mfd/axp20x.c | 8 +++++++- include/linux/mfd/axp20x.h | 6 ++++++ 2 files changed, 13 insertions(+), 1 deletion(-)
Applied, thanks.
Quoted 47 lines
drivers/mfd/axp20x.c +7
-1@@ -61,10 +61,16 @@ static const struct regmap_access_table axp152_volatile_table = {static const struct regmap_range axp20x_writeable_ranges[] = {regmap_reg_range (AXP20X_DATACACHE (0 ),AXP20X_IRQ5_STATE ),regmap_reg_range (AXP20X_DCDC_MODE ,AXP20X_FG_RES ), +regmap_reg_range (AXP20X_RDC_H ,AXP20X_OCV (AXP20X_OCV_MAX )), };static const struct regmap_range axp20x_volatile_ranges[] = { +regmap_reg_range (AXP20X_PWR_INPUT_STATUS ,AXP20X_USB_OTG_STATUS ), +regmap_reg_range (AXP20X_CHRG_CTRL1 ,AXP20X_CHRG_CTRL2 ),regmap_reg_range (AXP20X_IRQ1_EN ,AXP20X_IRQ5_STATE ), +regmap_reg_range (AXP20X_ACIN_V_ADC_H ,AXP20X_IPSOUT_V_HIGH_L ), +regmap_reg_range (AXP20X_GPIO20_SS ,AXP20X_GPIO3_CTRL ), +regmap_reg_range (AXP20X_FG_RES ,AXP20X_RDC_L ), };static const struct regmap_access_table axp20x_writeable_table = {@@ -195,7 +201,7 @@ static const struct regmap_config axp20x_regmap_config = { .val_bits = 8, .wr_table = &axp20x_writeable_table, .volatile_table = &axp20x_volatile_table, - .max_register = AXP20X_FG_RES, + .max_register = AXP20X_OCV(AXP20X_OCV_MAX), .cache_type = REGCACHE_RBTREE, };include/linux/mfd/axp20x.h +6
-0@@ -190,6 +190,12 @@ enum {#define AXP20X_CC_CTRL 0xb8#define AXP20X_FG_RES 0xb9 +/* OCV */ +#define AXP20X_RDC_H 0xba +#define AXP20X_RDC_L 0xbb +#define AXP20X_OCV (m) (0xc0 + (m)) +#define AXP20X_OCV_MAX 0xf +/* AXP22X specific registers */ #define AXP22X_BATLOW_THRES1 0xe6
Signature · 4 lines
Lee Jones Linaro STMicroelectronics Landing Team Lead Linaro.org ? Open source software for ARM SoCs Follow Linaro: Facebook | Twitter | Blog