ARM: DRA7: Add support for DRA718-evm
Subsystems (8)
v2 cover ARM: DRA7: Add support for DRA718-evm
This series does minor dts cleanup for dra72-evm and adds support for DRA718-evm.
Changes since v1:
- Updated xxx-supply to xxx-in-supply in Documentation.
Lokesh Vutla (7):
ARM: dts: dra72-evm: Remove pinmux configurations for erratum i869
ARM: dra72-evm: Fix modelling of regulators
ARM: dts: dra72: Add separate dtsi for tps65917
regulator: lp873x: Add support for populating input supply
ARM: OMAP2+: board-generic: add support for DRA71x family
ARM: omap2plus_defconfig: Enable REGULATOR_GPIO
ARM: omap2plus_defconfig: Enable LP873X support
Nishanth Menon (2):
ARM: DRA7: hwmod: Do not register RTC on DRA71
ARM: dts: Add support for dra718-evm
.../devicetree/bindings/arm/omap/omap.txt | 6 + Documentation/devicetree/bindings/mfd/lp873x.txt | 8 + arch/arm/boot/dts/Makefile | 3 +- arch/arm/boot/dts/dra71-evm.dts | 230 ++++++++++++++ arch/arm/boot/dts/dra72-evm-common.dtsi | 348 +++------------------ arch/arm/boot/dts/dra72-evm-revc.dts | 21 +- arch/arm/boot/dts/dra72-evm-tps65917.dtsi | 134 ++++++++ arch/arm/boot/dts/dra72-evm.dts | 14 +- arch/arm/configs/omap2plus_defconfig | 3 + arch/arm/mach-omap2/board-generic.c | 1 + arch/arm/mach-omap2/omap_hwmod_7xx_data.c | 10 +- drivers/regulator/lp873x-regulator.c | 1 + 12 files changed, 453 insertions(+), 326 deletions(-) create mode 100644 arch/arm/boot/dts/dra71-evm.dts create mode 100644 arch/arm/boot/dts/dra72-evm-tps65917.dtsi
Signature · 1 line
2.10.1
PATCH v2 1/9 ARM: dts: dra72-evm: Remove pinmux configurations for erratum i869
Pinmuxing for DRA7x/AM57x family of processors need to be done in IO isolation as part of initial bootloader executed from SRAM. This is done as part of iodelay configuration sequence and is required due to the limitations introduced by erratum ID: i869[1] (IO Glitches can occur when changing IO settings) and elaborated in the Technical Reference Manual[2] 18.4.6.1.7 Isolation Requirements.
Only peripheral that is permitted for dynamic pin mux configuration is MMC and DCAN. MMC is permitted to change to accommodate the requirements for varied speeds (which require IO-delay support in kernel as well). DCAN is a result of i893[1] (DCAN initialization sequence). With the exception of DCAN and MMC, all other pin mux configurations are removed from the dts.
[1] http://www.ti.com/lit/er/sprz436a/sprz436a.pdf
[2] http://www.ti.com/lit/ug/spruhz7c/spruhz7c.pdf
--- arch/arm/boot/dts/dra72-evm-common.dtsi | 192 -------------------------------- 1 file changed, 192 deletions(-)
arch/arm/boot/dts/dra72-evm-common.dtsi +0 -192
@@ -69,9 +69,6 @@ tpd12s015: encoder { compatible = "ti,tpd12s015"; - pinctrl-names = "default"; - pinctrl-0 = <&tpd12s015_pins>; - gpios = <&pcf_hdmi 4 GPIO_ACTIVE_HIGH>, /* P4, CT CP HPD */ <&pcf_hdmi 5 GPIO_ACTIVE_HIGH>, /* P5, LS OE */ <&gpio7 12 GPIO_ACTIVE_HIGH>; /* gpio7_12/sp1_cs2, HPD */
@@ -134,72 +131,6 @@ }; &dra7_pmx_core { - i2c1_pins: pinmux_i2c1_pins { - pinctrl-single,pins = < - DRA7XX_CORE_IOPAD(0x3800, PIN_INPUT | MUX_MODE0) /* i2c1_sda.i2c1_sda */ - DRA7XX_CORE_IOPAD(0x3804, PIN_INPUT | MUX_MODE0) /* i2c1_scl.i2c1_scl */ - >; - }; - - i2c5_pins: pinmux_i2c5_pins { - pinctrl-single,pins = < - DRA7XX_CORE_IOPAD(0x36b4, PIN_INPUT | MUX_MODE10) /* mcasp1_axr0.i2c5_sda */ - DRA7XX_CORE_IOPAD(0x36b8, PIN_INPUT | MUX_MODE10) /* mcasp1_axr1.i2c5_scl */ - >; - }; - - i2c5_pins: pinmux_i2c5_pins { - pinctrl-single,pins = < - DRA7XX_CORE_IOPAD(0x36b4, PIN_INPUT | MUX_MODE10) /* mcasp1_axr0.i2c5_sda */ - DRA7XX_CORE_IOPAD(0x36b8, PIN_INPUT | MUX_MODE10) /* mcasp1_axr1.i2c5_scl */ - >; - }; - - nand_default: nand_default { - pinctrl-single,pins = < - DRA7XX_CORE_IOPAD(0x3400, PIN_INPUT | MUX_MODE0) /* gpmc_ad0 */ - DRA7XX_CORE_IOPAD(0x3404, PIN_INPUT | MUX_MODE0) /* gpmc_ad1 */ - DRA7XX_CORE_IOPAD(0x3408, PIN_INPUT | MUX_MODE0) /* gpmc_ad2 */ - DRA7XX_CORE_IOPAD(0x340c, PIN_INPUT | MUX_MODE0) /* gpmc_ad3 */ - DRA7XX_CORE_IOPAD(0x3410, PIN_INPUT | MUX_MODE0) /* gpmc_ad4 */ - DRA7XX_CORE_IOPAD(0x3414, PIN_INPUT | MUX_MODE0) /* gpmc_ad5 */ - DRA7XX_CORE_IOPAD(0x3418, PIN_INPUT | MUX_MODE0) /* gpmc_ad6 */ - DRA7XX_CORE_IOPAD(0x341c, PIN_INPUT | MUX_MODE0) /* gpmc_ad7 */ - DRA7XX_CORE_IOPAD(0x3420, PIN_INPUT | MUX_MODE0) /* gpmc_ad8 */ - DRA7XX_CORE_IOPAD(0x3424, PIN_INPUT | MUX_MODE0) /* gpmc_ad9 */ - DRA7XX_CORE_IOPAD(0x3428, PIN_INPUT | MUX_MODE0) /* gpmc_ad10 */ - DRA7XX_CORE_IOPAD(0x342c, PIN_INPUT | MUX_MODE0) /* gpmc_ad11 */ - DRA7XX_CORE_IOPAD(0x3430, PIN_INPUT | MUX_MODE0) /* gpmc_ad12 */ - DRA7XX_CORE_IOPAD(0x3434, PIN_INPUT | MUX_MODE0) /* gpmc_ad13 */ - DRA7XX_CORE_IOPAD(0x3438, PIN_INPUT | MUX_MODE0) /* gpmc_ad14 */ - DRA7XX_CORE_IOPAD(0x343c, PIN_INPUT | MUX_MODE0) /* gpmc_ad15 */ - DRA7XX_CORE_IOPAD(0x34b4, PIN_OUTPUT | MUX_MODE0) /* gpmc_cs0 */ - DRA7XX_CORE_IOPAD(0x34c4, PIN_OUTPUT | MUX_MODE0) /* gpmc_advn_ale */ - DRA7XX_CORE_IOPAD(0x34cc, PIN_OUTPUT | MUX_MODE0) /* gpmc_wen */ - DRA7XX_CORE_IOPAD(0x34c8, PIN_OUTPUT | MUX_MODE0) /* gpmc_oen_ren */ - DRA7XX_CORE_IOPAD(0x34d0, PIN_OUTPUT | MUX_MODE0) /* gpmc_ben0 */ - DRA7XX_CORE_IOPAD(0x34d8, PIN_INPUT | MUX_MODE0) /* gpmc_wait0 */ - >; - }; - - usb1_pins: pinmux_usb1_pins { - pinctrl-single,pins = < - DRA7XX_CORE_IOPAD(0x3680, PIN_INPUT_SLEW | MUX_MODE0) /* usb1_drvvbus */ - >; - }; - - usb2_pins: pinmux_usb2_pins { - pinctrl-single,pins = < - DRA7XX_CORE_IOPAD(0x3684, PIN_INPUT_SLEW | MUX_MODE0) /* usb2_drvvbus */ - >; - }; - - tps65917_pins_default: tps65917_pins_default { - pinctrl-single,pins = < - DRA7XX_CORE_IOPAD(0x3824, PIN_INPUT_PULLUP | MUX_MODE1) /* wakeup3.sys_nirq1 */ - >; - }; - mmc1_pins_default: mmc1_pins_default { pinctrl-single,pins = < DRA7XX_CORE_IOPAD(0x376c, PIN_INPUT | MUX_MODE14) /* mmc1sdcd.gpio219 */
@@ -240,59 +171,16 @@ DRA7XX_CORE_IOPAD(0x3818, MUX_MODE15 | PULL_UP) /* wakeup0.off */ >; }; - - hdmi_pins: pinmux_hdmi_pins { - pinctrl-single,pins = < - DRA7XX_CORE_IOPAD(0x3808, PIN_INPUT | MUX_MODE1) /* i2c2_sda.hdmi1_ddc_scl */ - DRA7XX_CORE_IOPAD(0x380c, PIN_INPUT | MUX_MODE1) /* i2c2_scl.hdmi1_ddc_sda */ - >; - }; - - tpd12s015_pins: pinmux_tpd12s015_pins { - pinctrl-single,pins = < - DRA7XX_CORE_IOPAD(0x37b8, PIN_INPUT_PULLDOWN | MUX_MODE14) /* gpio7_12 HPD */ - >; - }; - - atl_pins: pinmux_atl_pins { - pinctrl-single,pins = < - DRA7XX_CORE_IOPAD(0x3698, PIN_OUTPUT | MUX_MODE5) /* xref_clk1.atl_clk1 */ - DRA7XX_CORE_IOPAD(0x369c, PIN_OUTPUT | MUX_MODE5) /* xref_clk2.atl_clk2 */ - >; - }; - - mcasp3_pins: pinmux_mcasp3_pins { - pinctrl-single,pins = < - DRA7XX_CORE_IOPAD(0x3724, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mcasp3_aclkx */ - DRA7XX_CORE_IOPAD(0x3728, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mcasp3_fsx */ - DRA7XX_CORE_IOPAD(0x372c, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mcasp3_axr0 */ - DRA7XX_CORE_IOPAD(0x3730, PIN_INPUT_PULLDOWN | MUX_MODE0) /* mcasp3_axr1 */ - >; - }; - - mcasp3_sleep_pins: pinmux_mcasp3_sleep_pins { - pinctrl-single,pins = < - DRA7XX_CORE_IOPAD(0x3724, PIN_INPUT_PULLDOWN | MUX_MODE15) - DRA7XX_CORE_IOPAD(0x3728, PIN_INPUT_PULLDOWN | MUX_MODE15) - DRA7XX_CORE_IOPAD(0x372c, PIN_INPUT_PULLDOWN | MUX_MODE15) - DRA7XX_CORE_IOPAD(0x3730, PIN_INPUT_PULLDOWN | MUX_MODE15) - >; - }; }; &i2c1 { status = "okay"; - pinctrl-names = "default"; - pinctrl-0 = <&i2c1_pins>; clock-frequency = <400000>; tps65917: tps65917 at 58 { compatible = "ti,tps65917"; reg = <0x58>; - pinctrl-names = "default"; - pinctrl-0 = <&tps65917_pins_default>; - interrupts = <GIC_SPI 2 IRQ_TYPE_NONE>; /* IRQ_SYS_1N */ interrupt-controller; #interrupt-cells = <2>;
@@ -423,8 +311,6 @@ &i2c5 { status = "okay"; - pinctrl-names = "default"; - pinctrl-0 = <&i2c5_pins>; clock-frequency = <400000>; pcf_hdmi: pcf8575 at 26 {
@@ -462,8 +348,6 @@ &gpmc { status = "okay"; - pinctrl-names = "default"; - pinctrl-0 = <&nand_default>; ranges = <0 0 0x08000000 0x01000000>; /* minimum GPMC partition = 16MB */ nand at 0,0 { /* To use NAND, DIP switch SW5 must be set like so:
@@ -566,14 +450,10 @@ &usb1 { dr_mode = "peripheral"; - pinctrl-names = "default"; - pinctrl-0 = <&usb1_pins>; }; &usb2 { dr_mode = "host"; - pinctrl-names = "default"; - pinctrl-0 = <&usb2_pins>; }; &mmc1 {
@@ -603,71 +483,8 @@ max-frequency = <192000000>; }; -&dra7_pmx_core { - cpsw_default: cpsw_default { - pinctrl-single,pins = < - /* Slave 2 */ - DRA7XX_CORE_IOPAD(0x3598, PIN_OUTPUT | MUX_MODE3) /* vin2a_d12.rgmii1_txc */ - DRA7XX_CORE_IOPAD(0x359c, PIN_OUTPUT | MUX_MODE3) /* vin2a_d13.rgmii1_tctl */ - DRA7XX_CORE_IOPAD(0x35a0, PIN_OUTPUT | MUX_MODE3) /* vin2a_d14.rgmii1_td3 */ - DRA7XX_CORE_IOPAD(0x35a4, PIN_OUTPUT | MUX_MODE3) /* vin2a_d15.rgmii1_td2 */ - DRA7XX_CORE_IOPAD(0x35a8, PIN_OUTPUT | MUX_MODE3) /* vin2a_d16.rgmii1_td1 */ - DRA7XX_CORE_IOPAD(0x35ac, PIN_OUTPUT | MUX_MODE3) /* vin2a_d17.rgmii1_td0 */ - DRA7XX_CORE_IOPAD(0x35b0, PIN_INPUT | MUX_MODE3) /* vin2a_d18.rgmii1_rclk */ - DRA7XX_CORE_IOPAD(0x35b4, PIN_INPUT | MUX_MODE3) /* vin2a_d19.rgmii1_rctl */ - DRA7XX_CORE_IOPAD(0x35b8, PIN_INPUT | MUX_MODE3) /* vin2a_d20.rgmii1_rd3 */ - DRA7XX_CORE_IOPAD(0x35bc, PIN_INPUT | MUX_MODE3) /* vin2a_d21.rgmii1_rd2 */ - DRA7XX_CORE_IOPAD(0x35c0, PIN_INPUT | MUX_MODE3) /* vin2a_d22.rgmii1_rd1 */ - DRA7XX_CORE_IOPAD(0x35c4, PIN_INPUT | MUX_MODE3) /* vin2a_d23.rgmii1_rd0 */ - >; - - }; - - cpsw_sleep: cpsw_sleep { - pinctrl-single,pins = < - /* Slave 2 */ - DRA7XX_CORE_IOPAD(0x3598, MUX_MODE15) - DRA7XX_CORE_IOPAD(0x359c, MUX_MODE15) - DRA7XX_CORE_IOPAD(0x35a0, MUX_MODE15) - DRA7XX_CORE_IOPAD(0x35a4, MUX_MODE15) - DRA7XX_CORE_IOPAD(0x35a8, MUX_MODE15) - DRA7XX_CORE_IOPAD(0x35ac, MUX_MODE15) - DRA7XX_CORE_IOPAD(0x35b0, MUX_MODE15) - DRA7XX_CORE_IOPAD(0x35b4, MUX_MODE15) - DRA7XX_CORE_IOPAD(0x35b8, MUX_MODE15) - DRA7XX_CORE_IOPAD(0x35bc, MUX_MODE15) - DRA7XX_CORE_IOPAD(0x35c0, MUX_MODE15) - DRA7XX_CORE_IOPAD(0x35c4, MUX_MODE15) - >; - }; - - davinci_mdio_default: davinci_mdio_default { - pinctrl-single,pins = < - /* MDIO */ - DRA7XX_CORE_IOPAD(0x363c, PIN_OUTPUT_PULLUP | MUX_MODE0) /* mdio_d.mdio_d */ - DRA7XX_CORE_IOPAD(0x3640, PIN_INPUT_PULLUP | MUX_MODE0) /* mdio_clk.mdio_clk */ - >; - }; - - davinci_mdio_sleep: davinci_mdio_sleep { - pinctrl-single,pins = < - DRA7XX_CORE_IOPAD(0x363c, MUX_MODE15) - DRA7XX_CORE_IOPAD(0x3640, MUX_MODE15) - >; - }; -}; - &mac { status = "okay"; - pinctrl-names = "default", "sleep"; - pinctrl-0 = <&cpsw_default>; - pinctrl-1 = <&cpsw_sleep>; -}; - -&davinci_mdio { - pinctrl-names = "default", "sleep"; - pinctrl-0 = <&davinci_mdio_default>; - pinctrl-1 = <&davinci_mdio_sleep>; }; &dcan1 {
@@ -748,9 +565,6 @@ &hdmi { status = "ok"; - pinctrl-names = "default"; - pinctrl-0 = <&hdmi_pins>; - port { hdmi_out: endpoint { remote-endpoint = <&tpd12s015_in>;
@@ -759,9 +573,6 @@ }; &atl { - pinctrl-names = "default"; - pinctrl-0 = <&atl_pins>; - assigned-clocks = <&abe_dpll_sys_clk_mux>, <&atl_gfclk_mux>, <&dpll_abe_ck>,
@@ -780,9 +591,6 @@ &mcasp3 { #sound-dai-cells = <0>; - pinctrl-names = "default", "sleep"; - pinctrl-0 = <&mcasp3_pins>; - pinctrl-1 = <&mcasp3_sleep_pins>; assigned-clocks = <&mcasp3_ahclkx_mux>; assigned-clock-parents = <&atl_clkin2_ck>;
Signature · 1 line
2.10.1
PATCH v2 2/9 ARM: dra72-evm: Fix modelling of regulators
In reply to Lokesh VutlaAdd proper description of input voltage regulators and update the voltage rail map for all the regulators.
--- arch/arm/boot/dts/dra72-evm-common.dtsi | 48 +++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+)
arch/arm/boot/dts/dra72-evm-common.dtsi +48 -0
@@ -18,11 +18,47 @@ display0 = &hdmi0; }; + evm_12v0: fixedregulator-evm12v0 { + /* main supply */ + compatible = "regulator-fixed"; + regulator-name = "evm_12v0"; + regulator-min-microvolt = <12000000>; + regulator-max-microvolt = <12000000>; + regulator-always-on; + regulator-boot-on; + }; + + evm_5v0: fixedregulator-evm5v0 { + /* Output 1 of TPS43351QDAPRQ1 */ + compatible = "regulator-fixed"; + regulator-name = "evm_5v0"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + vin-supply = <&evm_12v0>; + regulator-always-on; + regulator-boot-on; + }; + + vsys_3v3: fixedregulator-vsys3v3 { + /* Output 2 of TPS43351QDAPRQ1 */ + compatible = "regulator-fixed"; + regulator-name = "vsys_3v3"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + vin-supply = <&evm_12v0>; + regulator-always-on; + regulator-boot-on; + }; + evm_3v3_sw: fixedregulator-evm_3v3 { + /* TPS22965DSG */ compatible = "regulator-fixed"; regulator-name = "evm_3v3"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; + vin-supply = <&vsys_3v3>; + regulator-always-on; + regulator-boot-on; }; aic_dvdd: fixedregulator-aic_dvdd {
@@ -39,6 +75,7 @@ regulator-name = "evm_3v3_sd"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; + vin-supply = <&evm_3v3_sw>; enable-active-high; gpio = <&pcf_gpio_21 5 GPIO_ACTIVE_HIGH>; };
@@ -190,6 +227,17 @@ tps65917_pmic { compatible = "ti,tps65917-pmic"; + smps1-in-supply = <&vsys_3v3>; + smps2-in-supply = <&vsys_3v3>; + smps3-in-supply = <&vsys_3v3>; + smps4-in-supply = <&vsys_3v3>; + smps5-in-supply = <&vsys_3v3>; + ldo1-in-supply = <&vsys_3v3>; + ldo2-in-supply = <&vsys_3v3>; + ldo3-in-supply = <&vsys_3v3>; + ldo4-in-supply = <&evm_5v0>; + ldo5-in-supply = <&vsys_3v3>; + tps65917_regulators: regulators { smps1_reg: smps1 { /* VDD_MPU */
Signature · 1 line
2.10.1
PATCH v2 3/9 ARM: dts: dra72: Add separate dtsi for tps65917
In reply to Lokesh Vutladra72-evm-common.dtsi consolidates dra72-evm.dts and dra72-evm-revc.dts which also include tps65917 pmic support as both the evms uses the same pmic. But, dra71-evm has mostly similar features with a different pmic. In order to exploit dra72-evm-common.dtsi, creating a separate dtsi for tps65915 support and including it in respective board files.
--- arch/arm/boot/dts/dra72-evm-common.dtsi | 128 ---------------------------- arch/arm/boot/dts/dra72-evm-revc.dts | 21 +++-- arch/arm/boot/dts/dra72-evm-tps65917.dtsi | 134 ++++++++++++++++++++++++++++++ arch/arm/boot/dts/dra72-evm.dts | 14 ++-- 4 files changed, 154 insertions(+), 143 deletions(-) create mode 100644 arch/arm/boot/dts/dra72-evm-tps65917.dtsi
arch/arm/boot/dts/dra72-evm-common.dtsi +0 -128
@@ -214,123 +214,6 @@ status = "okay"; clock-frequency = <400000>; - tps65917: tps65917 at 58 { - compatible = "ti,tps65917"; - reg = <0x58>; - - interrupts = <GIC_SPI 2 IRQ_TYPE_NONE>; /* IRQ_SYS_1N */ - interrupt-controller; - #interrupt-cells = <2>; - - ti,system-power-controller; - - tps65917_pmic { - compatible = "ti,tps65917-pmic"; - - smps1-in-supply = <&vsys_3v3>; - smps2-in-supply = <&vsys_3v3>; - smps3-in-supply = <&vsys_3v3>; - smps4-in-supply = <&vsys_3v3>; - smps5-in-supply = <&vsys_3v3>; - ldo1-in-supply = <&vsys_3v3>; - ldo2-in-supply = <&vsys_3v3>; - ldo3-in-supply = <&vsys_3v3>; - ldo4-in-supply = <&evm_5v0>; - ldo5-in-supply = <&vsys_3v3>; - - tps65917_regulators: regulators { - smps1_reg: smps1 { - /* VDD_MPU */ - regulator-name = "smps1"; - regulator-min-microvolt = <850000>; - regulator-max-microvolt = <1250000>; - regulator-always-on; - regulator-boot-on; - }; - - smps2_reg: smps2 { - /* VDD_CORE */ - regulator-name = "smps2"; - regulator-min-microvolt = <850000>; - regulator-max-microvolt = <1150000>; - regulator-boot-on; - regulator-always-on; - }; - - smps3_reg: smps3 { - /* VDD_GPU IVA DSPEVE */ - regulator-name = "smps3"; - regulator-min-microvolt = <850000>; - regulator-max-microvolt = <1250000>; - regulator-boot-on; - regulator-always-on; - }; - - smps4_reg: smps4 { - /* VDDS1V8 */ - regulator-name = "smps4"; - regulator-min-microvolt = <1800000>; - regulator-max-microvolt = <1800000>; - regulator-always-on; - regulator-boot-on; - }; - - smps5_reg: smps5 { - /* VDD_DDR */ - regulator-name = "smps5"; - regulator-min-microvolt = <1350000>; - regulator-max-microvolt = <1350000>; - regulator-boot-on; - regulator-always-on; - }; - - ldo1_reg: ldo1 { - /* LDO1_OUT --> SDIO */ - regulator-name = "ldo1"; - regulator-min-microvolt = <1800000>; - regulator-max-microvolt = <3300000>; - regulator-always-on; - regulator-boot-on; - regulator-allow-bypass; - }; - - ldo3_reg: ldo3 { - /* VDDA_1V8_PHY */ - regulator-name = "ldo3"; - regulator-min-microvolt = <1800000>; - regulator-max-microvolt = <1800000>; - regulator-boot-on; - regulator-always-on; - }; - - ldo5_reg: ldo5 { - /* VDDA_1V8_PLL */ - regulator-name = "ldo5"; - regulator-min-microvolt = <1800000>; - regulator-max-microvolt = <1800000>; - regulator-always-on; - regulator-boot-on; - }; - - ldo4_reg: ldo4 { - /* VDDA_3V_USB: VDDA_USBHS33 */ - regulator-name = "ldo4"; - regulator-min-microvolt = <3300000>; - regulator-max-microvolt = <3300000>; - regulator-boot-on; - }; - }; - }; - - tps65917_power_button { - compatible = "ti,palmas-pwrbutton"; - interrupt-parent = <&tps65917>; - interrupts = <1 IRQ_TYPE_NONE>; - wakeup-source; - ti,palmas-long-press-seconds = <6>; - }; - }; - pcf_gpio_21: gpio at 21 { compatible = "ti,pcf8575", "nxp,pcf8575"; reg = <0x21>;
@@ -480,14 +363,6 @@ }; }; -&usb2_phy1 { - phy-supply = <&ldo4_reg>; -}; - -&usb2_phy2 { - phy-supply = <&ldo4_reg>; -}; - &omap_dwc3_1 { extcon = <&extcon_usb1>; };
@@ -509,7 +384,6 @@ pinctrl-names = "default"; pinctrl-0 = <&mmc1_pins_default>; vmmc-supply = <&evm_3v3_sd>; - vmmc_aux-supply = <&ldo1_reg>; bus-width = <4>; /* * SDCD signal is not being used here - using the fact that GPIO mode
@@ -606,8 +480,6 @@ &dss { status = "ok"; - - vdda_video-supply = <&ldo5_reg>; }; &hdmi {
arch/arm/boot/dts/dra72-evm-revc.dts +13 -8
@@ -17,17 +17,22 @@ }; }; -&tps65917_regulators { - ldo2_reg: ldo2 { - /* LDO2_OUT --> VDDA_1V8_PHY2 */ - regulator-name = "ldo2"; - regulator-min-microvolt = <1800000>; - regulator-max-microvolt = <1800000>; - regulator-always-on; - regulator-boot-on; +&i2c1 { + tps65917: tps65917 at 58 { + reg = <0x58>; + + interrupts = <GIC_SPI 2 IRQ_TYPE_NONE>; /* IRQ_SYS_1N */ }; }; +#include "dra72-evm-tps65917.dtsi" + +&ldo2_reg { + /* LDO2_OUT --> VDDA_1V8_PHY2 */ + regulator-always-on; + regulator-boot-on; +}; + &hdmi { vdda-supply = <&ldo2_reg>; };
arch/arm/boot/dts/dra72-evm-tps65917.dtsi new file +134 -0
134 lines not on this page · raw message
arch/arm/boot/dts/dra72-evm.dts +7 -7
@@ -15,16 +15,16 @@ }; }; -&tps65917_regulators { - ldo2_reg: ldo2 { - /* LDO2_OUT --> TP1017 (UNUSED) */ - regulator-name = "ldo2"; - regulator-min-microvolt = <1800000>; - regulator-max-microvolt = <3300000>; - regulator-allow-bypass; +&i2c1 { + tps65917: tps65917 at 58 { + reg = <0x58>; + + interrupts = <GIC_SPI 2 IRQ_TYPE_NONE>; /* IRQ_SYS_1N */ }; }; +#include "dra72-evm-tps65917.dtsi" + &hdmi { vdda-supply = <&ldo3_reg>; };
Signature · 1 line
2.10.1
PATCH v2 3/9 ARM: dts: dra72: Add separate dtsi for tps65917
+Tomi, Kishon, Carlos
Hi,
Quoted 6 lines · Lokesh Vutla
dra72-evm-common.dtsiconsolidatesdra72-evm.dtsanddra72-evm-revc.dtswhich also include tps65917 pmic support as both the evms uses the same pmic. But, dra71-evm has mostly similar features with a different pmic. In order to exploitdra72-evm-common.dtsi, creating a separate dtsi for tps65915 support and including it in respective board files.
Quoted 9 lines
Signed-off-by Lokesh Vutla <[email protected]>--- arch/arm/boot/dts/dra72-evm-common.dtsi | 128 ---------------------------- arch/arm/boot/dts/dra72-evm-revc.dts | 21 +++-- arch/arm/boot/dts/dra72-evm-tps65917.dtsi | 134 ++++++++++++++++++++++++++++++ arch/arm/boot/dts/dra72-evm.dts | 14 ++-- 4 files changed, 154 insertions(+), 143 deletions(-) create mode 100644 arch/arm/boot/dts/dra72-evm-tps65917.dtsi
This patch breaks USB XHCI and boot on dra72-evm (both revC and non revC)
I'll explain why below.
[ 13.625167] Unhandled fault: imprecise external abort (0x1406) at 0x00000000 [ 13.632557] pgd = ede10000 [ 13.635390] [00000000] *pgd=00000000 [ 13.639145] Internal error: : 1406 [#1] SMP ARM [ 13.643893] Modules linked in: xhci_plat_hcd(+) xhci_hcd usbcore omapfb dwc3 cfbfillrect snd_soc_davinci_mcasp cfbimgblt cfbcopyarea udc_core connector_hdmi encoder_tpd12s015 snd_soc_edma m25p80 snd_soc_simpe [ 13.695557] CPU: 0 PID: 440 Comm: modprobe Not tainted 4.9.0-rc1 #1050 [ 13.702399] Hardware name: Generic DRA72X (Flattened Device Tree) [ 13.708786] task: edb5c040 task.stack: edd10000 [ 13.713540] PC is at _raw_spin_unlock_irqrestore+0x0/0x44 [ 13.719219] LR is at xhci_hub_control+0xc2c/0x15e0 [xhci_hcd] [ 13.725242] pc : [<c07df718>] lr : [<bf486300>] psr: a0000093 [ 13.725242] sp : edd118c0 ip : c0e306b4 fp : 00000000 [ 13.737278] r10: 00000000 r9 : 60000013 r8 : edf28218 [ 13.742753] r7 : edf28000 r6 : 00000000 r5 : 00000000 r4 : edf2a000 [ 13.749593] r3 : 00000000 r2 : 00000000 r1 : 60000013 r0 : edf28218
Quoted 130 lines
arch/arm/boot/dts/dra72-evm-common.dtsi +0
-117@@ -214,123 +214,6 @@ status = "okay"; clock-frequency = <400000>; - tps65917: tps65917 at 58 { - compatible = "ti,tps65917"; - reg = <0x58>; - - interrupts = <GIC_SPI 2 IRQ_TYPE_NONE>; /* IRQ_SYS_1N */ - interrupt-controller; - #interrupt-cells = <2>; - - ti,system-power-controller; - - tps65917_pmic { - compatible = "ti,tps65917-pmic"; - - smps1-in-supply = <&vsys_3v3>; - smps2-in-supply = <&vsys_3v3>; - smps3-in-supply = <&vsys_3v3>; - smps4-in-supply = <&vsys_3v3>; - smps5-in-supply = <&vsys_3v3>; - ldo1-in-supply = <&vsys_3v3>; - ldo2-in-supply = <&vsys_3v3>; - ldo3-in-supply = <&vsys_3v3>; - ldo4-in-supply = <&evm_5v0>; - ldo5-in-supply = <&vsys_3v3>; - - tps65917_regulators: regulators { - smps1_reg: smps1 { - /* VDD_MPU */ - regulator-name = "smps1"; - regulator-min-microvolt = <850000>; - regulator-max-microvolt = <1250000>; - regulator-always-on; - regulator-boot-on; - }; - - smps2_reg: smps2 { - /* VDD_CORE */ - regulator-name = "smps2"; - regulator-min-microvolt = <850000>; - regulator-max-microvolt = <1150000>; - regulator-boot-on; - regulator-always-on; - }; - - smps3_reg: smps3 { - /* VDD_GPU IVA DSPEVE */ - regulator-name = "smps3"; - regulator-min-microvolt = <850000>; - regulator-max-microvolt = <1250000>; - regulator-boot-on; - regulator-always-on; - }; - - smps4_reg: smps4 { - /* VDDS1V8 */ - regulator-name = "smps4"; - regulator-min-microvolt = <1800000>; - regulator-max-microvolt = <1800000>; - regulator-always-on; - regulator-boot-on; - }; - - smps5_reg: smps5 { - /* VDD_DDR */ - regulator-name = "smps5"; - regulator-min-microvolt = <1350000>; - regulator-max-microvolt = <1350000>; - regulator-boot-on; - regulator-always-on; - }; - - ldo1_reg: ldo1 { - /* LDO1_OUT --> SDIO */ - regulator-name = "ldo1"; - regulator-min-microvolt = <1800000>; - regulator-max-microvolt = <3300000>; - regulator-always-on; - regulator-boot-on; - regulator-allow-bypass; - }; - - ldo3_reg: ldo3 { - /* VDDA_1V8_PHY */ - regulator-name = "ldo3"; - regulator-min-microvolt = <1800000>; - regulator-max-microvolt = <1800000>; - regulator-boot-on; - regulator-always-on; - }; - - ldo5_reg: ldo5 { - /* VDDA_1V8_PLL */ - regulator-name = "ldo5"; - regulator-min-microvolt = <1800000>; - regulator-max-microvolt = <1800000>; - regulator-always-on; - regulator-boot-on; - }; - - ldo4_reg: ldo4 { - /* VDDA_3V_USB: VDDA_USBHS33 */ - regulator-name = "ldo4"; - regulator-min-microvolt = <3300000>; - regulator-max-microvolt = <3300000>; - regulator-boot-on; - }; - }; - }; - - tps65917_power_button { - compatible = "ti,palmas-pwrbutton"; - interrupt-parent = <&tps65917>; - interrupts = <1 IRQ_TYPE_NONE>; - wakeup-source; - ti,palmas-long-press-seconds = <6>; - }; - }; - pcf_gpio_21: gpio at 21 { compatible = "ti,pcf8575", "nxp,pcf8575"; reg = <0x21>;@@ -480,14 +363,6 @@ };
arch/arm/boot/dts/dra72-evm-common.dtsi line 490
Quoted 10 lines
arch/arm/boot/dts/dra72-evm-common.dtsi +0
-8}; -&usb2_phy1 { - phy-supply = <&ldo4_reg>; -}; - -&usb2_phy2 { - phy-supply = <&ldo4_reg>; -}; -
You remove this here but don't add them in the board dts files.
arch/arm/boot/dts/dra72-evm-common.dtsi line 512
Quoted 8 lines
arch/arm/boot/dts/dra72-evm-common.dtsi +0
-1&omap_dwc3_1 { extcon = <&extcon_usb1>; };@@ -509,7 +384,6 @@ pinctrl-names = "default"; pinctrl-0 = <&mmc1_pins_default>; vmmc-supply = <&evm_3v3_sd>; - vmmc_aux-supply = <&ldo1_reg>;
What about this?
arch/arm/boot/dts/dra72-evm-common.dtsi line 610
Quoted 9 lines
arch/arm/boot/dts/dra72-evm-common.dtsi +0
-2bus-width = <4>; /* * SDCD signal is not being used here - using the fact that GPIO mode@@ -606,8 +480,6 @@ &dss { status = "ok"; - - vdda_video-supply = <&ldo5_reg>;
and this?
Quoted 25 lines
arch/arm/boot/dts/dra72-evm-common.dtsi +0
-0}; &hdmi {arch/arm/boot/dts/dra72-evm-revc.dts +5
-8@@ -17,17 +17,22 @@ }; }; -&tps65917_regulators { - ldo2_reg: ldo2 { - /* LDO2_OUT --> VDDA_1V8_PHY2 */ - regulator-name = "ldo2"; - regulator-min-microvolt = <1800000>; - regulator-max-microvolt = <1800000>; - regulator-always-on; - regulator-boot-on; +&i2c1 { + tps65917: tps65917 at 58 { + reg = <0x58>; + + interrupts = <GIC_SPI 2 IRQ_TYPE_NONE>; /* IRQ_SYS_1N */ };
arch/arm/boot/dts/dra72-evm-revc.dts line 35
Quoted 10 lines
arch/arm/boot/dts/dra72-evm-revc.dts +8
-0}; +#include "dra72-evm-tps65917.dtsi" + +&ldo2_reg { + /* LDO2_OUT --> VDDA_1V8_PHY2 */ + regulator-always-on; + regulator-boot-on; +}; +
Here you need to add the usb2_phy1 & 2 supplies.
Quoted 162 lines
arch/arm/boot/dts/dra72-evm-revc.dts +0
-0&hdmi { vdda-supply = <&ldo2_reg>; };arch/arm/boot/dts/dra72-evm-tps65917.dtsi new file +134
-0@@ -0,0 +1,134 @@ +/* + * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ + +/* + * Integrated Power Management Chip + * http://www.ti.com/lit/ds/symlink/tps65917-q1.pdf + */ + +&tps65917 { + compatible = "ti,tps65917"; + + interrupt-controller; + #interrupt-cells = <2>; + + ti,system-power-controller; + + tps65917_pmic { + compatible = "ti,tps65917-pmic"; + + smps1-in-supply = <&vsys_3v3>; + smps2-in-supply = <&vsys_3v3>; + smps3-in-supply = <&vsys_3v3>; + smps4-in-supply = <&vsys_3v3>; + smps5-in-supply = <&vsys_3v3>; + ldo1-in-supply = <&vsys_3v3>; + ldo2-in-supply = <&vsys_3v3>; + ldo3-in-supply = <&vsys_3v3>; + ldo4-in-supply = <&evm_5v0>; + ldo5-in-supply = <&vsys_3v3>; + + tps65917_regulators: regulators { + smps1_reg: smps1 { + /* VDD_MPU */ + regulator-name = "smps1"; + regulator-min-microvolt = <850000>; + regulator-max-microvolt = <1250000>; + regulator-always-on; + regulator-boot-on; + }; + + smps2_reg: smps2 { + /* VDD_CORE */ + regulator-name = "smps2"; + regulator-min-microvolt = <850000>; + regulator-max-microvolt = <1150000>; + regulator-boot-on; + regulator-always-on; + }; + + smps3_reg: smps3 { + /* VDD_GPU IVA DSPEVE */ + regulator-name = "smps3"; + regulator-min-microvolt = <850000>; + regulator-max-microvolt = <1250000>; + regulator-boot-on; + regulator-always-on; + }; + + smps4_reg: smps4 { + /* VDDS1V8 */ + regulator-name = "smps4"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-always-on; + regulator-boot-on; + }; + + smps5_reg: smps5 { + /* VDD_DDR */ + regulator-name = "smps5"; + regulator-min-microvolt = <1350000>; + regulator-max-microvolt = <1350000>; + regulator-boot-on; + regulator-always-on; + }; + + ldo1_reg: ldo1 { + /* LDO1_OUT --> SDIO */ + regulator-name = "ldo1"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3300000>; + regulator-always-on; + regulator-boot-on; + regulator-allow-bypass; + }; + + ldo2_reg: ldo2 { + regulator-name = "ldo2"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-allow-bypass; + }; + + ldo3_reg: ldo3 { + /* VDDA_1V8_PHY */ + regulator-name = "ldo3"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-boot-on; + regulator-always-on; + }; + + ldo5_reg: ldo5 { + /* VDDA_1V8_PLL */ + regulator-name = "ldo5"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-always-on; + regulator-boot-on; + }; + + ldo4_reg: ldo4 { + /* VDDA_3V_USB: VDDA_USBHS33 */ + regulator-name = "ldo4"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + }; + }; + }; + + tps65917_power_button { + compatible = "ti,palmas-pwrbutton"; + interrupt-parent = <&tps65917>; + interrupts = <1 IRQ_TYPE_NONE>; + wakeup-source; + ti,palmas-long-press-seconds = <6>; + }; +};arch/arm/boot/dts/dra72-evm.dts +3
-7@@ -15,16 +15,16 @@ }; }; -&tps65917_regulators { - ldo2_reg: ldo2 { - /* LDO2_OUT --> TP1017 (UNUSED) */ - regulator-name = "ldo2"; - regulator-min-microvolt = <1800000>; - regulator-max-microvolt = <3300000>; - regulator-allow-bypass; +&i2c1 { + tps65917: tps65917 at 58 { + reg = <0x58>;
arch/arm/boot/dts/dra72-evm.dts line 30
Quoted 10 lines
arch/arm/boot/dts/dra72-evm.dts +4
-0+ + interrupts = <GIC_SPI 2 IRQ_TYPE_NONE>; /* IRQ_SYS_1N */ }; }; +#include "dra72-evm-tps65917.dtsi" + &hdmi { vdda-supply = <&ldo3_reg>; };
Here as well you need to add the usb2_phy1 & 2 supplies.
We probably need to add dss and mmc supplies as well to both the board dts files?
cheers,
-roger
PATCH v2 3/9 ARM: dts: dra72: Add separate dtsi for tps65917
Quoted 25 lines · Roger Quadros
+Tomi, Kishon, Carlos
Hi,
Quoted 6 lines · Lokesh Vutla
dra72-evm-common.dtsiconsolidatesdra72-evm.dtsanddra72-evm-revc.dtswhich also include tps65917 pmic support as both the evms uses the same pmic. But, dra71-evm has mostly similar features with a different pmic. In order to exploitdra72-evm-common.dtsi, creating a separate dtsi for tps65915 support and including it in respective board files.Quoted 9 lines
Signed-off-by Lokesh Vutla <[email protected]>--- arch/arm/boot/dts/dra72-evm-common.dtsi | 128 ---------------------------- arch/arm/boot/dts/dra72-evm-revc.dts | 21 +++-- arch/arm/boot/dts/dra72-evm-tps65917.dtsi | 134 ++++++++++++++++++++++++++++++ arch/arm/boot/dts/dra72-evm.dts | 14 ++-- 4 files changed, 154 insertions(+), 143 deletions(-) create mode 100644 arch/arm/boot/dts/dra72-evm-tps65917.dtsiThis patch breaks USB XHCI and boot on dra72-evm (both revC and non revC)
I'll explain why below.
Quoted 15 lines
[ 13.625167] Unhandled fault: imprecise external abort (0x1406) at 0x00000000 [ 13.632557] pgd = ede10000 [ 13.635390] [00000000] *pgd=00000000 [ 13.639145] Internal error: : 1406 [#1] SMP ARM [ 13.643893] Modules linked in: xhci_plat_hcd(+) xhci_hcd usbcore omapfb dwc3 cfbfillrect snd_soc_davinci_mcasp cfbimgblt cfbcopyarea udc_core connector_hdmi encoder_tpd12s015 snd_soc_edma m25p80 snd_soc_simpe [ 13.695557] CPU: 0 PID: 440 Comm: modprobe Not tainted 4.9.0-rc1 #1050 [ 13.702399] Hardware name: Generic DRA72X (Flattened Device Tree) [ 13.708786] task: edb5c040 task.stack: edd10000 [ 13.713540] PC is at _raw_spin_unlock_irqrestore+0x0/0x44 [ 13.719219] LR is at xhci_hub_control+0xc2c/0x15e0 [xhci_hcd] [ 13.725242] pc : [<c07df718>] lr : [<bf486300>] psr: a0000093 [ 13.725242] sp : edd118c0 ip : c0e306b4 fp : 00000000 [ 13.737278] r10: 00000000 r9 : 60000013 r8 : edf28218 [ 13.742753] r7 : edf28000 r6 : 00000000 r5 : 00000000 r4 : edf2a000 [ 13.749593] r3 : 00000000 r2 : 00000000 r1 : 60000013 r0 : edf28218
Hmm.. Thanks for catching it. I remember it was booting when I tested, not sure how I missed this :(. usb2_phy1 & 2, mmc and dss supplies needs to be added in dra72-evm-tps65917.dtsi file.
Tony,
Do you want me to resend this patch or fixup patch on top of this?
Thanks and regards,
Lokesh
PATCH v2 3/9 ARM: dts: dra72: Add separate dtsi for tps65917
Lokesh,
Quoted 44 lines · Lokesh Vutla
Quoted 25 lines · Roger Quadros
+Tomi, Kishon, Carlos
Hi,
Quoted 6 lines · Lokesh Vutla
dra72-evm-common.dtsiconsolidatesdra72-evm.dtsanddra72-evm-revc.dtswhich also include tps65917 pmic support as both the evms uses the same pmic. But, dra71-evm has mostly similar features with a different pmic. In order to exploitdra72-evm-common.dtsi, creating a separate dtsi for tps65915 support and including it in respective board files.Quoted 9 lines
Signed-off-by Lokesh Vutla <[email protected]>--- arch/arm/boot/dts/dra72-evm-common.dtsi | 128 ---------------------------- arch/arm/boot/dts/dra72-evm-revc.dts | 21 +++-- arch/arm/boot/dts/dra72-evm-tps65917.dtsi | 134 ++++++++++++++++++++++++++++++ arch/arm/boot/dts/dra72-evm.dts | 14 ++-- 4 files changed, 154 insertions(+), 143 deletions(-) create mode 100644 arch/arm/boot/dts/dra72-evm-tps65917.dtsiThis patch breaks USB XHCI and boot on dra72-evm (both revC and non revC)
I'll explain why below.
Quoted 15 lines
[ 13.625167] Unhandled fault: imprecise external abort (0x1406) at 0x00000000 [ 13.632557] pgd = ede10000 [ 13.635390] [00000000] *pgd=00000000 [ 13.639145] Internal error: : 1406 [#1] SMP ARM [ 13.643893] Modules linked in: xhci_plat_hcd(+) xhci_hcd usbcore omapfb dwc3 cfbfillrect snd_soc_davinci_mcasp cfbimgblt cfbcopyarea udc_core connector_hdmi encoder_tpd12s015 snd_soc_edma m25p80 snd_soc_simpe [ 13.695557] CPU: 0 PID: 440 Comm: modprobe Not tainted 4.9.0-rc1 #1050 [ 13.702399] Hardware name: Generic DRA72X (Flattened Device Tree) [ 13.708786] task: edb5c040 task.stack: edd10000 [ 13.713540] PC is at _raw_spin_unlock_irqrestore+0x0/0x44 [ 13.719219] LR is at xhci_hub_control+0xc2c/0x15e0 [xhci_hcd] [ 13.725242] pc : [<c07df718>] lr : [<bf486300>] psr: a0000093 [ 13.725242] sp : edd118c0 ip : c0e306b4 fp : 00000000 [ 13.737278] r10: 00000000 r9 : 60000013 r8 : edf28218 [ 13.742753] r7 : edf28000 r6 : 00000000 r5 : 00000000 r4 : edf2a000 [ 13.749593] r3 : 00000000 r2 : 00000000 r1 : 60000013 r0 : edf28218
Quoted 3 lines
Hmm.. Thanks for catching it. I remember it was booting when I tested, not sure how I missed this :(.
usb2_phy1& 2, mmc and dss supplies needs to be added indra72-evm-tps65917.dtsifile.
OK.
Quoted 3 lines
Tony,
Do you want me to resend this patch or fixup patch on top of this?
In case you send a new patch. please add
Thanks.
cheers,
-roger
PATCH v2 4/9 regulator: lp873x: Add support for populating input supply
In reply to Lokesh VutlaIn order to have a proper topology of regulators for a platform, each registering regulator needs to populate supply_name field for identifying its supply's name. Add supply_name field for lp873x regulators.
--- Documentation/devicetree/bindings/mfd/lp873x.txt | 8 ++++++++ drivers/regulator/lp873x-regulator.c | 1 + 2 files changed, 9 insertions(+)
Documentation/devicetree/bindings/mfd/lp873x.txt +8 -0
@@ -7,6 +7,9 @@ Required properties: - #gpio-cells: Should be two. The first cell is the pin number and the second cell is used to specify flags. See ../gpio/gpio.txt for more information. + - xxx-in-supply: Phandle to parent supply node of each regulator + populated under regulators node. xxx should match + the supply_name populated in driver. - regulators: List of child nodes that specify the regulator initialization data. Example:
@@ -17,6 +20,11 @@ pmic: lp8733 at 60 { gpio-controller; #gpio-cells = <2>; + buck0-in-supply = <&vsys_3v3>; + buck1-in-supply = <&vsys_3v3>; + ldo0-in-supply = <&vsys_3v3>; + ldo1-in-supply = <&vsys_3v3>; + regulators { lp8733_buck0: buck0 { regulator-name = "lp8733-buck0";
drivers/regulator/lp873x-regulator.c +1 -0
@@ -24,6 +24,7 @@ [_id] = { \ .desc = { \ .name = _name, \ + .supply_name = _of "-in", \ .id = _id, \ .of_match = of_match_ptr(_of), \ .regulators_node = of_match_ptr("regulators"),\
Signature · 1 line
2.10.1
Rob Herring
maintainerPATCH v2 4/9 regulator: lp873x: Add support for populating input supply
Quoted 17 lines · Lokesh Vutla
In order to have a proper topology of regulators for a platform, each registering regulator needs to populate
supply_namefield for identifying its supply's name. Addsupply_namefield for lp873x regulators.Cc Lee Jones <[email protected]>Cc Keerthy <[email protected]>Signed-off-by Lokesh Vutla <[email protected]>--- Documentation/devicetree/bindings/mfd/lp873x.txt | 8 ++++++++ drivers/regulator/lp873x-regulator.c | 1 + 2 files changed, 9 insertions(+)Documentation/devicetree/bindings/mfd/lp873x.txt +0
-0
Documentation/devicetree/bindings/mfd/lp873x.txt Required properties: · line 12
Quoted 6 lines
Documentation/devicetree/bindings/mfd/lp873x.txt +3
-0@@ -7,6 +7,9 @@ Required properties: - #gpio-cells: Should be two. The first cell is the pin number and the second cell is used to specify flags. See ../gpio/gpio.txt for more information. + - xxx-in-supply: Phandle to parent supply node of each regulator + populated under regulators node. xxx should match + the supply_name populated in driver.
The driver is irrelevant. This should reference a list in this document.
Quoted 15 lines
Documentation/devicetree/bindings/mfd/lp873x.txt +5
-0- regulators: List of child nodes that specify the regulator initialization data. Example:@@ -17,6 +20,11 @@ pmic: lp8733 at 60 { gpio-controller; #gpio-cells = <2>; + buck0-in-supply = <&vsys_3v3>; + buck1-in-supply = <&vsys_3v3>; + ldo0-in-supply = <&vsys_3v3>; + ldo1-in-supply = <&vsys_3v3>; + regulators { lp8733_buck0: buck0 { regulator-name = "lp8733-buck0";
PATCH v2 4/9 regulator: lp873x: Add support for populating input supply
Quoted 13 lines · Rob Herring
Quoted 12 lines · Lokesh Vutla
In order to have a proper topology of regulators for a platform, each registering regulator needs to populate
supply_namefield for identifying its supply's name. Addsupply_namefield for lp873x regulators.Cc Lee Jones <[email protected]>Cc Keerthy <[email protected]>Signed-off-by Lokesh Vutla <[email protected]>--- Documentation/devicetree/bindings/mfd/lp873x.txt | 8 ++++++++ drivers/regulator/lp873x-regulator.c | 1 + 2 files changed, 9 insertions(+)
Quoted 13 lines
Documentation/devicetree/bindings/mfd/lp873x.txt Required properties: · line 12
Quoted 11 lines
Documentation/devicetree/bindings/mfd/lp873x.txt +3
-0@@ -7,6 +7,9 @@ Required properties: - #gpio-cells: Should be two. The first cell is the pin number and the second cell is used to specify flags. See ../gpio/gpio.txt for more information. + - xxx-in-supply: Phandle to parent supply node of each regulator + populated under regulators node. xxx should match + the supply_name populated in driver.The driver is irrelevant. This should reference a list in this document.
okay. See if the below updated patch is fine.
-----------------------------8<----------------------------8<----------------------------
Quoted 1 line
From
666f925423fa35c7bfcc77fa3c883cbea5d8ef8eMon Sep 17 00:00:00 2001
From: Lokesh Vutla <[email protected]>
Date: Wed, 21 Sep 2016 11:50:49 +0530
Subject: [PATCH v3] regulator: lp873x: Add support for populating input supply
In order to have a proper topology of regulators for a platform, each registering regulator needs to populate supply_name field for identifying its supply's name. Add supply_name field for lp873x regulators.
--- Documentation/devicetree/bindings/mfd/lp873x.txt | 8 ++++++++ drivers/regulator/lp873x-regulator.c | 1 + 2 files changed, 9 insertions(+)
(quoted diff) +0 -0
b/Documentation/devicetree/bindings/mfd/lp873x.txt index 52766c2..ae9cf39 100644
Documentation/devicetree/bindings/mfd/lp873x.txt +8 -0
@@ -7,6 +7,9 @@ Required properties: - #gpio-cells: Should be two. The first cell is the pin number and the second cell is used to specify flags. See ../gpio/gpio.txt for more information. + - xxx-in-supply: Phandle to parent supply node of each regulator + populated under regulators node. xxx can be + buck0, buck1, ldo0 or ldo1. - regulators: List of child nodes that specify the regulator initialization data. Example:
@@ -17,6 +20,11 @@ pmic: lp8733 at 60 { gpio-controller; #gpio-cells = <2>; + buck0-in-supply = <&vsys_3v3>; + buck1-in-supply = <&vsys_3v3>; + ldo0-in-supply = <&vsys_3v3>; + ldo1-in-supply = <&vsys_3v3>; + regulators { lp8733_buck0: buck0 { regulator-name = "lp8733-buck0";
(quoted diff) +0 -0
b/drivers/regulator/lp873x-regulator.c
index e504b91..70e3df6 100644
drivers/regulator/lp873x-regulator.c +1 -0
@@ -24,6 +24,7 @@ [_id] = { \ .desc = { \ .name = _name, \ + .supply_name = _of "-in", \ .id = _id, \ .of_match = of_match_ptr(_of), \ .regulators_node = of_match_ptr("regulators"),\
Signature · 1 line
2.10.1
Rob Herring
maintainerPATCH v2 4/9 regulator: lp873x: Add support for populating input supply
Quoted 43 lines · Lokesh Vutla
Quoted 13 lines · Rob Herring
Quoted 12 lines · Lokesh Vutla
In order to have a proper topology of regulators for a platform, each registering regulator needs to populate
supply_namefield for identifying its supply's name. Addsupply_namefield for lp873x regulators.Cc Lee Jones <[email protected]>Cc Keerthy <[email protected]>Signed-off-by Lokesh Vutla <[email protected]>--- Documentation/devicetree/bindings/mfd/lp873x.txt | 8 ++++++++ drivers/regulator/lp873x-regulator.c | 1 + 2 files changed, 9 insertions(+)Quoted 13 lines
Documentation/devicetree/bindings/mfd/lp873x.txt Required properties: · line 12
Quoted 11 lines
Documentation/devicetree/bindings/mfd/lp873x.txt +3
-0@@ -7,6 +7,9 @@ Required properties: - #gpio-cells: Should be two. The first cell is the pin number and the second cell is used to specify flags. See ../gpio/gpio.txt for more information. + - xxx-in-supply: Phandle to parent supply node of each regulator + populated under regulators node. xxx should match + the supply_name populated in driver.The driver is irrelevant. This should reference a list in this document.
okay. See if the below updated patch is fine.
-----------------------------8<----------------------------8<---------------------------- From
666f925423fa35c7bfcc77fa3c883cbea5d8ef8eMon Sep 17 00:00:00 2001
From: Lokesh Vutla <[email protected]>
Date: Wed, 21 Sep 2016 11:50:49 +0530
Subject: [PATCH v3] regulator: lp873x: Add support for populating input supplyIn order to have a proper topology of regulators for a platform, each registering regulator needs to populate
supply_namefield for identifying its supply's name. Addsupply_namefield for lp873x regulators.
Quoted 5 lines
Signed-off-by Lokesh Vutla <[email protected]>--- Documentation/devicetree/bindings/mfd/lp873x.txt | 8 ++++++++ drivers/regulator/lp873x-regulator.c | 1 + 2 files changed, 9 insertions(+)
Tony Lindgren
maintainerPATCH v2 4/9 regulator: lp873x: Add support for populating input supply
Quoted 13 lines · Rob Herring
Quoted 12 lines · Lokesh Vutla
Quoted 11 lines · Rob Herring
Quoted 10 lines · Lokesh Vutla
In order to have a proper topology of regulators for a platform, each registering regulator needs to populate
supply_namefield for identifying its supply's name. Addsupply_namefield for lp873x regulators.Cc Lee Jones <[email protected]>Cc Keerthy <[email protected]>Signed-off-by Lokesh Vutla <[email protected]>--- Documentation/devicetree/bindings/mfd/lp873x.txt | 8 ++++++++ drivers/regulator/lp873x-regulator.c | 1 +
...
Quoted 1 line
Acked-by Rob Herring <[email protected]>
Please send this patch separately to the regulator maintainer.
Thanks,
Tony
PATCH v2 5/9 ARM: OMAP2+: board-generic: add support for DRA71x family
In reply to Lokesh VutlaDRA71x processor family is a derivative of DRA722 ES2.0 targetted for infotainment systems.
--- Documentation/devicetree/bindings/arm/omap/omap.txt | 6 ++++++ arch/arm/mach-omap2/board-generic.c | 1 + 2 files changed, 7 insertions(+)
Documentation/devicetree/bindings/arm/omap/omap.txt +6 -0
@@ -86,6 +86,9 @@ SoCs: - DRA722 compatible = "ti,dra722", "ti,dra72", "ti,dra7" +- DRA718 + compatible = "ti,dra718", "ti,dra722", "ti,dra72", "ti,dra7" + - AM5728 compatible = "ti,am5728", "ti,dra742", "ti,dra74", "ti,dra7"
@@ -181,6 +184,9 @@ Boards: - DRA722 EVM: Software Development Board for DRA722 compatible = "ti,dra72-evm", "ti,dra722", "ti,dra72", "ti,dra7" +- DRA718 EVM: Software Development Board for DRA718 + compatible = "ti,dra718-evm", "ti,dra718", "ti,dra722", "ti,dra72", "ti,dra7" + - DM3730 Logic PD Torpedo + Wireless: Commercial System on Module with WiFi and Bluetooth compatible = "logicpd,dm3730-torpedo-devkit", "ti,omap3630", "ti,omap3"
arch/arm/mach-omap2/board-generic.c +1 -0
@@ -341,6 +341,7 @@ static const char *const dra72x_boards_compat[] __initconst = {"ti,am5718" ,"ti,am5716" ,"ti,dra722" , +"ti,dra718" , NULL, };
Signature · 1 line
2.10.1
PATCH v2 6/9 ARM: DRA7: hwmod: Do not register RTC on DRA71
In reply to Lokesh VutlaFrom: Nishanth Menon <[email protected]>
RTC is not available on DRA71x, so accessing any of the RTC register or clkctrl register will lead to a crash. So, do not register RTC hwmod for DRA71x.
--- arch/arm/mach-omap2/omap_hwmod_7xx_data.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-)
arch/arm/mach-omap2/omap_hwmod_7xx_data.c +9 -1
@@ -3845,7 +3845,6 @@ static struct omap_hwmod_ocp_if *dra7xx_hwmod_ocp_ifs[] __initdata = { &dra7xx_l3_main_1__pciess2, &dra7xx_l4_cfg__pciess2, &dra7xx_l3_main_1__qspi, - &dra7xx_l4_per3__rtcss, &dra7xx_l4_cfg__sata, &dra7xx_l4_cfg__smartreflex_core, &dra7xx_l4_cfg__smartreflex_mpu,
@@ -3905,6 +3904,11 @@ static struct omap_hwmod_ocp_if *dra72x_hwmod_ocp_ifs[] __initdata = { NULL, }; +static struct omap_hwmod_ocp_if *dra74x_dra72x_hwmod_ocp_ifs[]__initdata = { + &dra7xx_l4_per3__rtcss, +NULL , +}; +int __init dra7xx_hwmod_init (void ) {int ret;
@@ -3920,5 +3924,9 @@ int __init dra7xx_hwmod_init(void)if (!ret &&omap_type () ==OMAP2_DEVICE_TYPE_GP ) ret =omap_hwmod_register_links (dra7xx_gp_hwmod_ocp_ifs); +/* now for the IPs *NOT* in dra71 */ +if (!ret && !of_machine_is_compatible ("ti,dra718" )) + ret =omap_hwmod_register_links (dra74x_dra72x_hwmod_ocp_ifs); +return ret; }
Signature · 1 line
2.10.1
PATCH v2 7/9 ARM: dts: Add support for dra718-evm
In reply to Lokesh VutlaFrom: Nishanth Menon <[email protected]>
The DRA718-evm is a board based on TI's DRA718 processor targeting BOM-optimized entry infotainment systems and is a reduced pin and software compatible derivative of the DRA72 ES2.0 processor. This platform features:
- 2GB of DDR3L
- Dual 1Gbps Ethernet
- HDMI,
- uSD
- 8GB eMMC
- CAN
- PCIe
- USB3.0
- Video Input Port
- LP873x PMIC
More information can be found here[1].
Adding support for this board while reusing the data available in dra72-evm-common.dtsi.
[1] http://www.ti.com/product/dra718
--- arch/arm/boot/dts/Makefile | 3 +- arch/arm/boot/dts/dra71-evm.dts | 230 ++++++++++++++++++++++++++++++++ arch/arm/boot/dts/dra72-evm-common.dtsi | 6 +- 3 files changed, 236 insertions(+), 3 deletions(-) create mode 100644 arch/arm/boot/dts/dra71-evm.dts
arch/arm/boot/dts/Makefile +2 -1
@@ -590,7 +590,8 @@ dtb-$(CONFIG_SOC_DRA7XX) += \ am572x-idk.dtb \ dra7-evm.dtb \ dra72-evm.dtb \ - dra72-evm-revc.dtb + dra72-evm-revc.dtb \ + dra71-evm.dtb dtb-$(CONFIG_ARCH_ORION5X) += \ orion5x-kuroboxpro.dtb \ orion5x-lacie-d2-network.dtb \
arch/arm/boot/dts/dra71-evm.dts new file +230 -0
230 lines not on this page · raw message
arch/arm/boot/dts/dra72-evm-common.dtsi +4 -2
@@ -29,7 +29,8 @@ }; evm_5v0: fixedregulator-evm5v0 { - /* Output 1 of TPS43351QDAPRQ1 */ + /* Output 1 of TPS43351QDAPRQ1 on dra72-evm */ + /* Output 1 of LM5140QRWGTQ1 on dra71-evm */ compatible = "regulator-fixed"; regulator-name = "evm_5v0"; regulator-min-microvolt = <5000000>;
@@ -40,7 +41,8 @@ }; vsys_3v3: fixedregulator-vsys3v3 { - /* Output 2 of TPS43351QDAPRQ1 */ + /* Output 2 of TPS43351QDAPRQ1 on dra72-evm */ + /* Output 2 of LM5140QRWGTQ1 on dra71-evm */ compatible = "regulator-fixed"; regulator-name = "vsys_3v3"; regulator-min-microvolt = <3300000>;
Signature · 1 line
2.10.1
PATCH v2 8/9 ARM: omap2plus_defconfig: Enable REGULATOR_GPIO
In reply to Lokesh VutlaGPIO regulator is used on dra71-evm platform to control MMCSD IO voltage
--- arch/arm/configs/omap2plus_defconfig | 1 + 1 file changed, 1 insertion(+)
arch/arm/configs/omap2plus_defconfig +1 -0
@@ -270,6 +270,7 @@ CONFIG_MFD_TPS65217=y CONFIG_MFD_TPS65218=y CONFIG_MFD_TPS65910=y CONFIG_TWL6040_CORE=y +CONFIG_REGULATOR_GPIO=y CONFIG_REGULATOR_LP872X=y CONFIG_REGULATOR_PALMAS=y CONFIG_REGULATOR_PBIAS=y
Signature · 1 line
2.10.1
PATCH v2 9/9 ARM: omap2plus_defconfig: Enable LP873X support
In reply to Lokesh VutlaLP873X family of PMICs are used in dra71x-evm, So enable the same.
--- arch/arm/configs/omap2plus_defconfig | 2 ++ 1 file changed, 2 insertions(+)
arch/arm/configs/omap2plus_defconfig +2 -0
@@ -267,11 +267,13 @@ CONFIG_TWL4030_WATCHDOG=m CONFIG_MFD_TI_AM335X_TSCADC=m CONFIG_MFD_PALMAS=y CONFIG_MFD_TPS65217=y +CONFIG_MFD_TI_LP873X=y CONFIG_MFD_TPS65218=y CONFIG_MFD_TPS65910=y CONFIG_TWL6040_CORE=y CONFIG_REGULATOR_GPIO=y CONFIG_REGULATOR_LP872X=y +CONFIG_REGULATOR_LP873X=y CONFIG_REGULATOR_PALMAS=y CONFIG_REGULATOR_PBIAS=y CONFIG_REGULATOR_TI_ABB=y
Signature · 1 line
2.10.1
v2 cover ARM: DRA7: Add support for DRA718-evm
In reply to Lokesh VutlaHi Tony,
Quoted 2 lines · Lokesh Vutla
This series does minor dts cleanup for dra72-evm and adds support for DRA718-evm.
Do you have any comments on this series?
Thanks and regards,
Lokesh
Quoted 33 lines
Changes since v1:
- Updated xxx-supply to xxx-in-supply in Documentation.Lokesh Vutla (7):
ARM: dts: dra72-evm: Remove pinmux configurations for erratum i869
ARM: dra72-evm: Fix modelling of regulators
ARM: dts: dra72: Add separate dtsi for tps65917
regulator: lp873x: Add support for populating input supply
ARM: OMAP2+: board-generic: add support for DRA71x family
ARM:omap2plus_defconfig: EnableREGULATOR_GPIO
ARM:omap2plus_defconfig: Enable LP873X supportNishanth Menon (2):
ARM: DRA7: hwmod: Do not register RTC on DRA71
ARM: dts: Add support for dra718-evm.../devicetree/bindings/arm/omap/omap.txt | 6 + Documentation/devicetree/bindings/mfd/lp873x.txt | 8 + arch/arm/boot/dts/Makefile | 3 +- arch/arm/boot/dts/dra71-evm.dts | 230 ++++++++++++++ arch/arm/boot/dts/dra72-evm-common.dtsi | 348 +++------------------ arch/arm/boot/dts/dra72-evm-revc.dts | 21 +- arch/arm/boot/dts/dra72-evm-tps65917.dtsi | 134 ++++++++ arch/arm/boot/dts/dra72-evm.dts | 14 +- arch/arm/configs/omap2plus_defconfig | 3 + arch/arm/mach-omap2/board-generic.c | 1 + arch/arm/mach-omap2/omap_hwmod_7xx_data.c | 10 +- drivers/regulator/lp873x-regulator.c | 1 + 12 files changed, 453 insertions(+), 326 deletions(-) create mode 100644 arch/arm/boot/dts/dra71-evm.dts create mode 100644 arch/arm/boot/dts/dra72-evm-tps65917.dtsi
Tony Lindgren
maintainerv2 cover ARM: DRA7: Add support for DRA718-evm
Quoted 7 lines · Lokesh Vutla
Hi Tony,
Quoted 2 lines · Lokesh Vutla
This series does minor dts cleanup for dra72-evm and adds support for DRA718-evm.
Do you have any comments on this series?
Looks good to me except for the regulator patch that you need to repost. Applying the rest split into various topic branches for soc/dt/defconfig.
Regards,
Tony