Message ID | 20180522132228.6564-1-jagan@amarulasolutions.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Tue, May 22, 2018 at 06:52:28PM +0530, Jagan Teki wrote: > Amarula A64-Relic is Allwinner A64 based IoT device, which support > - Allwinner A64 Cortex-A53 > - Mali-400MP2 GPU > - AXP803 PMIC > - 1GB DDR3 RAM > - 8GB eMMC > - AP6330 Wifi/BLE > - MIPI-DSI > - CSI: OV5640 sensor > - USB OTG You claim that this is doing OTG... [..] > +&usb_otg { > + dr_mode = "peripheral"; > + status = "okay"; > +}; ... and yet you're setting it as peripheral... > +&usbphy { > + usb0_id_det-gpios = <&pio 7 9 GPIO_ACTIVE_HIGH>; /* PH9 */ > + usb0_vbus-supply = <®_drivevbus>; While you have an ID pin and a controllable VBUS. Which one is it? Maxime
On Tue, May 22, 2018 at 8:00 PM, Maxime Ripard <maxime.ripard@bootlin.com> wrote: > On Tue, May 22, 2018 at 06:52:28PM +0530, Jagan Teki wrote: >> Amarula A64-Relic is Allwinner A64 based IoT device, which support >> - Allwinner A64 Cortex-A53 >> - Mali-400MP2 GPU >> - AXP803 PMIC >> - 1GB DDR3 RAM >> - 8GB eMMC >> - AP6330 Wifi/BLE >> - MIPI-DSI >> - CSI: OV5640 sensor >> - USB OTG > > You claim that this is doing OTG... > > [..] > >> +&usb_otg { >> + dr_mode = "peripheral"; >> + status = "okay"; >> +}; > > ... and yet you're setting it as peripheral... Though it claims OTG, board doesn't have any USB ports to operate(not even Mini-AB) the only way to use the board as peripheral to transfer images from host.
On Wed, May 23, 2018 at 11:44:56AM +0530, Jagan Teki wrote: > On Tue, May 22, 2018 at 8:00 PM, Maxime Ripard > <maxime.ripard@bootlin.com> wrote: > > On Tue, May 22, 2018 at 06:52:28PM +0530, Jagan Teki wrote: > >> Amarula A64-Relic is Allwinner A64 based IoT device, which support > >> - Allwinner A64 Cortex-A53 > >> - Mali-400MP2 GPU > >> - AXP803 PMIC > >> - 1GB DDR3 RAM > >> - 8GB eMMC > >> - AP6330 Wifi/BLE > >> - MIPI-DSI > >> - CSI: OV5640 sensor > >> - USB OTG > > > > You claim that this is doing OTG... > > > > [..] > > > >> +&usb_otg { > >> + dr_mode = "peripheral"; > >> + status = "okay"; > >> +}; > > > > ... and yet you're setting it as peripheral... > > Though it claims OTG, board doesn't have any USB ports to operate(not > even Mini-AB) the only way to use the board as peripheral to transfer > images from host. I'm not sure what you mean here. If there's no USB connector, why do you even enable it? maxime
On Wed, May 23, 2018 at 1:48 PM, Maxime Ripard <maxime.ripard@bootlin.com> wrote: > On Wed, May 23, 2018 at 11:44:56AM +0530, Jagan Teki wrote: >> On Tue, May 22, 2018 at 8:00 PM, Maxime Ripard >> <maxime.ripard@bootlin.com> wrote: >> > On Tue, May 22, 2018 at 06:52:28PM +0530, Jagan Teki wrote: >> >> Amarula A64-Relic is Allwinner A64 based IoT device, which support >> >> - Allwinner A64 Cortex-A53 >> >> - Mali-400MP2 GPU >> >> - AXP803 PMIC >> >> - 1GB DDR3 RAM >> >> - 8GB eMMC >> >> - AP6330 Wifi/BLE >> >> - MIPI-DSI >> >> - CSI: OV5640 sensor >> >> - USB OTG >> > >> > You claim that this is doing OTG... >> > >> > [..] >> > >> >> +&usb_otg { >> >> + dr_mode = "peripheral"; >> >> + status = "okay"; >> >> +}; >> > >> > ... and yet you're setting it as peripheral... >> >> Though it claims OTG, board doesn't have any USB ports to operate(not >> even Mini-AB) the only way to use the board as peripheral to transfer >> images from host. > > I'm not sure what you mean here. If there's no USB connector, why do > you even enable it? I'm saying there is no host port on board. Board has connector header[1] comes with few pins includes USB D+, D-, ID, VBUS, GROUND, UART0 TX, RX etc. we have to connect wires to these pins to make pluggable USB to host pc. and here USB pins used for transferring data from host pc to target board like in peripheral mode. Hope you understand. [1] https://www.digikey.com/product-detail/en/molex-llc/5016451420/WM6074-ND/1787775 Jagan.
On Wed, May 23, 2018 at 03:57:05PM +0530, Jagan Teki wrote: > On Wed, May 23, 2018 at 1:48 PM, Maxime Ripard > <maxime.ripard@bootlin.com> wrote: > > On Wed, May 23, 2018 at 11:44:56AM +0530, Jagan Teki wrote: > >> On Tue, May 22, 2018 at 8:00 PM, Maxime Ripard > >> <maxime.ripard@bootlin.com> wrote: > >> > On Tue, May 22, 2018 at 06:52:28PM +0530, Jagan Teki wrote: > >> >> Amarula A64-Relic is Allwinner A64 based IoT device, which support > >> >> - Allwinner A64 Cortex-A53 > >> >> - Mali-400MP2 GPU > >> >> - AXP803 PMIC > >> >> - 1GB DDR3 RAM > >> >> - 8GB eMMC > >> >> - AP6330 Wifi/BLE > >> >> - MIPI-DSI > >> >> - CSI: OV5640 sensor > >> >> - USB OTG > >> > > >> > You claim that this is doing OTG... > >> > > >> > [..] > >> > > >> >> +&usb_otg { > >> >> + dr_mode = "peripheral"; > >> >> + status = "okay"; > >> >> +}; > >> > > >> > ... and yet you're setting it as peripheral... > >> > >> Though it claims OTG, board doesn't have any USB ports to operate(not > >> even Mini-AB) the only way to use the board as peripheral to transfer > >> images from host. > > > > I'm not sure what you mean here. If there's no USB connector, why do > > you even enable it? > > I'm saying there is no host port on board. Board has connector > header[1] comes with few pins includes USB D+, D-, ID, VBUS, GROUND, > UART0 TX, RX etc. we have to connect wires to these pins to make > pluggable USB to host pc. and here USB pins used for transferring data > from host pc to target board like in peripheral mode. I'm still unsure how it's relevant. If the wire is plugged on your board's header, is there anything that prevents using it as a host assuming you have a proper connector on the other end of your wire? Maxime
diff --git a/arch/arm64/boot/dts/allwinner/Makefile b/arch/arm64/boot/dts/allwinner/Makefile index c31f90a49481..67ce8c500b2e 100644 --- a/arch/arm64/boot/dts/allwinner/Makefile +++ b/arch/arm64/boot/dts/allwinner/Makefile @@ -1,4 +1,5 @@ # SPDX-License-Identifier: GPL-2.0 +dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-amarula-relic.dtb dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-bananapi-m64.dtb dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-nanopi-a64.dtb dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-olinuxino.dtb diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-amarula-relic.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-amarula-relic.dts new file mode 100644 index 000000000000..6101ea83291c --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-amarula-relic.dts @@ -0,0 +1,188 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Copyright (C) 2018 Amarula Solutions B.V. + * Author: Jagan Teki <jagan@amarulasolutions.com> + */ + +/dts-v1/; + +#include "sun50i-a64.dtsi" + +#include <dt-bindings/gpio/gpio.h> + +/ { + model = "Amarula A64-Relic"; + compatible = "amarula,a64-relic", "allwinner,sun50i-a64"; + + aliases { + serial0 = &uart0; + }; + + chosen { + stdout-path = "serial0:115200n8"; + }; +}; + +&ehci0 { + status = "okay"; +}; + +&mmc2 { + pinctrl-names = "default"; + pinctrl-0 = <&mmc2_pins>; + vmmc-supply = <®_dcdc1>; + bus-width = <8>; + non-removable; + cap-mmc-hw-reset; + status = "okay"; +}; + +&ohci0 { + status = "okay"; +}; + +&r_rsb { + status = "okay"; + + axp803: pmic@3a3 { + compatible = "x-powers,axp803"; + reg = <0x3a3>; + interrupt-parent = <&r_intc>; + interrupts = <0 IRQ_TYPE_LEVEL_LOW>; + x-powers,drive-vbus-en; /* set N_VBUSEN as output pin */ + }; +}; + +#include "axp803.dtsi" + +®_aldo1 { + regulator-always-on; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + regulator-name = "avdd-csi"; +}; + +®_aldo2 { + regulator-always-on; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3300000>; + regulator-name = "vcc-pl"; +}; + +®_aldo3 { + regulator-always-on; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + regulator-name = "vcc-pll-avcc"; +}; + +®_dcdc1 { + regulator-always-on; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-name = "vcc-3v3"; +}; + +®_dcdc2 { + regulator-always-on; + regulator-min-microvolt = <1040000>; + regulator-max-microvolt = <1300000>; + regulator-name = "vdd-cpux"; +}; + +/* DCDC3 is polyphased with DCDC2 */ + +®_dcdc5 { + regulator-always-on; + regulator-min-microvolt = <1500000>; + regulator-max-microvolt = <1500000>; + regulator-name = "vcc-dram"; +}; + +®_dcdc6 { + regulator-always-on; + regulator-min-microvolt = <1100000>; + regulator-max-microvolt = <1100000>; + regulator-name = "vdd-sys"; +}; + +®_dldo1 { + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-name = "vcc-hdmi-dsi-sensor"; +}; + +®_dldo2 { + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-name = "vcc-mipi"; +}; + +®_dldo3 { + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + regulator-name = "dovdd-csi"; +}; + +®_dldo4 { + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-name = "vcc-wifi-io"; +}; + +®_drivevbus { + regulator-name = "usb0-vbus"; + status = "okay"; +}; + +®_eldo1 { + regulator-always-on; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-name = "cpvdd"; +}; + +®_eldo3 { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-name = "dvdd-csi"; +}; + +®_fldo1 { + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + regulator-name = "vcc-1v2-hsic"; +}; + +/* + * The A64 chip cannot work without this regulator off, although + * it seems to be only driving the AR100 core. + * Maybe we don't still know well about CPUs domain. + */ +®_fldo2 { + regulator-always-on; + regulator-min-microvolt = <1100000>; + regulator-max-microvolt = <1100000>; + regulator-name = "vdd-cpus"; +}; + +®_rtc_ldo { + regulator-name = "vcc-rtc"; +}; + +&uart0 { + pinctrl-names = "default"; + pinctrl-0 = <&uart0_pins_a>; + status = "okay"; +}; + +&usb_otg { + dr_mode = "peripheral"; + status = "okay"; +}; + +&usbphy { + usb0_id_det-gpios = <&pio 7 9 GPIO_ACTIVE_HIGH>; /* PH9 */ + usb0_vbus-supply = <®_drivevbus>; + status = "okay"; +};
Amarula A64-Relic is Allwinner A64 based IoT device, which support - Allwinner A64 Cortex-A53 - Mali-400MP2 GPU - AXP803 PMIC - 1GB DDR3 RAM - 8GB eMMC - AP6330 Wifi/BLE - MIPI-DSI - CSI: OV5640 sensor - USB OTG - 12V DC power supply Signed-off-by: Jagan Teki <jagan@amarulasolutions.com> --- Changes for v3: - Use sun50i-a64-amarula-relic.dts name - add eldo3 for dvdd-csi - update dldo4 min voltage as 3.3v as per schematics - use dldo3 name as dovdd-csi - update aldo1, aldo2 voltages as per schematics Changes for v2: - Rename dts name to sun50i-a64-relic.dts which is simple to use - Update dldo4 min voltage as 1.8 - Use licence year as 2018 arch/arm64/boot/dts/allwinner/Makefile | 1 + .../dts/allwinner/sun50i-a64-amarula-relic.dts | 188 +++++++++++++++++++++ 2 files changed, 189 insertions(+) create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-a64-amarula-relic.dts