Message ID | 20210810041059.553384-1-linux@roeck-us.net (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | fsl-imx6ul: add SAI1/2/3 and ASRC as unimplemented devices | expand |
Hi Guenter, On 8/10/21 6:10 AM, Guenter Roeck wrote: > Define SAI1/2/3 and ASRC as unimplemented devices to avoid random > Linux kernel crashes. Relevant dmesg output could be useful. > Signed-off-by: Guenter Roeck <linux@roeck-us.net> > --- > hw/arm/fsl-imx6ul.c | 12 ++++++++++++ > 1 file changed, 12 insertions(+) > > diff --git a/hw/arm/fsl-imx6ul.c b/hw/arm/fsl-imx6ul.c > index e0128d7316..48b60eb3ce 100644 > --- a/hw/arm/fsl-imx6ul.c > +++ b/hw/arm/fsl-imx6ul.c > @@ -534,6 +534,13 @@ static void fsl_imx6ul_realize(DeviceState *dev, Error **errp) > */ > create_unimplemented_device("sdma", FSL_IMX6UL_SDMA_ADDR, 0x4000); > > + /* > + * SAI "Audio SSI (Synchronous Serial Interface)" > + */ > + create_unimplemented_device("sai1", FSL_IMX6UL_SAI1_ADDR, 0x4000); > + create_unimplemented_device("sai2", FSL_IMX6UL_SAI2_ADDR, 0x4000); > + create_unimplemented_device("sai3", FSL_IMX6UL_SAI3_ADDR, 0x4000); Hmm I see these named SSI[123] in the datasheet. The Synchronous Serial Interface (SSI) is a full-duplex serial port that allows communication with external devices using a variety of serial protocols. The SSI supports a wide variety of protocols (SSI normal, SSI network, I2S, and AC-97), bit depths (up to 24 bits per word), and clock/frame sync options. The three SSIs may support three audio streams (possibly at different sample rates) simultaneously. SSI1, SSI2 and SSI3 are located on the Shared Peripheral Bus. Since the SDMA can directly access SSI1...SSI3 (being on the Shared Peripheral Bus), they can be used for high-bandwidth data transfers in order to optimize bus bandwidth consumption. Since QEMU models SPI devices in hw/ssi/, having the devices named "sai*" is OK. > + > /* > * PWM > */ > @@ -542,6 +549,11 @@ static void fsl_imx6ul_realize(DeviceState *dev, Error **errp) > create_unimplemented_device("pwm3", FSL_IMX6UL_PWM3_ADDR, 0x4000); > create_unimplemented_device("pwm4", FSL_IMX6UL_PWM4_ADDR, 0x4000); > > + /* > + * ASRC "Audio ASRC (asynchronous sample rate converter)" Preferably updating the descriptions: Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> > + */ > + create_unimplemented_device("asrc", FSL_IMX6UL_ASRC_ADDR, 0x4000); > + > /* > * CAN > */ >
diff --git a/hw/arm/fsl-imx6ul.c b/hw/arm/fsl-imx6ul.c index e0128d7316..48b60eb3ce 100644 --- a/hw/arm/fsl-imx6ul.c +++ b/hw/arm/fsl-imx6ul.c @@ -534,6 +534,13 @@ static void fsl_imx6ul_realize(DeviceState *dev, Error **errp) */ create_unimplemented_device("sdma", FSL_IMX6UL_SDMA_ADDR, 0x4000); + /* + * SAI + */ + create_unimplemented_device("sai1", FSL_IMX6UL_SAI1_ADDR, 0x4000); + create_unimplemented_device("sai2", FSL_IMX6UL_SAI2_ADDR, 0x4000); + create_unimplemented_device("sai3", FSL_IMX6UL_SAI3_ADDR, 0x4000); + /* * PWM */ @@ -542,6 +549,11 @@ static void fsl_imx6ul_realize(DeviceState *dev, Error **errp) create_unimplemented_device("pwm3", FSL_IMX6UL_PWM3_ADDR, 0x4000); create_unimplemented_device("pwm4", FSL_IMX6UL_PWM4_ADDR, 0x4000); + /* + * ASRC + */ + create_unimplemented_device("asrc", FSL_IMX6UL_ASRC_ADDR, 0x4000); + /* * CAN */
Define SAI1/2/3 and ASRC as unimplemented devices to avoid random Linux kernel crashes. Signed-off-by: Guenter Roeck <linux@roeck-us.net> --- hw/arm/fsl-imx6ul.c | 12 ++++++++++++ 1 file changed, 12 insertions(+)