Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 15 Oct 2019 13:26:46 -0400
From:      Gary Otten <gdotten@gmail.com>
To:        Emmanuel Vadot <manu@bidouilliste.com>
Cc:        freebsd-arm@freebsd.org
Subject:   Re: GPIO on Olimex A64 board. Bank E not working.
Message-ID:  <CABZQu%2BhLKqnHbDKngbFd1NFZZvSC2kKyY_iU-3DDUdhuVV%2BoJA@mail.gmail.com>
In-Reply-To: <20191015175901.1d0173f27798f15c25c037de@bidouilliste.com>
References:  <CABZQu%2Bg%2BtixWWM=nZevrLG4nvdaoTySTHJpfknMff51iWw9Gig@mail.gmail.com> <20191015131842.370e113b9f494ead760b9b6f@bidouilliste.com> <CABZQu%2BgNj10BPm7XDeHakKvHJ7vWTMUBo=xUudEwoSGMqc2Xzw@mail.gmail.com> <20191015175901.1d0173f27798f15c25c037de@bidouilliste.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Ok, I placed  hw.regulator.disable_unused=0 in /boot/loader.conf.  Here is
the results, also still no output on the E bank.

root@:/dev # sysctl hw.regulator
hw.regulator.dc1sw.uvolt: 0
hw.regulator.dc1sw.always_on: 0
hw.regulator.dc1sw.boot_on: 0
hw.regulator.dc1sw.enable_cnt: 0
hw.regulator.dc1sw.enable_delay: 0
hw.regulator.dc1sw.ramp_delay: 0
hw.regulator.dc1sw.max_uamp: 0
hw.regulator.dc1sw.min_uamp: 0
hw.regulator.dc1sw.max_uvolt: 0
hw.regulator.dc1sw.min_uvolt: 0
hw.regulator.ldo-io1.always_on: 0
hw.regulator.ldo-io1.boot_on: 0
hw.regulator.ldo-io1.enable_cnt: 0
hw.regulator.ldo-io1.enable_delay: 0
hw.regulator.ldo-io1.ramp_delay: 0
hw.regulator.ldo-io1.max_uamp: 0
hw.regulator.ldo-io1.min_uamp: 0
hw.regulator.ldo-io1.max_uvolt: 3300000
hw.regulator.ldo-io1.min_uvolt: 700000
hw.regulator.ldo-io0.always_on: 0
hw.regulator.ldo-io0.boot_on: 0
hw.regulator.ldo-io0.enable_cnt: 0
hw.regulator.ldo-io0.enable_delay: 0
hw.regulator.ldo-io0.ramp_delay: 0
hw.regulator.ldo-io0.max_uamp: 0
hw.regulator.ldo-io0.min_uamp: 0
hw.regulator.ldo-io0.max_uvolt: 3300000
hw.regulator.ldo-io0.min_uvolt: 700000
hw.regulator.vdd-cpus.uvolt: 1100000
hw.regulator.vdd-cpus.always_on: 1
hw.regulator.vdd-cpus.boot_on: 0
hw.regulator.vdd-cpus.enable_cnt: 0
hw.regulator.vdd-cpus.enable_delay: 0
hw.regulator.vdd-cpus.ramp_delay: 0
hw.regulator.vdd-cpus.max_uamp: 0
hw.regulator.vdd-cpus.min_uamp: 0
hw.regulator.vdd-cpus.max_uvolt: 1100000
hw.regulator.vdd-cpus.min_uvolt: 1100000
hw.regulator.vcc-1v2-hsic.uvolt: 1200000
hw.regulator.vcc-1v2-hsic.always_on: 0
hw.regulator.vcc-1v2-hsic.boot_on: 0
hw.regulator.vcc-1v2-hsic.enable_cnt: 0
hw.regulator.vcc-1v2-hsic.enable_delay: 0
hw.regulator.vcc-1v2-hsic.ramp_delay: 0
hw.regulator.vcc-1v2-hsic.max_uamp: 0
hw.regulator.vcc-1v2-hsic.min_uamp: 0
hw.regulator.vcc-1v2-hsic.max_uvolt: 1200000
hw.regulator.vcc-1v2-hsic.min_uvolt: 1200000
hw.regulator.eldo3.always_on: 0
hw.regulator.eldo3.boot_on: 0
hw.regulator.eldo3.enable_cnt: 0
hw.regulator.eldo3.enable_delay: 0
hw.regulator.eldo3.ramp_delay: 0
hw.regulator.eldo3.max_uamp: 0
hw.regulator.eldo3.min_uamp: 0
hw.regulator.eldo3.max_uvolt: 1900000
hw.regulator.eldo3.min_uvolt: 700000
hw.regulator.vcc-dvdd-csi.uvolt: 1800000
hw.regulator.vcc-dvdd-csi.always_on: 0
hw.regulator.vcc-dvdd-csi.boot_on: 0
hw.regulator.vcc-dvdd-csi.enable_cnt: 0
hw.regulator.vcc-dvdd-csi.enable_delay: 0
hw.regulator.vcc-dvdd-csi.ramp_delay: 0
hw.regulator.vcc-dvdd-csi.max_uamp: 0
hw.regulator.vcc-dvdd-csi.min_uamp: 0
hw.regulator.vcc-dvdd-csi.max_uvolt: 1800000
hw.regulator.vcc-dvdd-csi.min_uvolt: 1800000
hw.regulator.cpvdd.uvolt: 1800000
hw.regulator.cpvdd.always_on: 0
hw.regulator.cpvdd.boot_on: 0
hw.regulator.cpvdd.enable_cnt: 0
hw.regulator.cpvdd.enable_delay: 0
hw.regulator.cpvdd.ramp_delay: 0
hw.regulator.cpvdd.max_uamp: 0
hw.regulator.cpvdd.min_uamp: 0
hw.regulator.cpvdd.max_uvolt: 1800000
hw.regulator.cpvdd.min_uvolt: 1800000
hw.regulator.vcc-pll-avcc.uvolt: 3000000
hw.regulator.vcc-pll-avcc.always_on: 1
hw.regulator.vcc-pll-avcc.boot_on: 0
hw.regulator.vcc-pll-avcc.enable_cnt: 0
hw.regulator.vcc-pll-avcc.enable_delay: 0
hw.regulator.vcc-pll-avcc.ramp_delay: 0
hw.regulator.vcc-pll-avcc.max_uamp: 0
hw.regulator.vcc-pll-avcc.min_uamp: 0
hw.regulator.vcc-pll-avcc.max_uvolt: 3000000
hw.regulator.vcc-pll-avcc.min_uvolt: 3000000
hw.regulator.vcc-pl.uvolt: 3300000
hw.regulator.vcc-pl.always_on: 1
hw.regulator.vcc-pl.boot_on: 0
hw.regulator.vcc-pl.enable_cnt: 0
hw.regulator.vcc-pl.enable_delay: 0
hw.regulator.vcc-pl.ramp_delay: 0
hw.regulator.vcc-pl.max_uamp: 0
hw.regulator.vcc-pl.min_uamp: 0
hw.regulator.vcc-pl.max_uvolt: 3300000
hw.regulator.vcc-pl.min_uvolt: 3300000
hw.regulator.vcc-pe.uvolt: 2800000
hw.regulator.vcc-pe.always_on: 1
hw.regulator.vcc-pe.boot_on: 0
hw.regulator.vcc-pe.enable_cnt: 0
hw.regulator.vcc-pe.enable_delay: 0
hw.regulator.vcc-pe.ramp_delay: 0
hw.regulator.vcc-pe.max_uamp: 0
hw.regulator.vcc-pe.min_uamp: 0
hw.regulator.vcc-pe.max_uvolt: 2800000
hw.regulator.vcc-pe.min_uvolt: 2800000
hw.regulator.vcc-wifi-io.uvolt: 3300000
hw.regulator.vcc-wifi-io.always_on: 0
hw.regulator.vcc-wifi-io.boot_on: 0
hw.regulator.vcc-wifi-io.enable_cnt: 0
hw.regulator.vcc-wifi-io.enable_delay: 0
hw.regulator.vcc-wifi-io.ramp_delay: 0
hw.regulator.vcc-wifi-io.max_uamp: 0
hw.regulator.vcc-wifi-io.min_uamp: 0
hw.regulator.vcc-wifi-io.max_uvolt: 3300000
hw.regulator.vcc-wifi-io.min_uvolt: 3300000
hw.regulator.vcc-avdd-csi.uvolt: 2800000
hw.regulator.vcc-avdd-csi.always_on: 0
hw.regulator.vcc-avdd-csi.boot_on: 0
hw.regulator.vcc-avdd-csi.enable_cnt: 0
hw.regulator.vcc-avdd-csi.enable_delay: 0
hw.regulator.vcc-avdd-csi.ramp_delay: 0
hw.regulator.vcc-avdd-csi.max_uamp: 0
hw.regulator.vcc-avdd-csi.min_uamp: 0
hw.regulator.vcc-avdd-csi.max_uvolt: 2800000
hw.regulator.vcc-avdd-csi.min_uvolt: 2800000
hw.regulator.vcc-mipi.uvolt: 3300000
hw.regulator.vcc-mipi.always_on: 0
hw.regulator.vcc-mipi.boot_on: 0
hw.regulator.vcc-mipi.enable_cnt: 0
hw.regulator.vcc-mipi.enable_delay: 0
hw.regulator.vcc-mipi.ramp_delay: 0
hw.regulator.vcc-mipi.max_uamp: 0
hw.regulator.vcc-mipi.min_uamp: 0
hw.regulator.vcc-mipi.max_uvolt: 3300000
hw.regulator.vcc-mipi.min_uvolt: 3300000
hw.regulator.vcc-hdmi.uvolt: 3300000
hw.regulator.vcc-hdmi.always_on: 0
hw.regulator.vcc-hdmi.boot_on: 0
hw.regulator.vcc-hdmi.enable_cnt: 0
hw.regulator.vcc-hdmi.enable_delay: 0
hw.regulator.vcc-hdmi.ramp_delay: 0
hw.regulator.vcc-hdmi.max_uamp: 0
hw.regulator.vcc-hdmi.min_uamp: 0
hw.regulator.vcc-hdmi.max_uvolt: 3300000
hw.regulator.vcc-hdmi.min_uvolt: 3300000
hw.regulator.vdd-sys.uvolt: 1100000
hw.regulator.vdd-sys.always_on: 1
hw.regulator.vdd-sys.boot_on: 0
hw.regulator.vdd-sys.enable_cnt: 0
hw.regulator.vdd-sys.enable_delay: 0
hw.regulator.vdd-sys.ramp_delay: 0
hw.regulator.vdd-sys.max_uamp: 0
hw.regulator.vdd-sys.min_uamp: 0
hw.regulator.vdd-sys.max_uvolt: 1100000
hw.regulator.vdd-sys.min_uvolt: 1100000
hw.regulator.vcc-ddr3.uvolt: 1360000
hw.regulator.vcc-ddr3.always_on: 1
hw.regulator.vcc-ddr3.boot_on: 0
hw.regulator.vcc-ddr3.enable_cnt: 0
hw.regulator.vcc-ddr3.enable_delay: 0
hw.regulator.vcc-ddr3.ramp_delay: 0
hw.regulator.vcc-ddr3.max_uamp: 0
hw.regulator.vcc-ddr3.min_uamp: 0
hw.regulator.vcc-ddr3.max_uvolt: 1360000
hw.regulator.vcc-ddr3.min_uvolt: 1360000
hw.regulator.dcdc4.uvolt: 1100000
hw.regulator.dcdc4.always_on: 0
hw.regulator.dcdc4.boot_on: 0
hw.regulator.dcdc4.enable_cnt: 0
hw.regulator.dcdc4.enable_delay: 0
hw.regulator.dcdc4.ramp_delay: 0
hw.regulator.dcdc4.max_uamp: 0
hw.regulator.dcdc4.min_uamp: 0
hw.regulator.dcdc4.max_uvolt: 1300000
hw.regulator.dcdc4.min_uvolt: 500000
hw.regulator.dcdc3.uvolt: 1100000
hw.regulator.dcdc3.always_on: 0
hw.regulator.dcdc3.boot_on: 0
hw.regulator.dcdc3.enable_cnt: 0
hw.regulator.dcdc3.enable_delay: 0
hw.regulator.dcdc3.ramp_delay: 0
hw.regulator.dcdc3.max_uamp: 0
hw.regulator.dcdc3.min_uamp: 0
hw.regulator.dcdc3.max_uvolt: 1300000
hw.regulator.dcdc3.min_uvolt: 500000
hw.regulator.vdd-cpux.uvolt: 1100000
hw.regulator.vdd-cpux.always_on: 1
hw.regulator.vdd-cpux.boot_on: 0
hw.regulator.vdd-cpux.enable_cnt: 0
hw.regulator.vdd-cpux.enable_delay: 0
hw.regulator.vdd-cpux.ramp_delay: 0
hw.regulator.vdd-cpux.max_uamp: 0
hw.regulator.vdd-cpux.min_uamp: 0
hw.regulator.vdd-cpux.max_uvolt: 1300000
hw.regulator.vdd-cpux.min_uvolt: 1040000
hw.regulator.vcc-3v3.uvolt: 3300000
hw.regulator.vcc-3v3.always_on: 1
hw.regulator.vcc-3v3.boot_on: 0
hw.regulator.vcc-3v3.enable_cnt: 2
hw.regulator.vcc-3v3.enable_delay: 0
hw.regulator.vcc-3v3.ramp_delay: 0
hw.regulator.vcc-3v3.max_uamp: 0
hw.regulator.vcc-3v3.min_uamp: 0
hw.regulator.vcc-3v3.max_uvolt: 3300000
hw.regulator.vcc-3v3.min_uvolt: 3300000
hw.regulator.usb1-vbus.uvolt: 5000000
hw.regulator.usb1-vbus.always_on: 0
hw.regulator.usb1-vbus.boot_on: 1
hw.regulator.usb1-vbus.enable_cnt: 1
hw.regulator.usb1-vbus.enable_delay: 0
hw.regulator.usb1-vbus.ramp_delay: 0
hw.regulator.usb1-vbus.max_uamp: 0
hw.regulator.usb1-vbus.min_uamp: 0
hw.regulator.usb1-vbus.max_uvolt: 5000000
hw.regulator.usb1-vbus.min_uvolt: 5000000

On Tue, Oct 15, 2019 at 11:59 AM Emmanuel Vadot <manu@bidouilliste.com>
wrote:

> On Tue, 15 Oct 2019 11:46:14 -0400
> Gary Otten <gdotten@gmail.com> wrote:
>
> > Thanks for your response.
> >
> > Freebsd Version 12.0-STABLE
> >
> > root@:/dev # sysctl hw.regulator.vcc-pe
> > hw.regulator.vcc-pe.uvolt: 2800000
> > hw.regulator.vcc-pe.always_on: 1
> > hw.regulator.vcc-pe.boot_on: 0
> > hw.regulator.vcc-pe.enable_cnt: 0
>
>  That's the problem.
>  Can you try with hw.regulator.disable_unused=0 in /boot/loader.conf ?
>  Something is wrong somewhere as we should enable this regulator as the
> always-on prop is set. I'll try to have a look this week.
>
> > hw.regulator.vcc-pe.enable_delay: 0
> > hw.regulator.vcc-pe.ramp_delay: 0
> > hw.regulator.vcc-pe.max_uamp: 0
> > hw.regulator.vcc-pe.min_uamp: 0
> > hw.regulator.vcc-pe.max_uvolt: 2800000
> > hw.regulator.vcc-pe.min_uvolt: 2800000
> >
> > Yes I am testing the pins with a multimeter, I am not seeing any voltage
> > swings at all on Port E.   On the external connector I see 5V on pin 1,
> 3.3
> > on pin 3 and the correct voltage( software setting) on the other pins,
> > except bank E.
> >
> > PB0-PB4   voltage corresponds to software setting.
> > PC4,PC7  voltage corresponds to software setting.
> > PE0-PE17 no voltage swings, doesn't work.
> > PL7-PL12   voltage corresponds to software setting.
> >
> > I don't know if it will  help, but if I make output on a pin low, still
> > when I switch the that pin from In to out,  , I see a small voltage swing
> > in the milli volt range, but when I switch the PE pins from in to out, I
> > don't see that small swing.  Its as if they is no software connection to
> > the PE pins.
> >
> > On Tue, Oct 15, 2019 at 7:18 AM Emmanuel Vadot <manu@bidouilliste.com>
> > wrote:
> >
> > >
> > >  Hi Gary,
> > >
> > > On Mon, 14 Oct 2019 14:46:12 -0400
> > > Gary Otten <gdotten@gmail.com> wrote:
> > >
> > > > I have successfully booted the FreeBSD on the Olimex board which has
> the
> > > > Allwinner A64. I have been experimenting with the gpios,  again with
> > > > success. However the 40 pin connector on the Olimex board exposes
> GPIO
> > > pins
> > > > PB0 - PB4 which function normally (voltage corresponds to software
> > > setting
> > > > for that pin)  and then PE0-PE17 which don't.     I have played with
> most
> > > > of the PE0- PE17 pins with various settings, again nothing works, no
> > > signs
> > > > of activity. I have successfully lit the LED (PE17) with the armbian
> > > > (linux) distribution for this board so I know it should work.
> > > >
> > > > Example
> > > > gpioctl -f /dev/gpioc0 -c PB0 OUT
> > > > gpioctl -f /dev/gpioc0 PB0 1
> > > >
> > > > The pin PB0 then goes high (1) as expected.
> > > >
> > > > gpioctl -f /dev/gpioc0 -c PE17 OUT
> > > > gpioctl -f /dev/gpioc0 PE17 1
> > > >
> > > > No activity on PE17
> > > >
> > > >
> > > > I have dug into the the driver code a bit and the files containing
> the
> > > > settings for this board/processor, but I have had no luck figuring it
> > > out.
> > > >  I have studied the Allwinner a64 manual but I haven't had luck
> figuring
> > > > out any other settings that might work.    I think I am missing a
> simple
> > > > setting but can't figure it out, does anyone know how to get pins
> PE0 to
> > > > PE17 to work? Thanks.
> > >
> > >  What version of FreeBSD are you booting on this board ?
> > >  PE is a bit special on the Olinuxino as it's also used for MIPI-CSI
> > > and it's drived at 2.8V by default. It's using the regulator ALDO1 from
> > > the AXP PMIC and you should be able to confirm that it's enabled by
> > > doing sysctl hw.regulator.vcc-pe
> > >  Check for the .enable sysctl
> > >  It should be on as there is the always-on property in the DTS.
> > >  By default I think that the gpio pins are configured for 20mA so I
> > > don't know if it would be enough for this led. If you have a multimeter
> > > it would be good to confirm if you have any voltage on the ext
> > > connector (you can use any PE pins, from what I see from the schematics
> > > they are all safe to play with).
> > >
> > > --
> > > Emmanuel Vadot <manu@bidouilliste.com>
> > >
>
>
> --
> Emmanuel Vadot <manu@bidouilliste.com>
>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CABZQu%2BhLKqnHbDKngbFd1NFZZvSC2kKyY_iU-3DDUdhuVV%2BoJA>