Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys/arch Tidyup the i.MX SoC support by
details: https://anonhg.NetBSD.org/src/rev/6d7ac74c167a
branches: trunk
changeset: 1017360:6d7ac74c167a
user: skrll <skrll%NetBSD.org@localhost>
date: Wed Dec 23 14:42:38 2020 +0000
description:
Tidyup the i.MX SoC support by
- Moving the FDTised code to sys/arch/arm/nxp to match the
sys/arch/{cpu}/{vendor} convention
- FDTise some more drivers
- Secure Non-Volatile Storage
- watchdog driver
- On chip OTP
- Match fsl,imx6dl
- Add some more drivers to GENERIC that will be supported by i.MX 6
boards
diffstat:
sys/arch/arm/imx/fdt/files.imx6 | 127 -
sys/arch/arm/imx/fdt/if_enet_imx.c | 269 ---
sys/arch/arm/imx/fdt/imx6_ahcisata.c | 482 -----
sys/arch/arm/imx/fdt/imx6_clk.c | 141 -
sys/arch/arm/imx/fdt/imx6_com.c | 167 -
sys/arch/arm/imx/fdt/imx6_dwhdmi.c | 285 ---
sys/arch/arm/imx/fdt/imx6_gpc.c | 158 -
sys/arch/arm/imx/fdt/imx6_gpio.c | 274 ---
sys/arch/arm/imx/fdt/imx6_i2c.c | 83 -
sys/arch/arm/imx/fdt/imx6_iomux.c | 185 --
sys/arch/arm/imx/fdt/imx6_pcie.c | 272 ---
sys/arch/arm/imx/fdt/imx6_platform.c | 233 --
sys/arch/arm/imx/fdt/imx6_platform.h | 35 -
sys/arch/arm/imx/fdt/imx6_pwm.c | 142 -
sys/arch/arm/imx/fdt/imx6_sdhc.c | 241 --
sys/arch/arm/imx/fdt/imx6_spi.c | 169 -
sys/arch/arm/imx/fdt/imx6_usb.c | 279 ---
sys/arch/arm/imx/fdt/imx6_usbphy.c | 163 -
sys/arch/arm/imx/fdt/imx7_gpc.c | 264 ---
sys/arch/arm/imx/fdt/imx7d_ccm.c | 329 ---
sys/arch/arm/imx/fdt/imx7d_ccm.h | 482 -----
sys/arch/arm/imx/fdt/imx8mq_ccm.c | 207 --
sys/arch/arm/imx/fdt/imx8mq_ccm.h | 321 ---
sys/arch/arm/imx/fdt/imx8mq_usbphy.c | 184 --
sys/arch/arm/imx/fdt/imx_ccm.c | 309 ---
sys/arch/arm/imx/fdt/imx_ccm.h | 351 ----
sys/arch/arm/imx/fdt/imx_ccm_composite.c | 201 --
sys/arch/arm/imx/fdt/imx_ccm_div.c | 124 -
sys/arch/arm/imx/fdt/imx_ccm_extclk.c | 99 -
sys/arch/arm/imx/fdt/imx_ccm_fixed.c | 48 -
sys/arch/arm/imx/fdt/imx_ccm_fixed_factor.c | 103 -
sys/arch/arm/imx/fdt/imx_ccm_gate.c | 67 -
sys/arch/arm/imx/fdt/imx_ccm_mux.c | 78 -
sys/arch/arm/imx/fdt/imx_ccm_pll.c | 114 -
sys/arch/arm/imx/files.imx7 | 99 -
sys/arch/arm/imx/if_enet_imx6.c | 205 --
sys/arch/arm/imx/if_enet_imx7.c | 213 --
sys/arch/arm/imx/imx6_ahcisata.c | 373 ----
sys/arch/arm/imx/imx6_ahcisatareg.h | 76 -
sys/arch/arm/imx/imx6_axi.c | 160 -
sys/arch/arm/imx/imx6_board.c | 284 ---
sys/arch/arm/imx/imx6_ccm.c | 1559 ------------------
sys/arch/arm/imx/imx6_ccmreg.h | 508 -----
sys/arch/arm/imx/imx6_ccmvar.h | 569 ------
sys/arch/arm/imx/imx6_clk.c | 94 -
sys/arch/arm/imx/imx6_clock.c | 131 -
sys/arch/arm/imx/imx6_gpcreg.h | 41 -
sys/arch/arm/imx/imx6_gpio.c | 137 -
sys/arch/arm/imx/imx6_i2c.c | 99 -
sys/arch/arm/imx/imx6_intr.h | 206 --
sys/arch/arm/imx/imx6_iomux.c | 202 --
sys/arch/arm/imx/imx6_iomuxreg.h | 2301 ---------------------------
sys/arch/arm/imx/imx6_mmdcreg.h | 212 --
sys/arch/arm/imx/imx6_ocotp.c | 125 -
sys/arch/arm/imx/imx6_ocotpreg.h | 80 -
sys/arch/arm/imx/imx6_ocotpvar.h | 34 -
sys/arch/arm/imx/imx6_pcie.c | 233 --
sys/arch/arm/imx/imx6_pciereg.h | 295 ---
sys/arch/arm/imx/imx6_reg.h | 225 --
sys/arch/arm/imx/imx6_snvs.c | 73 -
sys/arch/arm/imx/imx6_snvsreg.h | 88 -
sys/arch/arm/imx/imx6_srcreg.h | 105 -
sys/arch/arm/imx/imx6_uart.c | 73 -
sys/arch/arm/imx/imx6_usb.c | 139 -
sys/arch/arm/imx/imx6_usbphy.c | 166 -
sys/arch/arm/imx/imx6_usbphyreg.h | 64 -
sys/arch/arm/imx/imx6_usbreg.h | 113 -
sys/arch/arm/imx/imx6_usdhc.c | 209 --
sys/arch/arm/imx/imx6_wdog.c | 67 -
sys/arch/arm/imx/imx6var.h | 84 -
sys/arch/arm/imx/imx7_axi.c | 157 -
sys/arch/arm/imx/imx7_board.c | 244 --
sys/arch/arm/imx/imx7_ccm.c | 1613 ------------------
sys/arch/arm/imx/imx7_gpio.c | 125 -
sys/arch/arm/imx/imx7_intr.h | 169 -
sys/arch/arm/imx/imx7_iomux.c | 188 --
sys/arch/arm/imx/imx7_ocotp.c | 124 -
sys/arch/arm/imx/imx7_ocotpvar.h | 34 -
sys/arch/arm/imx/imx7_rdcreg.h | 643 -------
sys/arch/arm/imx/imx7_snvs.c | 69 -
sys/arch/arm/imx/imx7_uart.c | 77 -
sys/arch/arm/imx/imx7_usb.c | 250 --
sys/arch/arm/imx/imx7_usdhc.c | 224 --
sys/arch/arm/imx/imx7_wdog.c | 65 -
sys/arch/arm/imx/imx7reg.h | 202 --
sys/arch/arm/imx/imxpcie.c | 844 ---------
sys/arch/arm/imx/imxusb.c | 5 +-
sys/arch/arm/nxp/files.imx | 152 +
sys/arch/arm/nxp/if_enet_imx.c | 269 +++
sys/arch/arm/nxp/imx6_ccm.c | 1557 ++++++++++++++++++
sys/arch/arm/nxp/imx6_ccmreg.h | 508 +++++
sys/arch/arm/nxp/imx6_ccmvar.h | 569 ++++++
sys/arch/arm/nxp/imx6_clk.c | 146 +
sys/arch/arm/nxp/imx6_dwhdmi.c | 285 +++
sys/arch/arm/nxp/imx6_gpc.c | 157 +
sys/arch/arm/nxp/imx6_gpcreg.h | 41 +
sys/arch/arm/nxp/imx6_iomux.c | 185 ++
sys/arch/arm/nxp/imx6_iomuxreg.h | 2301 +++++++++++++++++++++++++++
sys/arch/arm/nxp/imx6_ocotp.c | 141 +
sys/arch/arm/nxp/imx6_ocotpreg.h | 80 +
sys/arch/arm/nxp/imx6_ocotpvar.h | 34 +
sys/arch/arm/nxp/imx6_pcie.c | 272 +++
sys/arch/arm/nxp/imx6_platform.c | 236 ++
sys/arch/arm/nxp/imx6_platform.h | 35 +
sys/arch/arm/nxp/imx6_pwm.c | 142 +
sys/arch/arm/nxp/imx6_reg.h | 226 ++
sys/arch/arm/nxp/imx6_spi.c | 171 ++
sys/arch/arm/nxp/imx6_srcreg.h | 105 +
sys/arch/arm/nxp/imx6_usb.c | 279 +++
sys/arch/arm/nxp/imx6_usbphy.c | 163 +
sys/arch/arm/nxp/imx6_usbphyreg.h | 64 +
sys/arch/arm/nxp/imx6_usbreg.h | 113 +
sys/arch/arm/nxp/imx6var.h | 84 +
sys/arch/arm/nxp/imx7_gpc.c | 264 +++
sys/arch/arm/nxp/imx7d_ccm.c | 329 +++
sys/arch/arm/nxp/imx7d_ccm.h | 482 +++++
sys/arch/arm/nxp/imx8mq_ccm.c | 207 ++
sys/arch/arm/nxp/imx8mq_ccm.h | 321 +++
sys/arch/arm/nxp/imx8mq_usbphy.c | 184 ++
sys/arch/arm/nxp/imx_ahcisata.c | 482 +++++
sys/arch/arm/nxp/imx_ahcisatareg.h | 76 +
sys/arch/arm/nxp/imx_ccm.c | 309 +++
sys/arch/arm/nxp/imx_ccm.h | 351 ++++
sys/arch/arm/nxp/imx_ccm_composite.c | 201 ++
sys/arch/arm/nxp/imx_ccm_div.c | 124 +
sys/arch/arm/nxp/imx_ccm_extclk.c | 99 +
sys/arch/arm/nxp/imx_ccm_fixed.c | 48 +
sys/arch/arm/nxp/imx_ccm_fixed_factor.c | 103 +
sys/arch/arm/nxp/imx_ccm_gate.c | 67 +
sys/arch/arm/nxp/imx_ccm_mux.c | 78 +
sys/arch/arm/nxp/imx_ccm_pll.c | 114 +
sys/arch/arm/nxp/imx_com.c | 166 +
sys/arch/arm/nxp/imx_gpio.c | 275 +++
sys/arch/arm/nxp/imx_i2c.c | 85 +
sys/arch/arm/nxp/imx_sdhc.c | 240 ++
sys/arch/arm/nxp/imx_snvs.c | 72 +
sys/arch/arm/nxp/imxpcie.c | 843 +++++++++
sys/arch/arm/nxp/imxwdog.c | 232 ++
sys/arch/evbarm/conf/GENERIC | 35 +-
sys/arch/evbarm/conf/files.generic | 4 +-
sys/arch/evbarm/conf/files.generic64 | 4 +-
141 files changed, 14104 insertions(+), 21667 deletions(-)
diffs (truncated from 36454 to 300 lines):
diff -r ea342e3cce5f -r 6d7ac74c167a sys/arch/arm/imx/fdt/files.imx6
--- a/sys/arch/arm/imx/fdt/files.imx6 Wed Dec 23 14:13:49 2020 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,127 +0,0 @@
-# $NetBSD: files.imx6,v 1.14 2020/06/10 19:30:23 jmcneill Exp $
-#
-# Configuration info for the Freescale i.MX6
-#
-
-file arch/arm/imx/fdt/imx6_platform.c soc_imx
-
-# SOC parameters
-defflag opt_soc.h SOC_IMX
-defflag opt_soc.h SOC_IMX6DL: SOC_IMX
-defflag opt_soc.h SOC_IMX6Q: SOC_IMX
-defflag opt_soc.h SOC_IMX6QDL: SOC_IMX
-defflag opt_soc.h SOC_IMX7D: SOC_IMX
-
-# Clock
-device imx6ccm: clk
-attach imx6ccm at fdt
-file arch/arm/imx/imx6_ccm.c imx6ccm
-file arch/arm/imx/fdt/imx6_clk.c imx6ccm
-
-# Common FDT clock framework
-define imx_ccm: clk
-file arch/arm/imx/fdt/imx_ccm.c imx_ccm
-file arch/arm/imx/fdt/imx_ccm_composite.c imx_ccm
-file arch/arm/imx/fdt/imx_ccm_div.c imx_ccm
-file arch/arm/imx/fdt/imx_ccm_extclk.c imx_ccm
-file arch/arm/imx/fdt/imx_ccm_fixed.c imx_ccm
-file arch/arm/imx/fdt/imx_ccm_fixed_factor.c imx_ccm
-file arch/arm/imx/fdt/imx_ccm_gate.c imx_ccm
-file arch/arm/imx/fdt/imx_ccm_mux.c imx_ccm
-file arch/arm/imx/fdt/imx_ccm_pll.c imx_ccm
-
-# CCM (iMX7D)
-device imx7dccm: imx_ccm
-attach imx7dccm at fdt with imx7d_ccm
-file arch/arm/imx/fdt/imx7d_ccm.c imx7d_ccm
-
-# CCM (iMX8MQ)
-device imx8mqccm: imx_ccm
-attach imx8mqccm at fdt with imx8mq_ccm
-file arch/arm/imx/fdt/imx8mq_ccm.c imx8mq_ccm
-
-# GPC
-device imxgpc
-attach imxgpc at fdt
-file arch/arm/imx/fdt/imx6_gpc.c imxgpc
-
-device imx7gpc
-attach imx7gpc at fdt
-file arch/arm/imx/fdt/imx7_gpc.c imx7gpc
-
-# IOMUX
-device imxiomux
-attach imxiomux at fdt
-file arch/arm/imx/fdt/imx6_iomux.c imxiomux
-
-# GPIO controller
-device imxgpio: gpiobus
-attach imxgpio at fdt
-file arch/arm/imx/imxgpio.c imxgpio needs-flag
-file arch/arm/imx/fdt/imx6_gpio.c imxgpio
-
-# UART
-device imxuart: tty
-attach imxuart at fdt with imx6_com
-file arch/arm/imx/imxuart.c imxuart needs-flag
-file arch/arm/imx/fdt/imx6_com.c imx6_com needs-flag
-defflag opt_imxuart.h IMXUARTCONSOLE
-
-# FEC
-device enet: ether, ifnet, arp, mii, bus_dma_generic
-attach enet at fdt with enet_fdt
-file arch/arm/imx/if_enet.c enet
-file arch/arm/imx/fdt/if_enet_imx.c enet_fdt
-
-# SATA
-attach ahcisata at fdt with imx6_ahcisata
-file arch/arm/imx/fdt/imx6_ahcisata.c imx6_ahcisata
-
-# USB Controller
-device imxusbc { [unit=-1], [irq=-1] } : bus_dma_generic
-attach imxusbc at fdt with imxusbc_fdt
-file arch/arm/imx/fdt/imx6_usb.c imxusbc_fdt
-
-attach ehci at imxusbc with imxehci
-file arch/arm/imx/imxusb.c imxehci
-
-# USB PHY
-device imxusbphy
-attach imxusbphy at fdt
-file arch/arm/imx/fdt/imx6_usbphy.c imxusbphy
-
-device imx8mqusbphy
-attach imx8mqusbphy at fdt
-file arch/arm/imx/fdt/imx8mq_usbphy.c imx8mqusbphy
-
-# SDMMC
-attach sdhc at fdt with imx6_sdhc
-file arch/arm/imx/fdt/imx6_sdhc.c imx6_sdhc
-
-device imxpcie: pcibus, clk
-attach imxpcie at fdt with imxpcie_fdt
-file arch/arm/imx/imxpcie.c imxpcie
-file arch/arm/imx/fdt/imx6_pcie.c imxpcie_fdt
-
-# iMX iic controller
-device imxi2c: motoi2c, i2cbus, i2cexec
-attach imxi2c at fdt
-file arch/arm/imx/imxi2c.c imxi2c
-file arch/arm/imx/fdt/imx6_i2c.c imxi2c
-
-# SPI bus controller
-device imxspi: spibus
-attach imxspi at fdt with imxspi_fdt
-file arch/arm/imx/imxspi.c imxspi
-file arch/arm/imx/fdt/imx6_spi.c imxspi_fdt
-defparam opt_imxspi.h IMXSPINSLAVES
-
-# PWM
-device imxpwm: pwm, clk
-attach imxpwm at fdt with imxpwm_fdt
-file arch/arm/imx/imxpwm.c imxpwm
-file arch/arm/imx/fdt/imx6_pwm.c imxpwm_fdt
-
-# HDMI TX (Designware based)
-attach dwhdmi at fdt with imx6_dwhdmi
-file arch/arm/imx/fdt/imx6_dwhdmi.c imx6_dwhdmi
diff -r ea342e3cce5f -r 6d7ac74c167a sys/arch/arm/imx/fdt/if_enet_imx.c
--- a/sys/arch/arm/imx/fdt/if_enet_imx.c Wed Dec 23 14:13:49 2020 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,269 +0,0 @@
-/* $NetBSD: if_enet_imx.c,v 1.9 2020/01/15 01:09:56 jmcneill Exp $ */
-/*-
- * Copyright (c) 2019 Genetec Corporation. All rights reserved.
- * Written by Hashimoto Kenichi for Genetec Corporation.
- *
- * 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.
- */
-#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_enet_imx.c,v 1.9 2020/01/15 01:09:56 jmcneill Exp $");
-
-#include "opt_fdt.h"
-
-#include <sys/param.h>
-#include <sys/bus.h>
-#include <sys/device.h>
-
-#include <arm/imx/imx6var.h>
-#include <arm/imx/imx6_reg.h>
-#include <arm/imx/if_enetreg.h>
-#include <arm/imx/if_enetvar.h>
-
-#include <dev/fdt/fdtvar.h>
-
-struct enet_fdt_softc {
- struct enet_softc sc_enet;
-
- struct fdtbus_gpio_pin *sc_pin_reset;
-};
-
-CFATTACH_DECL_NEW(enet_fdt, sizeof(struct enet_fdt_softc),
- enet_match, enet_attach, NULL, NULL);
-
-static const struct of_compat_data compat_data[] = {
- /* compatible imxtype */
- { "fsl,imx6q-fec", 6 },
- { "fsl,imx6sx-fec", 7 },
- { NULL }
-};
-
-static int enet_init_clocks(struct enet_softc *);
-static void enet_phy_reset(struct enet_fdt_softc *, const int);
-static int enet_phy_id(struct enet_softc *, const int);
-static void *enet_intr_establish(struct enet_softc *, int, u_int);
-
-int
-enet_match(device_t parent, cfdata_t cf, void *aux)
-{
- struct fdt_attach_args * const faa = aux;
-
- return of_match_compat_data(faa->faa_phandle, compat_data);
-}
-
-void
-enet_attach(device_t parent, device_t self, void *aux)
-{
- struct enet_fdt_softc * const efsc = device_private(self);
- struct enet_softc *sc = &efsc->sc_enet;
- struct fdt_attach_args * const faa = aux;
- prop_dictionary_t prop = device_properties(self);
- const int phandle = faa->faa_phandle;
- bus_space_tag_t bst = faa->faa_bst;
- bus_space_handle_t bsh;
- bus_addr_t addr;
- bus_size_t size;
- int error;
-
- if (fdtbus_get_reg(phandle, 0, &addr, &size) != 0) {
- aprint_error(": couldn't get enet registers\n");
- return;
- }
-
- error = bus_space_map(bst, addr, size, 0, &bsh);
- if (error) {
- aprint_error(": couldn't map enet registers: %d\n", error);
- return;
- }
-
- sc->sc_clk_ipg = fdtbus_clock_get(phandle, "ipg");
- if (sc->sc_clk_ipg == NULL) {
- aprint_error(": couldn't get clock ipg\n");
- goto failure;
- }
- sc->sc_clk_enet = fdtbus_clock_get(phandle, "ahb");
- if (sc->sc_clk_enet == NULL) {
- aprint_error(": couldn't get clock ahb\n");
- goto failure;
- }
- sc->sc_clk_enet_ref = fdtbus_clock_get(phandle, "ptp");
- if (sc->sc_clk_enet_ref == NULL) {
- aprint_error(": couldn't get clock ptp\n");
- goto failure;
- }
-
- if (fdtbus_clock_enable(phandle, "enet_clk_ref", false) != 0) {
- aprint_error(": couldn't enable clock enet_clk_ref\n");
- goto failure;
- }
- if (fdtbus_clock_enable(phandle, "enet_out", false) != 0) {
- aprint_error(": couldn't enable clock enet_out\n");
- goto failure;
- }
-
- aprint_naive("\n");
- aprint_normal(": Gigabit Ethernet Controller\n");
-
- sc->sc_dev = self;
- sc->sc_iot = bst;
- sc->sc_ioh = bsh;
- sc->sc_dmat = faa->faa_dmat;
-
- sc->sc_imxtype = of_search_compatible(phandle, compat_data)->data;
- sc->sc_unit = 0;
- sc->sc_phyid = enet_phy_id(sc, phandle);
-
- const char *phy_mode = fdtbus_get_string(phandle, "phy-mode");
- if (phy_mode == NULL) {
- aprint_error(": missing 'phy-mode' property\n");
- goto failure;
- }
-
- if (strcmp(phy_mode, "rgmii-txid") == 0) {
- prop_dictionary_set_bool(prop, "tx_internal_delay", true);
- sc->sc_rgmii = 1;
- } else if (strcmp(phy_mode, "rgmii-rxid") == 0) {
- prop_dictionary_set_bool(prop, "rx_internal_delay", true);
- sc->sc_rgmii = 1;
- } else if (strcmp(phy_mode, "rgmii-id") == 0) {
- prop_dictionary_set_bool(prop, "tx_internal_delay", true);
- prop_dictionary_set_bool(prop, "rx_internal_delay", true);
- sc->sc_rgmii = 1;
- } else if (strcmp(phy_mode, "rgmii") == 0) {
- sc->sc_rgmii = 1;
- } else {
- sc->sc_rgmii = 0;
- }
-
- sc->sc_ih = enet_intr_establish(sc, phandle, 0);
- if (sc->sc_ih == NULL)
- goto failure;
-
- if (sc->sc_imxtype == 7) {
- sc->sc_ih2 = enet_intr_establish(sc, phandle, 1);
- sc->sc_ih3 = enet_intr_establish(sc, phandle, 2);
- if (sc->sc_ih2 == NULL || sc->sc_ih3 == NULL)
- goto failure;
- }
Home |
Main Index |
Thread Index |
Old Index