sdhci.c (222059a0fccf4af3be776fe35a5ea2d6a68f9a0b) | sdhci.c (3b830790151ff231531ef2595793e387dd154efb) |
---|---|
1/* 2 * SD Association Host Standard Specification v2.0 controller emulation 3 * 4 * Datasheet: PartA2_SD_Host_Controller_Simplified_Specification_Ver2.00.pdf 5 * 6 * Copyright (c) 2011 Samsung Electronics Co., Ltd. 7 * Mitsyanko Igor <i.mitsyanko@samsung.com> 8 * Peter A.G. Crosthwaite <peter.crosthwaite@petalogix.com> --- 1368 unchanged lines hidden (view full) --- 1377/* --- qdev common --- */ 1378 1379void sdhci_initfn(SDHCIState *s) 1380{ 1381 qbus_init(&s->sdbus, sizeof(s->sdbus), TYPE_SDHCI_BUS, DEVICE(s), "sd-bus"); 1382 1383 s->insert_timer = timer_new_ns(QEMU_CLOCK_VIRTUAL, sdhci_raise_insertion_irq, s); 1384 s->transfer_timer = timer_new_ns(QEMU_CLOCK_VIRTUAL, sdhci_data_transfer, s); | 1/* 2 * SD Association Host Standard Specification v2.0 controller emulation 3 * 4 * Datasheet: PartA2_SD_Host_Controller_Simplified_Specification_Ver2.00.pdf 5 * 6 * Copyright (c) 2011 Samsung Electronics Co., Ltd. 7 * Mitsyanko Igor <i.mitsyanko@samsung.com> 8 * Peter A.G. Crosthwaite <peter.crosthwaite@petalogix.com> --- 1368 unchanged lines hidden (view full) --- 1377/* --- qdev common --- */ 1378 1379void sdhci_initfn(SDHCIState *s) 1380{ 1381 qbus_init(&s->sdbus, sizeof(s->sdbus), TYPE_SDHCI_BUS, DEVICE(s), "sd-bus"); 1382 1383 s->insert_timer = timer_new_ns(QEMU_CLOCK_VIRTUAL, sdhci_raise_insertion_irq, s); 1384 s->transfer_timer = timer_new_ns(QEMU_CLOCK_VIRTUAL, sdhci_data_transfer, s); |
1385 1386 s->io_ops = &sdhci_mmio_le_ops; |
|
1385} 1386 1387void sdhci_uninitfn(SDHCIState *s) 1388{ 1389 timer_free(s->insert_timer); 1390 timer_free(s->transfer_timer); 1391 1392 g_free(s->fifo_buffer); 1393 s->fifo_buffer = NULL; 1394} 1395 1396void sdhci_common_realize(SDHCIState *s, Error **errp) 1397{ 1398 ERRP_GUARD(); 1399 1400 switch (s->endianness) { 1401 case DEVICE_LITTLE_ENDIAN: | 1387} 1388 1389void sdhci_uninitfn(SDHCIState *s) 1390{ 1391 timer_free(s->insert_timer); 1392 timer_free(s->transfer_timer); 1393 1394 g_free(s->fifo_buffer); 1395 s->fifo_buffer = NULL; 1396} 1397 1398void sdhci_common_realize(SDHCIState *s, Error **errp) 1399{ 1400 ERRP_GUARD(); 1401 1402 switch (s->endianness) { 1403 case DEVICE_LITTLE_ENDIAN: |
1402 s->io_ops = &sdhci_mmio_le_ops; | 1404 /* s->io_ops is little endian by default */ |
1403 break; 1404 case DEVICE_BIG_ENDIAN: | 1405 break; 1406 case DEVICE_BIG_ENDIAN: |
1407 if (s->io_ops != &sdhci_mmio_le_ops) { 1408 error_setg(errp, "SD controller doesn't support big endianness"); 1409 return; 1410 } |
|
1405 s->io_ops = &sdhci_mmio_be_ops; 1406 break; 1407 default: 1408 error_setg(errp, "Incorrect endianness"); 1409 return; 1410 } 1411 1412 sdhci_init_readonly_registers(s, errp); --- 528 unchanged lines hidden --- | 1411 s->io_ops = &sdhci_mmio_be_ops; 1412 break; 1413 default: 1414 error_setg(errp, "Incorrect endianness"); 1415 return; 1416 } 1417 1418 sdhci_init_readonly_registers(s, errp); --- 528 unchanged lines hidden --- |