Jared McNeill
5f7cfb6035
Add support for H3 PLL2 (PLL_Audio).
2016-11-02 23:49:57 +00:00
Jared McNeill
8c07f7653a
The DTS may report fewer than 4 parents for a module clock. Avoid setting
...
the module clock parent to an out-of-range index in these cases.
2016-11-02 23:46:23 +00:00
Jared McNeill
bd95d8610a
Fix H3 temperature reporting. The formula in for V1.0 of the H3 datasheet
...
seems to be incorrect, so use the same method of conversion as the H3 BSP
instead.
2016-10-30 14:39:33 +00:00
Ganbold Tsagaankhuu
a6e9118bf4
Add support for Allwinner Consumer IR interface.
...
RX is supported now and the driver is using evdev framework.
It was tested on Cubieboard2 (A20 SoC) using lirc
with dfrobot's IR remote controller.
2016-10-27 04:26:33 +00:00
Andrew Turner
f1ae17fb50
Use the new fdt_intr.h constants in the Allwinner NMI driver.
...
Sponsored by: DARPA, AFRL
2016-10-26 16:03:26 +00:00
Andrew Turner
87e1355ba5
Define the Allwinner PLL FDT constants in the file that uses them rather
...
than including a file from under sys/gnu.
Sponsored by: DARPA, AFRL
2016-10-26 14:09:30 +00:00
Emmanuel Vadot
1535414c25
The only consumer of pll1 is the CPU clock, we don't need to set it glitch free.
...
Reported by: jmcneill
MFC after: 1 week
2016-10-26 08:47:35 +00:00
Emmanuel Vadot
6a9f23793d
allwinner A10 Pll1 allow changing freq
...
PLL1 is used by the cpu core, allowing changing freq is needed for cpufreq.
The factors table contains all the frequencies in the operating point table
present in the DTS.
MFC after: 1 week
2016-10-25 15:21:08 +00:00
Jared McNeill
2e4f934752
Defer cpufreq updates from intr handler to the taskqueue_thread queue.
2016-10-24 22:35:12 +00:00
Emmanuel Vadot
cd2b868b5d
allwinner: Add support for P2WI in RSB driver
...
Push-Pull Two Wire interface is a almost compatible iic like bus used
in sun6i SoC. It's only use is to communicate with the power management IC.
Reviewed by: jmcneill
MFC after: 1 week
Relnotes: yes
2016-10-24 20:33:42 +00:00
Emmanuel Vadot
2c3b1e3c42
Revert 307822
...
P2WI is almost compatible with RSB which we already support.
I'll add support for P2WI in aw_rsb instead.
Discussed with: jmcneill
2016-10-24 14:24:12 +00:00
Jared McNeill
3c2b90f1d1
Throttle CPU frequency when hot temperature threshold has been reached to
...
prevent overheating.
When sensor 0's alarm interrupt is fired, set a throttle flag. Further
requests to set CPU frequency will be rejected until sensor 0's temperature
returns to a level below the hot temperature threshold.
Relnotes: yes
2016-10-23 17:48:34 +00:00
Emmanuel Vadot
0b194aca21
allwinner: Add support for P2WI bus
...
P2WI (Push-Pull Two Wire Interface) is an I2C-like bus used in sun6i SoC
for talking to power management unit IC.
2016-10-23 12:48:09 +00:00
Hans Petter Selasky
d3bf5efc1f
Fix device delete child function.
...
When detaching device trees parent devices must be detached prior to
detaching its children. This is because parent devices can have
pointers to the child devices in their softcs which are not
invalidated by device_delete_child(). This can cause use after free
issues and panic().
Device drivers implementing trees, must ensure its detach function
detaches or deletes all its children before returning.
While at it remove now redundant device_detach() calls before
device_delete_child() and device_delete_children(), mostly in
the USB controller drivers.
Tested by: Jan Henrik Sylvester <me@janh.de>
Reviewed by: jhb
Differential Revision: https://reviews.freebsd.org/D8070
MFC after: 2 weeks
2016-10-17 10:20:38 +00:00
Jared McNeill
63f6b1a75a
aw_ccu on H3 needs access to PRCM space. The r_pio controller works now.
2016-10-16 12:55:31 +00:00
Emmanuel Vadot
b3d4851e86
axp209: Add support for regulators
...
Except for LDO4, all regulators are supported.
MFC after: 1 week
2016-10-15 17:49:41 +00:00
Jared McNeill
3c6a684c11
Match "allwinner,sun8i-h3-apb0-gates-clk" compatible string.
2016-10-15 13:27:01 +00:00
Jared McNeill
2ee32f3c7f
Provide a complete A23 PLL1 factor table, from 60MHz to 1872MHz.
2016-10-15 12:23:54 +00:00
Michal Meloun
c7264b2dfa
ARM: Remove unused includes.
...
MFC after: 1 week
2016-10-09 10:25:47 +00:00
Michal Meloun
7cc70732a3
ARM: SEV/WFE instructions are implemented starting from ARMv6K,
...
use it directly.
MFC after: 1 week
2016-10-06 13:18:18 +00:00
Andrew Turner
1834282de6
Split CPU_CORTEXA into CPU_CORTEXA8, for the Cortex-A8, and CPU_CORTEXA_MP,
...
for later Cortex-A CPUs that support the Multiprocessor Extensions. This
will be needed to support both in a single GENERIC kernel while still
being able to only build for a single SoC.
Reviewed by: mmel
Relnotes: yes
Sponsored by: ABT Systems Ltd
Differential Revision: https://reviews.freebsd.org/D8138
2016-10-04 12:25:44 +00:00
Andrew Turner
18f555023a
Remove the old Allwinner std.* files, these are not part of the common
...
Allwinner kernel configs.
Sponsored by: ABT Systems Ltd
2016-10-03 16:47:46 +00:00
Michal Meloun
b58616d5d7
ALLWINNER: ahci_devclass is local variable, don't export it.
2016-09-30 05:30:16 +00:00
Andrew Turner
0a4c0732a9
Restrict where we need to define fdt_fixup_table to just PowerPC and
...
Marvell.
Sponsored by: ABT Systems Ltd
2016-09-23 14:11:23 +00:00
Andrew Turner
0dbb8873c8
Move cpu_reset to be a platform method to allow multiple implementations.
...
Reviewed by: mmel
Sponsored by: ABT Systems Ltd
Differential Revision: https://reviews.freebsd.org/D8010
2016-09-23 13:08:15 +00:00
Andrew Turner
c35b5d8372
Remove bus_dma_get_range and bus_dma_get_range_nb on armv6. We only need
...
this on a few earlier arm SoCs.
Reviewed by: manu (earlier version)
Sponsored by: ABT Systems Ltd
2016-09-23 12:38:05 +00:00
Emmanuel Vadot
2fb194c968
a10_mmc: Remove completly the PIO code now all access is done by DMA.
...
Rename registers as in the manual.
Do a hard reset of the controller before a soft one.
Since DMA is always used remove dependancy on allwinner_soc_family, it was used
to differentiate SoC as the fdt compatible string were the same.
Tested on A10, A20, H3 and A64.
Reviewed by: jmcneill
Differential Revision: https://reviews.freebsd.org/D6868
2016-09-10 17:45:35 +00:00
Jared McNeill
b78c83e321
Add support for Allwinner A83T CPU frequency scaling.
2016-09-07 01:10:16 +00:00
Jared McNeill
b3868b9f16
Attach later so axp81x attaches after aw_nmi.
2016-09-07 01:09:25 +00:00
Jared McNeill
22a07618ae
Add sy8106a to Allwinner kernel. This regulator is used to control VDD_CPUX
...
and is connected to R_TWI on some H3-based Orange Pi boards.
2016-09-05 13:45:45 +00:00
Jared McNeill
a995bf1b7d
Add support for Allwinner H3 PLL_CPUX.
...
The H3 PLL_CPUX register looks exactly like the one found in A23, but we
need to follow a specific protocol when making adjustments to the clock.
2016-09-05 12:36:54 +00:00
Jared McNeill
4e7f43bab6
Add support for the Allwinner H3 Thermal Sensor Controller. The H3 embeds
...
a single thermal sensor located in the CPU.
2016-09-05 11:05:14 +00:00
Jared McNeill
1403e695b7
Use the root key in the Security ID EFUSE (when valid) to generate a
...
MAC address instead of creating a random one each boot.
2016-09-03 15:28:09 +00:00
Jared McNeill
d69d5ab04f
Add support for Allwinner A64 thermal sensors.
2016-09-03 15:26:00 +00:00
Jared McNeill
0503b90dde
Add support for reading root key on A83T/A64.
2016-09-03 15:22:50 +00:00
Jared McNeill
1396b52e55
Add support for changing A23 PLL1 frequency.
2016-09-01 21:20:07 +00:00
Jared McNeill
e8ca6c4d83
Add support for setting DCDC2 voltage.
2016-09-01 21:19:11 +00:00
Jared McNeill
63dc81d861
Add support for Allwinner A64 USB PHY.
...
Reviewed by: manu
2016-08-31 10:45:53 +00:00
Jared McNeill
c60d891c4f
Add support for Allwinner A64 watchdog timer.
2016-08-30 10:21:32 +00:00
Jared McNeill
7f4b51c6f0
Add support for Allwinner A64 PLL_PERIPH0/PLL_PERIPH1 and PLL_HSIC clocks.
...
Reviewed by: andrew, manu
2016-08-25 10:29:41 +00:00
Jared McNeill
30a0ebdb1c
Switch parent clock when setting frequency if a new parent is a better
...
candidate for the target rate.
Reviewed by: andrew, manu
2016-08-25 10:27:22 +00:00
Jared McNeill
1ff131af88
Add support for Allwinner multi-parent bus gates.
...
Reviewed by: andrew, manu
2016-08-25 10:24:14 +00:00
Jared McNeill
224a4b630b
Expose DC1SW as a regulator switch. On Pine64 this is used to control EMAC
...
PHY power.
Reviewed by: andrew, manu
2016-08-25 10:20:27 +00:00
Jared McNeill
ef61a34ae8
Remove dependency on allwinner_soc_family() as it is not available on arm64.
...
Reviewed by: andrew, manu
2016-08-25 10:14:56 +00:00
Emmanuel Vadot
1f3b7bbb56
Allwinner: Add thermal sensor driver for A10/A20
...
The thermal sensor lives in the touch screen controller. Touch screen part
isn't done for now.
Temperature is read every ~2 seconds and exposed via sysctl.
2016-08-23 22:26:50 +00:00
Emmanuel Vadot
728af0b7fc
Do not include file from dt-bindings and simply use the already present defines.
...
Reported by: jmcneill
MFC after: 1 week
2016-08-23 00:46:22 +00:00
Emmanuel Vadot
f8fc698b0d
allwinner: Remove a20/a20_cpu_cfg.c from the build.
...
This was needed when we used the SoC specific timer and not the generic-timer.
2016-08-21 16:03:44 +00:00
Emmanuel Vadot
bee987e3c8
if_emac: Before generating a random MAC address, try using the SID rootkey
...
to generate one. This is was U-Boot does to generate a random MAC so we end
up with the same MAC address as if U-Boot did generate it.
MFC after: 1 week
2016-08-19 23:44:07 +00:00
Emmanuel Vadot
c8442223b6
Allwinner: Move a10_padconf.c into a10 subdirectory.
2016-08-19 12:48:32 +00:00
Emmanuel Vadot
d00d8ed84f
Rename allwinner_machdep.{c.h} to aw_machdep.{c.h} as all allwinner source
...
files are name aw_*
2016-08-17 21:44:02 +00:00