linux/drivers/phy/broadcom/phy-brcm-usb-init-synopsys.c

// SPDX-License-Identifier: GPL-2.0
/* Copyright (c) 2018, Broadcom */

/*
 * This module contains USB PHY initialization for power up and S3 resume
 * for newer Synopsys based USB hardware first used on the bcm7216.
 */

#include <linux/delay.h>
#include <linux/io.h>

#include <linux/soc/brcmstb/brcmstb.h>
#include "phy-brcm-usb-init.h"

#define PHY_LOCK_TIMEOUT_MS

/* Register definitions for syscon piarbctl registers */
#define PIARBCTL_CAM
#define PIARBCTL_SPLITTER
#define PIARBCTL_MISC
#define PIARBCTL_MISC_SATA_PRIORITY_MASK
#define PIARBCTL_MISC_CAM0_MEM_PAGE_MASK
#define PIARBCTL_MISC_CAM1_MEM_PAGE_MASK
#define PIARBCTL_MISC_USB_MEM_PAGE_MASK
#define PIARBCTL_MISC_USB_PRIORITY_MASK
#define PIARBCTL_MISC_USB_4G_SDRAM_MASK
#define PIARBCTL_MISC_USB_SELECT_MASK
#define PIARBCTL_MISC_SECURE_MASK

#define PIARBCTL_MISC_USB_ONLY_MASK

/* Register definitions for the USB CTRL block */
#define USB_CTRL_SETUP
#define USB_CTRL_SETUP_IOC_MASK
#define USB_CTRL_SETUP_IPP_MASK
#define USB_CTRL_SETUP_SOFT_SHUTDOWN_MASK
#define USB_CTRL_SETUP_SCB1_EN_MASK
#define USB_CTRL_SETUP_SCB2_EN_MASK
#define USB_CTRL_SETUP_tca_drv_sel_MASK
#define USB_CTRL_SETUP_STRAP_IPP_SEL_MASK
#define USB_CTRL_USB_PM
#define USB_CTRL_USB_PM_XHC_S2_CLK_SWITCH_EN_MASK
#define USB_CTRL_USB_PM_XHC_PME_EN_MASK
#define USB_CTRL_USB_PM_XHC_SOFT_RESETB_MASK
#define USB_CTRL_USB_PM_BDC_SOFT_RESETB_MASK
#define USB_CTRL_USB_PM_SOFT_RESET_MASK
#define USB_CTRL_USB_PM_USB_PWRDN_MASK
#define USB_CTRL_USB_PM_STATUS
#define USB_CTRL_USB_DEVICE_CTL1
#define USB_CTRL_USB_DEVICE_CTL1_PORT_MODE_MASK
#define USB_CTRL_TEST_PORT_CTL
#define USB_CTRL_TEST_PORT_CTL_TPOUT_SEL_MASK
#define USB_CTRL_TEST_PORT_CTL_TPOUT_SEL_PME_GEN_MASK
#define USB_CTRL_TP_DIAG1
#define USB_CTLR_TP_DIAG1_wake_MASK
#define USB_CTRL_CTLR_CSHCR
#define USB_CTRL_CTLR_CSHCR_ctl_pme_en_MASK
#define USB_CTRL_P0_U2PHY_CFG1
#define USB_CTRL_P0_U2PHY_CFG1_COMMONONN_MASK

/* Register definitions for the USB_PHY block in 7211b0 */
#define USB_PHY_PLL_CTL
#define USB_PHY_PLL_CTL_PLL_SUSPEND_MASK
#define USB_PHY_PLL_CTL_PLL_RESETB_MASK
#define USB_PHY_PLL_LDO_CTL
#define USB_PHY_PLL_LDO_CTL_AFE_BG_PWRDWNB_MASK
#define USB_PHY_PLL_LDO_CTL_AFE_LDO_PWRDWNB_MASK
#define USB_PHY_PLL_LDO_CTL_AFE_CORERDY_MASK
#define USB_PHY_UTMI_CTL_1
#define USB_PHY_UTMI_CTL_1_PHY_MODE_MASK
#define USB_PHY_UTMI_CTL_1_PHY_MODE_SHIFT
#define USB_PHY_UTMI_CTL_1_POWER_UP_FSM_EN_MASK
#define USB_PHY_IDDQ
#define USB_PHY_IDDQ_phy_iddq_MASK
#define USB_PHY_STATUS
#define USB_PHY_STATUS_pll_lock_MASK

/* Register definitions for the MDIO registers in the DWC2 block of
 * the 7211b0.
 * NOTE: The PHY's MDIO registers are only accessible through the
 * legacy DesignWare USB controller even though it's not being used.
 */
#define USB_GMDIOCSR
#define USB_GMDIOGEN

/* Register definitions for the BDC EC block in 7211b0 */
#define BDC_EC_AXIRDA
#define BDC_EC_AXIRDA_RTS_MASK
#define BDC_EC_AXIRDA_RTS_SHIFT

#define USB_XHCI_GBL_GUSB2PHYCFG
#define USB_XHCI_GBL_GUSB2PHYCFG_U2_FREECLK_EXISTS_MASK

static void usb_mdio_write_7211b0(struct brcm_usb_init_params *params,
				  uint8_t addr, uint16_t data)
{}

static uint16_t __maybe_unused usb_mdio_read_7211b0(
	struct brcm_usb_init_params *params, uint8_t addr)
{}

static void usb2_eye_fix_7211b0(struct brcm_usb_init_params *params)
{}

static void xhci_soft_reset(struct brcm_usb_init_params *params,
			int on_off)
{}

static void usb_init_ipp(struct brcm_usb_init_params *params)
{}

static void syscon_piarbctl_init(struct regmap *rmap)
{}

static void usb_init_common(struct brcm_usb_init_params *params)
{}

static void usb_wake_enable_7211b0(struct brcm_usb_init_params *params,
				   bool enable)
{}

static void usb_wake_enable_7216(struct brcm_usb_init_params *params,
				 bool enable)
{}

static void usb_init_common_7211b0(struct brcm_usb_init_params *params)
{}

static void usb_init_common_7216(struct brcm_usb_init_params *params)
{}

static void usb_init_xhci(struct brcm_usb_init_params *params)
{}

static void usb_uninit_common_7216(struct brcm_usb_init_params *params)
{}

static void usb_uninit_common_7211b0(struct brcm_usb_init_params *params)
{}

static void usb_uninit_xhci(struct brcm_usb_init_params *params)
{}

static int usb_get_dual_select(struct brcm_usb_init_params *params)
{}

static void usb_set_dual_select(struct brcm_usb_init_params *params)
{}

static const struct brcm_usb_init_ops bcm7216_ops =;

static const struct brcm_usb_init_ops bcm7211b0_ops =;

void brcm_usb_dvr_init_7216(struct brcm_usb_init_params *params)
{}

void brcm_usb_dvr_init_7211b0(struct brcm_usb_init_params *params)
{}