Jared McNeill
ce4e4d612b
On command error, reset only DMA and FIFO engines instead of the entire
...
controller. Fixes eMMC device detection on OrangePi Plus 2e (and likely
others).
2016-11-15 23:48:30 +00:00
Jared McNeill
02b2e3c5fb
Allow the MMC frequency to be set up to 52MHz for MMC high speed timings.
2016-11-15 23:46:01 +00:00
Emmanuel Vadot
51503e707b
Upstream DTS provides PLL3 and PLL7 nodes (and their x2 form),
...
so remove them from our DTS and adapt the code to handle them correctly.
This fix HDMI video on A20.
2016-11-15 07:08:33 +00:00
Andrew Turner
222102cfca
Move including fdt_pinctrl.h after openfirm.h to get th edefinition of
...
phandle_t and remove the need for including fdt_common.h.
Sponsored by: ABT Systems Ltd
2016-11-14 11:52:22 +00:00
Andrew Turner
df7675353e
Stop including fdt_common.h from the arm code when it's unneeded.
...
Sponsored by: ABT Systems Ltd
2016-11-14 11:41:22 +00:00
Andrew Turner
87acb7f815
Use the modern spelling of ofw_bus_node_is_compatible in sys/arm.
...
Sponsored by: ABT Systems Ltd
2016-11-11 15:13:30 +00:00
Andrew Turner
feabce61dc
Start to remove the old pre-INTRNG code from the arm platforms. These have
...
all moved to use INTRNG.
Reviewed by: manu, mmel
Sponsored by: ABT Systems Ltd
Differential Revision: https://reviews.freebsd.org/D8469
2016-11-08 12:15:57 +00:00
Emmanuel Vadot
328dd395ba
Do not fail to attach the clock if we cannot set the assigned parents as this
...
property isn't mandatory.
MFC after: 2 weeks
2016-11-08 10:06:43 +00:00
Emmanuel Vadot
6988dd5e61
Add support for AXP221 Power Management Unit.
...
AXP221 is used on board with A31/A31S and is mostly compatible with AXP209.
Regulators, GPIO and Sensors are supported.
MFC after: 2 weeks
2016-11-04 20:02:52 +00:00
Emmanuel Vadot
73e62e8c5c
Fix r308306 by spelling variable correctly.
2016-11-04 19:23:52 +00:00
Emmanuel Vadot
1ca819f642
Set rst_apb to NULL to avoid panic when release.
2016-11-04 19:21:11 +00:00
Emmanuel Vadot
e3454ae8b3
For AHB clock we need to set the assigned parents for cpufreq(4) to work.
...
MFC after: 2 weeks
2016-11-04 17:13:47 +00:00
Jared McNeill
16025c357f
Add support for Allwinner H3 audio codec.
...
The audio controller in the H3 is more or less the same as A10/A20 except
some registers are shuffled around. The mixer interface, however, is
completely different between SoCs. Separate a10_mixer_class and
h3_mixer_class implementations are now made available. This will also make
adding support for other SoCs easier in the future.
Reviewed by: andrew, ganbold
Relnotes: yes
Differential Revision: https://reviews.freebsd.org/D8425
2016-11-03 23:22:04 +00:00
Jared McNeill
e1ca1a284c
Add support for the integrated DMA controller found in the Allwinner A31,
...
A64, A83T, and H3 SoCs.
Relnotes: yes
2016-11-02 23:58:10 +00:00
Jared McNeill
ddfb3d5aa7
Register the device's xref handle at attach time.
2016-11-02 23:53:47 +00:00
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