Lines Matching full:i2s

3 // loongson_i2s_pci.c -- Loongson I2S controller driver
19 #define DRIVER_NAME "loongson-i2s-pci"
81 struct loongson_i2s *i2s; in loongson_i2s_pci_probe() local
89 i2s = devm_kzalloc(dev, sizeof(*i2s), GFP_KERNEL); in loongson_i2s_pci_probe()
90 if (!i2s) in loongson_i2s_pci_probe()
93 i2s->rev_id = pdev->revision; in loongson_i2s_pci_probe()
94 i2s->dev = dev; in loongson_i2s_pci_probe()
95 pci_set_drvdata(pdev, i2s); in loongson_i2s_pci_probe()
97 i2s->reg_base = pcim_iomap_region(pdev, 0, DRIVER_NAME); in loongson_i2s_pci_probe()
98 if (IS_ERR(i2s->reg_base)) { in loongson_i2s_pci_probe()
100 return PTR_ERR(i2s->reg_base); in loongson_i2s_pci_probe()
103 i2s->regmap = devm_regmap_init_mmio(dev, i2s->reg_base, in loongson_i2s_pci_probe()
105 if (IS_ERR(i2s->regmap)) in loongson_i2s_pci_probe()
106 return dev_err_probe(dev, PTR_ERR(i2s->regmap), "regmap_init_mmio failed\n"); in loongson_i2s_pci_probe()
108 tx_data = &i2s->tx_dma_data; in loongson_i2s_pci_probe()
109 rx_data = &i2s->rx_dma_data; in loongson_i2s_pci_probe()
112 tx_data->order_addr = i2s->reg_base + LS_I2S_TX_ORDER; in loongson_i2s_pci_probe()
115 rx_data->order_addr = i2s->reg_base + LS_I2S_RX_ORDER; in loongson_i2s_pci_probe()
125 ret = device_property_read_u32(dev, "clock-frequency", &i2s->clk_rate); in loongson_i2s_pci_probe()
131 if (i2s->rev_id == 1) { in loongson_i2s_pci_probe()
132 regmap_write(i2s->regmap, LS_I2S_CTRL, I2S_CTRL_RESET); in loongson_i2s_pci_probe()
160 MODULE_DESCRIPTION("Loongson I2S Master Mode ASoC Driver");