Add pnp info to imx6_ahci, and add a module makefile, and a manpage for it.

This commit is contained in:
Ian Lepore 2018-07-08 00:27:28 +00:00
parent fdd9550b54
commit cf2cec68bd
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=336079
5 changed files with 89 additions and 1 deletions

View File

@ -12,6 +12,7 @@ MAN= \
bcm283x_pwm.4 \
cgem.4 \
devcfg.4 \
imx6_ahci.4 \
imx_wdog.4 \
mge.4 \
npe.4 \

View File

@ -0,0 +1,65 @@
.\"
.\" Copyright (c) 2018 Ian Lepore <ian@freebsd.org>
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
.\" notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice, this list of conditions and the following disclaimer in the
.\" documentation and/or other materials provided with the distribution.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.\" $FreeBSD$
.\"
.Dd July 7, 2018
.Dt IMX6_AHCI 4
.Os
.Sh NAME
.Nm imx6_ahci
.Nd device driver for the NXP i.MX6 on-chip SATA controller
.Sh SYNOPSIS
To compile this driver into the kernel,
place the following line in your
kernel configuration file:
.Bd -ragged -offset indent
.Cd "device ahci"
.Ed
.Pp
Alternatively, to load the driver as a
module at boot time, place the following line in
.Xr loader.conf 5 :
.Bd -literal -offset indent
imx6_ahci_load="YES"
.Ed
.Sh DESCRIPTION
The
.Nm
driver provides
support for the on-chip SATA controller found on some models of
the NXP i.MX6 chip.
The driver is a thin glue layer to interpret the platform's FDT
data and marshall resources for the standard
.Xr ahci 4
driver.
.Sh SEE ALSO
.Xr ahci 4 ,
.Xr fdt 4 ,
.Sh HISTORY
The
.Nm
driver first appeared in
.Fx 12.0 .

View File

@ -64,6 +64,11 @@ __FBSDID("$FreeBSD$");
#define SATA_PHY_LANE0_OUT_STAT 0x2003
#define SATA_PHY_LANE0_OUT_STAT_RX_PLL_STATE (1 << 1)
static struct ofw_compat_data compat_data[] = {
{"fsl,imx6q-ahci", true},
{NULL, false}
};
static int
imx6_ahci_phy_ctrl(struct ahci_controller* sc, uint32_t bitmask, bool on)
{
@ -215,7 +220,7 @@ imx6_ahci_probe(device_t dev)
return (ENXIO);
}
if (!ofw_bus_is_compatible(dev, "fsl,imx6q-ahci")) {
if (!ofw_bus_search_compatible(dev, compat_data)->ocd_data) {
return (ENXIO);
}
device_set_desc(dev, "i.MX6 Integrated AHCI controller");
@ -354,3 +359,5 @@ static driver_t ahci_ata_driver = {
};
DRIVER_MODULE(imx6_ahci, simplebus, ahci_ata_driver, ahci_devclass, 0, 0);
MODULE_DEPEND(imx6_ahci, ahci, 1, 1, 1);
SIMPLEBUS_PNP_INFO(compat_data)

View File

@ -3,6 +3,7 @@
SUBDIR = \
../ffec \
imx6_ahci \
imx_i2c \
imx_spi \
imx_wdog \

View File

@ -0,0 +1,14 @@
# $FreeBSD$
.PATH: ${SRCTOP}/sys/arm/freescale/imx
KMOD= imx6_ahci
SRCS= imx6_ahci.c
# Generated files...
SRCS+= \
bus_if.h \
device_if.h \
ofw_bus_if.h \
.include <bsd.kmod.mk>