Lines Matching refs:params

133 #define USB_CTRL_MASK_FAMILY(params, reg, field)			\  argument
134 (params->usb_reg_bits_map[USB_CTRL_##reg##_##field##_SELECTOR])
136 #define USB_CTRL_SET_FAMILY(params, reg, field) \ argument
137 usb_ctrl_set_family(params, USB_CTRL_##reg, \
139 #define USB_CTRL_UNSET_FAMILY(params, reg, field) \ argument
140 usb_ctrl_unset_family(params, USB_CTRL_##reg, \
415 void usb_ctrl_unset_family(struct brcm_usb_init_params *params, in usb_ctrl_unset_family() argument
421 mask = params->usb_reg_bits_map[field]; in usb_ctrl_unset_family()
422 reg = params->ctrl_regs + reg_offset; in usb_ctrl_unset_family()
427 void usb_ctrl_set_family(struct brcm_usb_init_params *params, in usb_ctrl_set_family() argument
433 mask = params->usb_reg_bits_map[field]; in usb_ctrl_set_family()
434 reg = params->ctrl_regs + reg_offset; in usb_ctrl_set_family()
580 static void brcmusb_usb3_pll_54mhz(struct brcm_usb_init_params *params) in brcmusb_usb3_pll_54mhz() argument
584 void __iomem *ctrl_base = params->ctrl_regs; in brcmusb_usb3_pll_54mhz()
597 switch (params->selected_family) { in brcmusb_usb3_pll_54mhz()
607 if (BRCM_REV(params->family_id) < 0x20) in brcmusb_usb3_pll_54mhz()
663 static void brcmusb_usb3_phy_workarounds(struct brcm_usb_init_params *params) in brcmusb_usb3_phy_workarounds() argument
665 void __iomem *ctrl_base = params->ctrl_regs; in brcmusb_usb3_phy_workarounds()
668 brcmusb_usb3_pll_54mhz(params); in brcmusb_usb3_phy_workarounds()
676 static void brcmusb_memc_fix(struct brcm_usb_init_params *params) in brcmusb_memc_fix() argument
680 if (params->selected_family != BRCM_FAMILY_7445D0) in brcmusb_memc_fix()
693 prid = params->product_id & 0xfffff000; in brcmusb_memc_fix()
701 USB_CTRL_UNSET_FAMILY(params, SETUP, SCB2_EN); in brcmusb_memc_fix()
705 static void brcmusb_usb3_otp_fix(struct brcm_usb_init_params *params) in brcmusb_usb3_otp_fix() argument
707 void __iomem *xhci_ec_base = params->xhci_ec_regs; in brcmusb_usb3_otp_fix()
710 if (params->family_id != 0x74371000 || xhci_ec_base == 0) in brcmusb_usb3_otp_fix()
720 USB_CTRL_UNSET(params->ctrl_regs, USB30_CTL1, PHY3_RESETB); in brcmusb_usb3_otp_fix()
721 USB_CTRL_SET(params->ctrl_regs, USB30_CTL1, PHY3_RESETB); in brcmusb_usb3_otp_fix()
724 static void brcmusb_xhci_soft_reset(struct brcm_usb_init_params *params, in brcmusb_xhci_soft_reset() argument
729 if (USB_CTRL_MASK_FAMILY(params, USB_PM, XHC_SOFT_RESETB)) in brcmusb_xhci_soft_reset()
730 USB_CTRL_UNSET_FAMILY(params, USB_PM, XHC_SOFT_RESETB); in brcmusb_xhci_soft_reset()
732 USB_CTRL_UNSET_FAMILY(params, in brcmusb_xhci_soft_reset()
735 if (USB_CTRL_MASK_FAMILY(params, USB_PM, XHC_SOFT_RESETB)) in brcmusb_xhci_soft_reset()
736 USB_CTRL_SET_FAMILY(params, USB_PM, XHC_SOFT_RESETB); in brcmusb_xhci_soft_reset()
738 USB_CTRL_SET_FAMILY(params, USB30_CTL1, in brcmusb_xhci_soft_reset()
751 struct brcm_usb_init_params *params) in brcmusb_get_family_type() argument
759 family = params->family_id & 0xfffffff0; in brcmusb_get_family_type()
760 family_no_major = params->family_id & 0xffffff00; in brcmusb_get_family_type()
778 void brcm_usb_init_ipp(struct brcm_usb_init_params *params) in brcm_usb_init_ipp() argument
780 void __iomem *ctrl = params->ctrl_regs; in brcm_usb_init_ipp()
787 if (USB_CTRL_MASK_FAMILY(params, USB30_CTL1, USB3_IOC)) { in brcm_usb_init_ipp()
788 if (params->ioc) in brcm_usb_init_ipp()
789 USB_CTRL_SET_FAMILY(params, USB30_CTL1, USB3_IOC); in brcm_usb_init_ipp()
790 if (params->ipp == 1) in brcm_usb_init_ipp()
791 USB_CTRL_SET_FAMILY(params, USB30_CTL1, USB3_IPP); in brcm_usb_init_ipp()
796 if (USB_CTRL_MASK_FAMILY(params, SETUP, STRAP_CC_DRD_MODE_ENABLE_SEL)) in brcm_usb_init_ipp()
798 reg &= ~(USB_CTRL_MASK_FAMILY(params, in brcm_usb_init_ipp()
801 if (USB_CTRL_MASK_FAMILY(params, SETUP, STRAP_IPP_SEL)) in brcm_usb_init_ipp()
802 if (params->ipp != 2) in brcm_usb_init_ipp()
804 reg &= ~(USB_CTRL_MASK_FAMILY(params, SETUP, in brcm_usb_init_ipp()
809 if (params->ioc) in brcm_usb_init_ipp()
811 if (params->ipp == 1 && ((reg & USB_CTRL_MASK(SETUP, IPP)) == 0)) in brcm_usb_init_ipp()
823 int brcm_usb_init_get_dual_select(struct brcm_usb_init_params *params) in brcm_usb_init_get_dual_select() argument
825 void __iomem *ctrl = params->ctrl_regs; in brcm_usb_init_get_dual_select()
828 if (USB_CTRL_MASK_FAMILY(params, USB_DEVICE_CTL1, PORT_MODE)) { in brcm_usb_init_get_dual_select()
830 reg &= USB_CTRL_MASK_FAMILY(params, USB_DEVICE_CTL1, in brcm_usb_init_get_dual_select()
836 void brcm_usb_init_set_dual_select(struct brcm_usb_init_params *params, in brcm_usb_init_set_dual_select() argument
839 void __iomem *ctrl = params->ctrl_regs; in brcm_usb_init_set_dual_select()
842 if (USB_CTRL_MASK_FAMILY(params, USB_DEVICE_CTL1, PORT_MODE)) { in brcm_usb_init_set_dual_select()
844 reg &= ~USB_CTRL_MASK_FAMILY(params, USB_DEVICE_CTL1, in brcm_usb_init_set_dual_select()
851 void brcm_usb_init_common(struct brcm_usb_init_params *params) in brcm_usb_init_common() argument
854 void __iomem *ctrl = params->ctrl_regs; in brcm_usb_init_common()
857 if (USB_CTRL_MASK_FAMILY(params, PLL_CTL, PLL_IDDQ_PWRDN)) { in brcm_usb_init_common()
858 USB_CTRL_UNSET_FAMILY(params, PLL_CTL, PLL_IDDQ_PWRDN); in brcm_usb_init_common()
863 if (USB_CTRL_MASK_FAMILY(params, USB_PM, USB_PWRDN)) { in brcm_usb_init_common()
864 USB_CTRL_UNSET_FAMILY(params, USB_PM, USB_PWRDN); in brcm_usb_init_common()
869 if (params->selected_family != BRCM_FAMILY_74371A0 && in brcm_usb_init_common()
870 (BRCM_ID(params->family_id) != 0x7364)) in brcm_usb_init_common()
875 USB_CTRL_SET_FAMILY(params, SETUP, SS_EHCI64BIT_EN); in brcm_usb_init_common()
881 if (params->selected_family == BRCM_FAMILY_7364A0) in brcm_usb_init_common()
883 reg |= USB_CTRL_MASK_FAMILY(params, SETUP, OC3_DISABLE); in brcm_usb_init_common()
892 if (USB_CTRL_MASK_FAMILY(params, SETUP, SCB1_EN)) in brcm_usb_init_common()
893 reg |= USB_CTRL_MASK_FAMILY(params, SETUP, SCB1_EN); in brcm_usb_init_common()
894 if (USB_CTRL_MASK_FAMILY(params, SETUP, SCB2_EN)) in brcm_usb_init_common()
895 reg |= USB_CTRL_MASK_FAMILY(params, SETUP, SCB2_EN); in brcm_usb_init_common()
898 brcmusb_memc_fix(params); in brcm_usb_init_common()
900 if (USB_CTRL_MASK_FAMILY(params, USB_DEVICE_CTL1, PORT_MODE)) { in brcm_usb_init_common()
902 reg &= ~USB_CTRL_MASK_FAMILY(params, USB_DEVICE_CTL1, in brcm_usb_init_common()
904 reg |= params->mode; in brcm_usb_init_common()
907 if (USB_CTRL_MASK_FAMILY(params, USB_PM, BDC_SOFT_RESETB)) { in brcm_usb_init_common()
908 switch (params->mode) { in brcm_usb_init_common()
910 USB_CTRL_UNSET_FAMILY(params, USB_PM, BDC_SOFT_RESETB); in brcm_usb_init_common()
913 USB_CTRL_UNSET_FAMILY(params, USB_PM, BDC_SOFT_RESETB); in brcm_usb_init_common()
914 USB_CTRL_SET_FAMILY(params, USB_PM, BDC_SOFT_RESETB); in brcm_usb_init_common()
918 if (USB_CTRL_MASK_FAMILY(params, SETUP, CC_DRD_MODE_ENABLE)) { in brcm_usb_init_common()
919 if (params->mode == USB_CTLR_MODE_TYPEC_PD) in brcm_usb_init_common()
920 USB_CTRL_SET_FAMILY(params, SETUP, CC_DRD_MODE_ENABLE); in brcm_usb_init_common()
922 USB_CTRL_UNSET_FAMILY(params, SETUP, in brcm_usb_init_common()
927 void brcm_usb_init_eohci(struct brcm_usb_init_params *params) in brcm_usb_init_eohci() argument
930 void __iomem *ctrl = params->ctrl_regs; in brcm_usb_init_eohci()
932 if (USB_CTRL_MASK_FAMILY(params, USB_PM, USB20_HC_RESETB)) in brcm_usb_init_eohci()
933 USB_CTRL_SET_FAMILY(params, USB_PM, USB20_HC_RESETB); in brcm_usb_init_eohci()
935 if (params->selected_family == BRCM_FAMILY_7366C0) in brcm_usb_init_eohci()
945 reg |= USB_CTRL_MASK_FAMILY(params, SETUP, ENDIAN); in brcm_usb_init_eohci()
948 if (params->selected_family == BRCM_FAMILY_7271A0) in brcm_usb_init_eohci()
953 void brcm_usb_init_xhci(struct brcm_usb_init_params *params) in brcm_usb_init_xhci() argument
955 void __iomem *ctrl = params->ctrl_regs; in brcm_usb_init_xhci()
961 if (BRCM_ID(params->family_id) == 0x7366) { in brcm_usb_init_xhci()
976 brcmusb_usb3_phy_workarounds(params); in brcm_usb_init_xhci()
977 brcmusb_xhci_soft_reset(params, 0); in brcm_usb_init_xhci()
978 brcmusb_usb3_otp_fix(params); in brcm_usb_init_xhci()
981 void brcm_usb_uninit_common(struct brcm_usb_init_params *params) in brcm_usb_uninit_common() argument
983 if (USB_CTRL_MASK_FAMILY(params, USB_PM, USB_PWRDN)) in brcm_usb_uninit_common()
984 USB_CTRL_SET_FAMILY(params, USB_PM, USB_PWRDN); in brcm_usb_uninit_common()
986 if (USB_CTRL_MASK_FAMILY(params, PLL_CTL, PLL_IDDQ_PWRDN)) in brcm_usb_uninit_common()
987 USB_CTRL_SET_FAMILY(params, PLL_CTL, PLL_IDDQ_PWRDN); in brcm_usb_uninit_common()
990 void brcm_usb_uninit_eohci(struct brcm_usb_init_params *params) in brcm_usb_uninit_eohci() argument
992 if (USB_CTRL_MASK_FAMILY(params, USB_PM, USB20_HC_RESETB)) in brcm_usb_uninit_eohci()
993 USB_CTRL_UNSET_FAMILY(params, USB_PM, USB20_HC_RESETB); in brcm_usb_uninit_eohci()
996 void brcm_usb_uninit_xhci(struct brcm_usb_init_params *params) in brcm_usb_uninit_xhci() argument
998 brcmusb_xhci_soft_reset(params, 1); in brcm_usb_uninit_xhci()
999 USB_CTRL_SET(params->ctrl_regs, USB30_PCTL, PHY3_IDDQ_OVERRIDE); in brcm_usb_uninit_xhci()
1002 void brcm_usb_set_family_map(struct brcm_usb_init_params *params) in brcm_usb_set_family_map() argument
1006 fam = brcmusb_get_family_type(params); in brcm_usb_set_family_map()
1007 params->selected_family = fam; in brcm_usb_set_family_map()
1008 params->usb_reg_bits_map = in brcm_usb_set_family_map()
1010 params->family_name = family_names[fam]; in brcm_usb_set_family_map()