History log of /freebsd-current/sys/arm64/rockchip/rk_pinctrl.c
Revision Date Author Comments
# 62e8ccc3 26-Dec-2023 Emmanuel Vadot <manu@FreeBSD.org>

syscon: Move syscon code in dev/syscon

We've removed kernel option EXT_RESOURCES almost two years ago.
While it was ok to have some code under a common 'extres' subdirectory
at first, we now have a lot of consumer of it and we made it mandatory
so no need to have it under a cryptic name.

Reviewed by: mhorne
Sponsored by: Beckhoff Automation GmbH & Co. KG
Differential Revision: https://reviews.freebsd.org/D43196


# fdafd315 24-Nov-2023 Warner Losh <imp@FreeBSD.org>

sys: Automated cleanup of cdefs and other formatting

Apply the following automated changes to try to eliminate
no-longer-needed sys/cdefs.h includes as well as now-empty
blank lines in a row.

Remove /^#if.*\n#endif.*\n#include\s+<sys/cdefs.h>.*\n/
Remove /\n+#include\s+<sys/cdefs.h>.*\n+#if.*\n#endif.*\n+/
Remove /\n+#if.*\n#endif.*\n+/
Remove /^#if.*\n#endif.*\n/
Remove /\n+#include\s+<sys/cdefs.h>\n#include\s+<sys/types.h>/
Remove /\n+#include\s+<sys/cdefs.h>\n#include\s+<sys/param.h>/
Remove /\n+#include\s+<sys/cdefs.h>\n#include\s+<sys/capsicum.h>/

Sponsored by: Netflix


# 685dc743 16-Aug-2023 Warner Losh <imp@FreeBSD.org>

sys: Remove $FreeBSD$: one-line .c pattern

Remove /^[\s*]*__FBSDID\("\$FreeBSD\$"\);?\s*\n/


# 4d846d26 10-May-2023 Warner Losh <imp@FreeBSD.org>

spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD

The SPDX folks have obsoleted the BSD-2-Clause-FreeBSD identifier. Catch
up to that fact and revert to their recommended match of BSD-2-Clause.

Discussed with: pfg
MFC After: 3 days
Sponsored by: Netflix


# 355cb40c 27-Dec-2022 Søren Schmidt <sos@FreeBSD.org>

Set RK3568 specific pin mux for GMAC1.


# 9142f3a8 11-Nov-2022 Andrew Turner <andrew@FreeBSD.org>

Fix a rk356x pinctrl register offset

The pull-up/pull-down register offset was wrong on the Rockchip rk356x.
It was set such that the driver would modify the IOMUX control registers.

This seems to work with the current device tree files, but fails with
upstream files. Fix the offset so the later calculation has the correct
offset for the pull-up/pull-down control register.

Sponsored by: The FreeBSD Foundation


# 8d6b3a85 10-Aug-2022 Emmanuel Vadot <manu@FreeBSD.org>

arm64: rockchip: pinctrl: Do not rely on the node name

Node names for gpio bank were made generic in Linux 5.16 so stop
using them to map the gpio controller to the pin controller bank unit.

Sponsored by: Beckhoff Automation GmbH & Co. KG


# 5db5bd5f 07-Aug-2022 Ganbold Tsagaankhuu <ganbold@FreeBSD.org>

Add drive strength setting for RK3568 pinctrl driver.
Partially from https://reviews.freebsd.org/D36027

Submitted by: sos


# eec32902 09-Jul-2022 Ganbold Tsagaankhuu <ganbold@FreeBSD.org>

Add RK3568 SoC support to pinctrl driver.

Submitted by: sos
Reviewed by: manu
Differential Revision: https://reviews.freebsd.org/D31330


# b2c1681a 09-May-2022 John Baldwin <jhb@FreeBSD.org>

arm64 rockchip: Remove unused devclass arguments to DRIVER_MODULE.


# 2b556942 09-Dec-2021 Andrew Turner <andrew@FreeBSD.org>

Fix set but not used warnings in arm64 rockchip

Reviewed by: manu, mmel
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D33372


# 50cedfed 01-Sep-2020 Mateusz Guzik <mjg@FreeBSD.org>

arm64: clean up empty lines in .c and .h files


# a3fc4093 25-Apr-2020 Michal Meloun <mmel@FreeBSD.org>

Reorder initialization steps for given pin.
If pin is switched from fixed function to GPIO, it should have prepared
direction, pull-up/down and default value before function gets switched.
Otherwise we may produce unwanted glitch on output pin.
Right order of drive strength settings is questionable, but I think that
is slightly safer to do it also before function switch.

This fixes serial port corruption observed after DT 5.6 import.

MFC after: 1 week


# 3ee778c1 16-Jan-2020 Emmanuel Vadot <manu@FreeBSD.org>

arm64: rockchip: Add new interface for rk_pinctrl

The gpio controller in rockchips SoC in a child of the pinctrl driver
and cannot control pullups and pulldowns.
Use the new fdt_pinctrl interface for accessing pin capabilities and
setting them.
We can now report that every pins is capable of being IN or OUT function
and PULLUP PULLDOWN.
If the pin isn't in gpio mode no changes will be allowed.

Reviewed by: ganbold (previous version)
MFC after: 1 month
Differential Revision: https://reviews.freebsd.org/D22849


# 3df0c026 17-Dec-2019 Emmanuel Vadot <manu@FreeBSD.org>

arm64: rockchip: rk_pinctrl: Fix clear bits in SYSCON_MODIFY

r351187 change the SYSCON_WRITE to SYSCON_MODIFY but didn't changed the
mask variable that used to hold the bitmask in the upper 16 bits of the
register that control which bits are changed. So we ended up clearing
bit from the upper 16bits half which are always 0 after a read.
Use the correct bit mask for bits that we want to clear.

MFC after: 3 days


# e63adc10 12-Dec-2019 Emmanuel Vadot <manu@FreeBSD.org>

arm64: rockchip: rk_pinctrl: Fix parse_bias for RK3399

Only bank 0 and bank 2 are different than other rockchip SoC, fix this.
While here remove some debug printfs that where added in r355648

MFC after: 3 days
X-MFC-With: r355648


# 064486c0 12-Dec-2019 Emmanuel Vadot <manu@FreeBSD.org>

arm64: rockchip: rk_pinctrl: Add bias parsing based on the SoC type

Not all rockchip have the same value for pullup/pulldown so add a function
per SoC and call the right one to have the proper value.

MFC after: 3 days


# e213223c 03-Dec-2019 Emmanuel Vadot <manu@FreeBSD.org>

Remove "all rights reserved" from copyright for the file I own.
Some of the files have both me and Jared McNeill and he gave me
permission to remove it from his files too.


# 0178a63f 27-Aug-2019 Emmanuel Vadot <manu@FreeBSD.org>

arm64: rk3399: pinctrl: Add gpio banks and fix iomux

Since r351187 the pinctrl driver need to know the gpio bank as it
directly attach the gpio driver to handle some setup that might
be present in the dts, add the gpio banks table for rk3399.
While here fix some IOMUX definition that prevented to boot
on RK3399 as pinctrl wasn't configured correctly.

Submitted by: mmel (original version)
MFC after: 2 weeks
MFC With: r351187


# 8a27f356 27-Aug-2019 Emmanuel Vadot <manu@FreeBSD.org>

arm64: rk3328: pinctrl: Add gpio banks and fix iomux

Since r351187 the pinctrl driver need to know the gpio bank as it
directly attach the gpio driver to handle some setup that might
be present in the dts, add the gpio banks table for rk3328.
While here fix some IOMUX definition that prevented to boot
on RK3328 as pinctrl wasn't configured correctly.

Submitted by: mmel (original version)
MFC after: 2 weeks
MFC With: r351187


# 38b7749a 18-Aug-2019 Michal Meloun <mmel@FreeBSD.org>

Improve rk_pinctrl driver:
- add support for 'output-low', 'output-high', 'output-low' and
'output-enable' properties. These are use in RK3288 DT files
- add support for RK3288
- to reduce overall file size, use local macros for initialization
of pinctrl description structures.

MFC after: 2 weeks


# 38bf16eb 26-Feb-2019 Emmanuel Vadot <manu@FreeBSD.org>

arm64: rockchip: rk_pinctrl: Fix two banks in RK3328

The last two banks don't have 3 bits for the pin function but only 2.
This fixes eMMC on the Rock64.

MFC after: 1 week


# 36ae7efe 01-Dec-2018 Emmanuel Vadot <manu@FreeBSD.org>

arm64/rockchip: add RK3399 support

Add CRU (Clock and Reset Unit) driver for RK3399.
Add support in rk_pinctrl driver.

Submitted by: Greg V <greg@unrelenting.technology> (Original version)
Differential Revision: https://reviews.freebsd.org/D16732

MFC after: 1 month


# b1b521b1 13-Jun-2018 Emmanuel Vadot <manu@FreeBSD.org>

rk_pinctrl: Only add gpio subnode

This is the only node we are interested in so do not waste time to test
creating device that will be either unused or fail as most of the nodes
don't have a compatible string.


# be2e72c2 26-Apr-2018 Emmanuel Vadot <manu@FreeBSD.org>

arm64: rockchip: Add pinctrl driver

Add pinctrl driver for RockChip SoCs. This device manage which function
to set on which pin and some other properties like pull up/down, drive
strength etc ...
For now the driver only support RK3328 but it is versatile enough to
add support for other RockChip SoC in the future.