Message ID | 20190528090310.31774-1-miquel.raynal@bootlin.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | arm64: dts: marvell: armada-7040-db: Add USB current regulators | expand |
Miquel Raynal <miquel.raynal@bootlin.com> writes: > Armada 7040-db USB ports deliver 500mA by default while they > could deliver up to 900mA (usually, for USB3 devices). > > The board embeds a GPIO controlled regulator on each port which can be > configured to deliver each amount of current. > > Add a vin-supply property to the USB3 Vbus nodes for this purpose. The > regulator will be automatically 'enabled', ie. set to limit at 900mA > instead of 500mA. > > Suggested-by: Alex Leibovich <alexl@marvell.com> > Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> Applied on mvebu/dt64 Thanks, Gregory > --- > .../arm64/boot/dts/marvell/armada-7040-db.dts | 28 +++++++++++++++++++ > 1 file changed, 28 insertions(+) > > diff --git a/arch/arm64/boot/dts/marvell/armada-7040-db.dts b/arch/arm64/boot/dts/marvell/armada-7040-db.dts > index d20d84ce7ca8..f34ee87a0f56 100644 > --- a/arch/arm64/boot/dts/marvell/armada-7040-db.dts > +++ b/arch/arm64/boot/dts/marvell/armada-7040-db.dts > @@ -28,6 +28,32 @@ > ethernet2 = &cp0_eth2; > }; > > + cp0_exp_usb3_0_current_regulator: gpio-regulator { > + compatible = "regulator-gpio"; > + regulator-name = "cp0-usb3-0-current-regulator"; > + regulator-type = "current"; > + regulator-min-microamp = <500000>; > + regulator-max-microamp = <900000>; > + gpios = <&expander0 4 GPIO_ACTIVE_HIGH>; > + states = <500000 0x0 > + 900000 0x1>; > + enable-active-high; > + gpios-states = <0>; > + }; > + > + cp0_exp_usb3_1_current_regulator: gpio-regulator { > + compatible = "regulator-gpio"; > + regulator-name = "cp0-usb3-1-current-regulator"; > + regulator-type = "current"; > + regulator-min-microamp = <500000>; > + regulator-max-microamp = <900000>; > + gpios = <&expander0 5 GPIO_ACTIVE_HIGH>; > + states = <500000 0x0 > + 900000 0x1>; > + enable-active-high; > + gpios-states = <0>; > + }; > + > cp0_reg_usb3_0_vbus: cp0-usb3-0-vbus { > compatible = "regulator-fixed"; > regulator-name = "usb3h0-vbus"; > @@ -35,6 +61,7 @@ > regulator-max-microvolt = <5000000>; > enable-active-high; > gpio = <&expander0 0 GPIO_ACTIVE_HIGH>; > + vin-supply = <&cp0_exp_usb3_0_current_regulator>; > }; > > cp0_reg_usb3_1_vbus: cp0-usb3-1-vbus { > @@ -44,6 +71,7 @@ > regulator-max-microvolt = <5000000>; > enable-active-high; > gpio = <&expander0 1 GPIO_ACTIVE_HIGH>; > + vin-supply = <&cp0_exp_usb3_1_current_regulator>; > }; > > cp0_usb3_0_phy: cp0-usb3-0-phy { > -- > 2.19.1 > > > _______________________________________________ > linux-arm-kernel mailing list > linux-arm-kernel@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
diff --git a/arch/arm64/boot/dts/marvell/armada-7040-db.dts b/arch/arm64/boot/dts/marvell/armada-7040-db.dts index d20d84ce7ca8..f34ee87a0f56 100644 --- a/arch/arm64/boot/dts/marvell/armada-7040-db.dts +++ b/arch/arm64/boot/dts/marvell/armada-7040-db.dts @@ -28,6 +28,32 @@ ethernet2 = &cp0_eth2; }; + cp0_exp_usb3_0_current_regulator: gpio-regulator { + compatible = "regulator-gpio"; + regulator-name = "cp0-usb3-0-current-regulator"; + regulator-type = "current"; + regulator-min-microamp = <500000>; + regulator-max-microamp = <900000>; + gpios = <&expander0 4 GPIO_ACTIVE_HIGH>; + states = <500000 0x0 + 900000 0x1>; + enable-active-high; + gpios-states = <0>; + }; + + cp0_exp_usb3_1_current_regulator: gpio-regulator { + compatible = "regulator-gpio"; + regulator-name = "cp0-usb3-1-current-regulator"; + regulator-type = "current"; + regulator-min-microamp = <500000>; + regulator-max-microamp = <900000>; + gpios = <&expander0 5 GPIO_ACTIVE_HIGH>; + states = <500000 0x0 + 900000 0x1>; + enable-active-high; + gpios-states = <0>; + }; + cp0_reg_usb3_0_vbus: cp0-usb3-0-vbus { compatible = "regulator-fixed"; regulator-name = "usb3h0-vbus"; @@ -35,6 +61,7 @@ regulator-max-microvolt = <5000000>; enable-active-high; gpio = <&expander0 0 GPIO_ACTIVE_HIGH>; + vin-supply = <&cp0_exp_usb3_0_current_regulator>; }; cp0_reg_usb3_1_vbus: cp0-usb3-1-vbus { @@ -44,6 +71,7 @@ regulator-max-microvolt = <5000000>; enable-active-high; gpio = <&expander0 1 GPIO_ACTIVE_HIGH>; + vin-supply = <&cp0_exp_usb3_1_current_regulator>; }; cp0_usb3_0_phy: cp0-usb3-0-phy {
Armada 7040-db USB ports deliver 500mA by default while they could deliver up to 900mA (usually, for USB3 devices). The board embeds a GPIO controlled regulator on each port which can be configured to deliver each amount of current. Add a vin-supply property to the USB3 Vbus nodes for this purpose. The regulator will be automatically 'enabled', ie. set to limit at 900mA instead of 500mA. Suggested-by: Alex Leibovich <alexl@marvell.com> Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> --- .../arm64/boot/dts/marvell/armada-7040-db.dts | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+)