Message ID | 1469450243-19138-1-git-send-email-stefan.mavrodiev@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Hi Stefan, On Mon, Jul 25, 2016 at 03:37:23PM +0300, Stefan Mavrodiev wrote: > A33-OLinuXino is A33 development board designed by Olimex LTD. > > It has AXP233 PMU, 1GB DRAM, a micro SD card, one USB-OTG connector, > headphone and mic jacks, connector for LiPo battery and optional > 4GB NAND Flash. > > It has two 40-pin headers. One for LCD panel, and one for > additional modules. Also there is CSI/DSI connector. > > Signed-off-by: Stefan Mavrodiev <stefan.mavrodiev@gmail.com> It looks mostly good, a few comments though. > +&pio { > + led_pin_olinuxino: led_pins@0 { > + allwinner,pins = "PB7"; > + allwinner,function = "gpio_out"; This line is not properly indented. > + allwinner,drive = <SUN4I_PINCTRL_10_MA>; > + allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; > + }; And this one too. > +®_dc1sw { > + regulator-name = "vcc-lcd"; > +}; No constraints on this one? > +®_dcdc1 { > + regulator-always-on; > + regulator-min-microvolt = <3300000>; > + regulator-max-microvolt = <3300000>; > + regulator-name = "vcc-dsi"; > +}; What is it used for? Is it really necessary to keep it on at all time? Thanks, Maxime
26.07.2016, 23:38, "Maxime Ripard" <maxime.ripard@free-electrons.com>: > Hi Stefan, > > On Mon, Jul 25, 2016 at 03:37:23PM +0300, Stefan Mavrodiev wrote: >> A33-OLinuXino is A33 development board designed by Olimex LTD. >> >> It has AXP233 PMU, 1GB DRAM, a micro SD card, one USB-OTG connector, >> headphone and mic jacks, connector for LiPo battery and optional >> 4GB NAND Flash. >> >> It has two 40-pin headers. One for LCD panel, and one for >> additional modules. Also there is CSI/DSI connector. >> >> Signed-off-by: Stefan Mavrodiev <stefan.mavrodiev@gmail.com> > > It looks mostly good, a few comments though. >> +&pio { >> + led_pin_olinuxino: led_pins@0 { >> + allwinner,pins = "PB7"; >> + allwinner,function = "gpio_out"; > > This line is not properly indented. > >> + allwinner,drive = <SUN4I_PINCTRL_10_MA>; >> + allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; >> + }; > > And this one too. > >> +®_dc1sw { >> + regulator-name = "vcc-lcd"; >> +}; > > No constraints on this one? The "regulator" dc1sw is, in fact, a switch (so it's named as "sw"). So it have only on-off status. The constraints in dc1sw has prevented one of my A31s tablet from booting when it's not removed. > >> +®_dcdc1 { >> + regulator-always-on; >> + regulator-min-microvolt = <3300000>; >> + regulator-max-microvolt = <3300000>; >> + regulator-name = "vcc-dsi"; >> +}; > > What is it used for? Is it really necessary to keep it on at all time? > > Thanks, > Maxime > > -- > Maxime Ripard, Free Electrons > Embedded Linux and Kernel engineering > http://free-electrons.com > , > > _______________________________________________ > linux-arm-kernel mailing list > linux-arm-kernel@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
On Tuesday, July 26, 2016 5:33:52 PM EEST Maxime Ripard wrote: > Hi Stefan, > > On Mon, Jul 25, 2016 at 03:37:23PM +0300, Stefan Mavrodiev wrote: > > A33-OLinuXino is A33 development board designed by Olimex LTD. > > > > It has AXP233 PMU, 1GB DRAM, a micro SD card, one USB-OTG connector, > > headphone and mic jacks, connector for LiPo battery and optional > > 4GB NAND Flash. > > > > It has two 40-pin headers. One for LCD panel, and one for > > additional modules. Also there is CSI/DSI connector. > > > > Signed-off-by: Stefan Mavrodiev <stefan.mavrodiev@gmail.com> > > It looks mostly good, a few comments though. > > > +&pio { > > + led_pin_olinuxino: led_pins@0 { > > + allwinner,pins = "PB7"; > > + allwinner,function = "gpio_out"; > > This line is not properly indented. > > > + allwinner,drive = <SUN4I_PINCTRL_10_MA>; > > + allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; > > + }; > > And this one too. > > > +®_dc1sw { > > + regulator-name = "vcc-lcd"; > > +}; > > No constraints on this one? > > > +®_dcdc1 { > > + regulator-always-on; > > + regulator-min-microvolt = <3300000>; > > + regulator-max-microvolt = <3300000>; > > + regulator-name = "vcc-dsi"; > > +}; > > What is it used for? Is it really necessary to keep it on at all time? I think so. This is the supply for the MMC. > > Thanks, > Maxime Best regards, Stefan Mavrodiev
On Wed, Jul 27, 2016 at 08:12:29AM +0300, stefan.mavrodiev@gmail.com wrote: > > > +®_dcdc1 { > > > + regulator-always-on; > > > + regulator-min-microvolt = <3300000>; > > > + regulator-max-microvolt = <3300000>; > > > + regulator-name = "vcc-dsi"; > > > +}; > > > > What is it used for? Is it really necessary to keep it on at all time? > > I think so. > This is the supply for the MMC. Then it's poorly named, and you should tie it to the MMC, and remove the always-on if it's only used by the mmc. always-on is supposed to be for regulators that shouldn't but turned off for the system to stay running. Some MMC regulator doesn't fit that description. Maxime
On Wednesday, July 27, 2016 8:21:46 AM EEST Maxime Ripard wrote: > On Wed, Jul 27, 2016 at 08:12:29AM +0300, stefan.mavrodiev@gmail.com wrote: > > > > +®_dcdc1 { > > > > + regulator-always-on; > > > > + regulator-min-microvolt = <3300000>; > > > > + regulator-max-microvolt = <3300000>; > > > > + regulator-name = "vcc-dsi"; > > > > +}; > > > > > > What is it used for? Is it really necessary to keep it on at all time? > > > > I think so. > > This is the supply for the MMC. > > Then it's poorly named, and you should tie it to the MMC, and remove > the always-on if it's only used by the mmc. always-on is supposed to > be for regulators that shouldn't but turned off for the system to stay > running. Some MMC regulator doesn't fit that description. > It's named upon the A33 power pin - "VCC-DSI". If I remove "always-on" the board still will work, since dcdc1 is tied to mmc0. vmmc-supply = <®_dcdc1>; We assume this voltage will be always present and there are some pullups that are tied to it (on i2c0 and i2c1 bus). In this case should I remove "always- on" from the regulator node? > Maxime Best regards, Stefan Mavrodiev
On Wed, Jul 27, 2016 at 01:02:41PM +0300, stefan.mavrodiev@gmail.com wrote: > On Wednesday, July 27, 2016 8:21:46 AM EEST Maxime Ripard wrote: > > On Wed, Jul 27, 2016 at 08:12:29AM +0300, stefan.mavrodiev@gmail.com wrote: > > > > > +®_dcdc1 { > > > > > + regulator-always-on; > > > > > + regulator-min-microvolt = <3300000>; > > > > > + regulator-max-microvolt = <3300000>; > > > > > + regulator-name = "vcc-dsi"; > > > > > +}; > > > > > > > > What is it used for? Is it really necessary to keep it on at all time? > > > > > > I think so. > > > This is the supply for the MMC. > > > > Then it's poorly named, and you should tie it to the MMC, and remove > > the always-on if it's only used by the mmc. always-on is supposed to > > be for regulators that shouldn't but turned off for the system to stay > > running. Some MMC regulator doesn't fit that description. > > It's named upon the A33 power pin - "VCC-DSI". Usually, it's based on the name of the output in the schematics, precisely because, from one board to another, it might have different usage. > If I remove "always-on" the board still will work, since dcdc1 is tied to > mmc0. > vmmc-supply = <®_dcdc1>; > > We assume this voltage will be always present and there are some pullups that > are tied to it (on i2c0 and i2c1 bus). In this case should I remove "always- > on" from the regulator node? No, you should just tie that regulator to the i2c buses as well. Maxime
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile index 016611d..e02a97e 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile @@ -759,6 +759,7 @@ dtb-$(CONFIG_MACH_SUN8I) += \ sun8i-a33-et-q8-v1.6.dtb \ sun8i-a33-ga10h-v1.1.dtb \ sun8i-a33-ippo-q8h-v1.2.dtb \ + sun8i-a33-olinuxino.dtb \ sun8i-a33-q8-tablet.dtb \ sun8i-a33-sinlinx-sina33.dtb \ sun8i-a83t-allwinner-h8homlet-v2.dtb \ diff --git a/arch/arm/boot/dts/sun8i-a33-olinuxino.dts b/arch/arm/boot/dts/sun8i-a33-olinuxino.dts new file mode 100644 index 0000000..3882aa1 --- /dev/null +++ b/arch/arm/boot/dts/sun8i-a33-olinuxino.dts @@ -0,0 +1,226 @@ +/* + * Copyright 2016 - Stefan Mavrodiev <stefan.mavrodiev@gmail.com> + * Olimex LTD. <support@olimex.com> + * + * This file is dual-licensed: you can use it either under the terms + * of the GPL or the X11 license, at your option. Note that this dual + * licensing only applies to this file, and not this project as a + * whole. + * + * a) This file is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This file is distributed in the hope that 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. + * + * Or, alternatively, + * + * b) Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +/dts-v1/; +#include "sun8i-a33.dtsi" +#include "sunxi-common-regulators.dtsi" + +#include <dt-bindings/gpio/gpio.h> +#include <dt-bindings/input/input.h> + +/ { + model = "Olimex A33-OLinuXino"; + compatible = "olimex,a33-olinuxino","allwinner,sun8i-a33"; + + aliases { + serial0 = &uart0; + }; + + chosen { + stdout-path = "serial0:115200n8"; + }; + + leds { + compatible = "gpio-leds"; + pinctrl-names = "default"; + pinctrl-0 = <&led_pin_olinuxino>; + + green { + label = "a33-olinuxino:green:usr"; + gpios = <&pio 1 7 GPIO_ACTIVE_HIGH>; + }; + }; +}; + +&ehci0 { + status = "okay"; +}; + +&mmc0 { + pinctrl-names = "default"; + pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_olinuxino>; + vmmc-supply = <®_dcdc1>; + bus-width = <4>; + cd-gpios = <&pio 1 4 GPIO_ACTIVE_HIGH>; /* PB4 */ + cd-inverted; + status = "okay"; +}; + +&ohci0 { + status = "okay"; +}; + +&pio { + led_pin_olinuxino: led_pins@0 { + allwinner,pins = "PB7"; + allwinner,function = "gpio_out"; + allwinner,drive = <SUN4I_PINCTRL_10_MA>; + allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; + }; + + mmc0_cd_pin_olinuxino: mmc0_cd_pin@0 { + allwinner,pins = "PB4"; + allwinner,function = "gpio_in"; + allwinner,drive = <SUN4I_PINCTRL_10_MA>; + allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; + }; + + usb0_id_detect_pin: usb0_id_detect_pin@0 { + allwinner,pins = "PB3"; + allwinner,function = "gpio_in"; + allwinner,drive = <SUN4I_PINCTRL_10_MA>; + allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; + }; +}; + +&r_rsb { + status = "okay"; + + axp22x: pmic@3a3 { + compatible = "x-powers,axp223"; + reg = <0x3a3>; + interrupt-parent = <&nmi_intc>; + interrupts = <0 IRQ_TYPE_LEVEL_LOW>; + eldoin-supply = <®_dcdc1>; + x-powers,drive-vbus-en; + }; +}; + +#include "axp22x.dtsi" + +®_aldo1 { + regulator-always-on; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-name = "vcc-io"; +}; + +®_aldo2 { + regulator-always-on; + regulator-min-microvolt = <2350000>; + regulator-max-microvolt = <2650000>; + regulator-name = "vdd-dll"; +}; + +®_aldo3 { + regulator-always-on; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-name = "vcc-avcc"; +}; + +®_dc1sw { + regulator-name = "vcc-lcd"; +}; + +®_dc5ldo { + regulator-always-on; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <1400000>; + regulator-name = "vdd-cpus"; +}; + +®_dcdc1 { + regulator-always-on; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-name = "vcc-dsi"; +}; + +®_dcdc2 { + regulator-always-on; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <1400000>; + regulator-name = "vdd-sys"; +}; + +®_dcdc3 { + regulator-always-on; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <1400000>; + regulator-name = "vdd-cpu"; +}; + +®_dcdc5 { + regulator-always-on; + regulator-min-microvolt = <1500000>; + regulator-max-microvolt = <1500000>; + regulator-name = "vcc-dram"; +}; + +®_drivevbus { + regulator-name = "usb0-vbus"; + status = "okay"; +}; + +®_rtc_ldo { + regulator-name = "vcc-rtc"; +}; + +&simplefb_lcd { + vcc-lcd-supply = <®_dc1sw>; +}; + +&uart0 { + pinctrl-names = "default"; + pinctrl-0 = <&uart0_pins_b>; + status = "okay"; +}; + +&usb_otg { + dr_mode = "otg"; + status = "okay"; +}; + +&usb_power_supply { + status = "okay"; +}; + +&usbphy { + pinctrl-names = "default"; + pinctrl-0 = <&usb0_id_detect_pin>; + usb0_id_det-gpios = <&pio 1 3 GPIO_ACTIVE_HIGH>; /* PB3 */ + usb0_vbus_power-supply = <&usb_power_supply>; + usb0_vbus-supply = <®_drivevbus>; + status = "okay"; +};
A33-OLinuXino is A33 development board designed by Olimex LTD. It has AXP233 PMU, 1GB DRAM, a micro SD card, one USB-OTG connector, headphone and mic jacks, connector for LiPo battery and optional 4GB NAND Flash. It has two 40-pin headers. One for LCD panel, and one for additional modules. Also there is CSI/DSI connector. Signed-off-by: Stefan Mavrodiev <stefan.mavrodiev@gmail.com> --- Changes for v2: - Removed unused power nodes - Removed default-trigger for green led - Removed "always-on" option for LCD power Changes for v3: - Nodes are sorted alphabetically Changes for v4: - Green led renamed - Added OTG support arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/sun8i-a33-olinuxino.dts | 226 ++++++++++++++++++++++++++++++ 2 files changed, 227 insertions(+) create mode 100644 arch/arm/boot/dts/sun8i-a33-olinuxino.dts