From owner-svn-soc-all@FreeBSD.ORG Tue Jul 31 15:47:53 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id 2CD85106564A for ; Tue, 31 Jul 2012 15:47:51 +0000 (UTC) (envelope-from aleek@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Tue, 31 Jul 2012 15:47:51 +0000 Date: Tue, 31 Jul 2012 15:47:51 +0000 From: aleek@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120731154751.2CD85106564A@hub.freebsd.org> Cc: Subject: socsvn commit: r239956 - in soc2012/aleek/beaglexm-armv6/sys: arm/conf arm/ti arm/ti/am37x arm/ti/usb boot/fdt/dts X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 31 Jul 2012 15:47:53 -0000 Author: aleek Date: Tue Jul 31 15:47:50 2012 New Revision: 239956 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=239956 Log: cleanup of ti_gpio and ti_ehci driver. Added i2c to the board Modified: soc2012/aleek/beaglexm-armv6/sys/arm/conf/BEAGLEBOARD-XM soc2012/aleek/beaglexm-armv6/sys/arm/ti/am37x/am37x_prcm.c soc2012/aleek/beaglexm-armv6/sys/arm/ti/am37x/am37x_scm_padconf.c soc2012/aleek/beaglexm-armv6/sys/arm/ti/ti_gpio.c soc2012/aleek/beaglexm-armv6/sys/arm/ti/ti_i2c.c soc2012/aleek/beaglexm-armv6/sys/arm/ti/ti_machdep.c soc2012/aleek/beaglexm-armv6/sys/arm/ti/usb/omap_ehci.c soc2012/aleek/beaglexm-armv6/sys/boot/fdt/dts/beagleboardxm.dts Modified: soc2012/aleek/beaglexm-armv6/sys/arm/conf/BEAGLEBOARD-XM ============================================================================== --- soc2012/aleek/beaglexm-armv6/sys/arm/conf/BEAGLEBOARD-XM Tue Jul 31 13:11:20 2012 (r239955) +++ soc2012/aleek/beaglexm-armv6/sys/arm/conf/BEAGLEBOARD-XM Tue Jul 31 15:47:50 2012 (r239956) @@ -48,19 +48,19 @@ options PREEMPTION # Debugging -#makeoptions DEBUG=-g #Build kernel with gdb(1) debug symbols +makeoptions DEBUG=-g #Build kernel with gdb(1) debug symbols #makeoptions WERROR="-Werror" #makeoptions WERROR="" options BREAK_TO_DEBUGGER -#options VERBOSE_SYSINIT #Enable verbose sysinit messages +#options VERBOSE_SYSINIT #Enable verbose sysinit messages options KDB options DDB #Enable the kernel debugger -options INVARIANTS #Enable calls of extra sanity checking -options INVARIANT_SUPPORT #Extra sanity checks of internal structures, required by INVARIANTS -#options WITNESS #Enable checks to detect deadlocks and cycles -#options WITNESS_SKIPSPIN #Don't run witness on spinlocks for speed -options DIAGNOSTIC -options DEBUG +#options INVARIANTS #Enable calls of extra sanity checking +#options INVARIANT_SUPPORT #Extra sanity checks of internal structures, required by INVARIANTS +#options WITNESS #Enable checks to detect deadlocks and cycles +#options WITNESS_SKIPSPIN #Don't run witness on spinlocks for speed +#options DIAGNOSTIC +#options DEBUG # NFS support @@ -94,9 +94,9 @@ device random # Entropy device # I2C support -#device iicbus -#device iic -#device ti_i2c +device iicbus +device iic +device ti_i2c #device am37x_pmic # AM335x Power Management IC (TPC65217) # GPIO @@ -115,14 +115,13 @@ # Ethernet device loop -#device ether -#device mii -#device smcphy +device ether +device mii +device smcphy # USB ethernet support, requires miibus -#device miibus -#device cpsw -#device axe # ASIX Electronics USB Ethernet +device miibus +device smsc # Flattened Device Tree options FDT Modified: soc2012/aleek/beaglexm-armv6/sys/arm/ti/am37x/am37x_prcm.c ============================================================================== --- soc2012/aleek/beaglexm-armv6/sys/arm/ti/am37x/am37x_prcm.c Tue Jul 31 13:11:20 2012 (r239955) +++ soc2012/aleek/beaglexm-armv6/sys/arm/ti/am37x/am37x_prcm.c Tue Jul 31 15:47:50 2012 (r239956) @@ -312,13 +312,12 @@ OMAP3_GENERIC_CLOCK_DEV(GPIO4_CLK), OMAP3_GENERIC_CLOCK_DEV(GPIO5_CLK), OMAP3_GENERIC_CLOCK_DEV(GPIO6_CLK), -#if 0 + /* I2C */ OMAP3_GENERIC_CLOCK_DEV(I2C1_CLK), OMAP3_GENERIC_CLOCK_DEV(I2C2_CLK), OMAP3_GENERIC_CLOCK_DEV(I2C3_CLK), -#endif /* sDMA */ OMAP3_ALWAYSON_CLOCK_DEV(SDMA_CLK), { INVALID_CLK_IDENT, NULL, NULL, NULL, NULL } @@ -409,7 +408,6 @@ OMAP3_GENERIC_CLOCK_DETAILS(USBHSHOST_CLK, -1, USBHOST_CM_OFFSET, 0x00, 0x10, 0x20, 1), -#if 0 /* GPIO modules */ OMAP3_GENERIC_CLOCK_DETAILS(GPIO1_CLK, -1, WKUP_CM_OFFSET, 0x00, 0x10, 0x20, 3), @@ -431,7 +429,7 @@ 0x00, 0x10, 0x20, 16), OMAP3_GENERIC_CLOCK_DETAILS(I2C3_CLK, -1, CORE_CM_OFFSET, 0x00, 0x10, 0x20, 17), -#endif + { INVALID_CLK_IDENT, 0, 0, 0, 0 }, }; Modified: soc2012/aleek/beaglexm-armv6/sys/arm/ti/am37x/am37x_scm_padconf.c ============================================================================== --- soc2012/aleek/beaglexm-armv6/sys/arm/ti/am37x/am37x_scm_padconf.c Tue Jul 31 13:11:20 2012 (r239955) +++ soc2012/aleek/beaglexm-armv6/sys/arm/ti/am37x/am37x_scm_padconf.c Tue Jul 31 15:47:50 2012 (r239956) @@ -193,14 +193,19 @@ _PIN(0x01b8, "v26", 191, 4, "hsusb0_data7", NULL, NULL, NULL, "gpio_191", NULL, NULL, "safe_mode"), _PIN(0x01a6, "r28", 122, 4, "hsusb0_dir", NULL, NULL, NULL, "gpio_122", NULL, NULL, "safe_mode"), _PIN(0x01a8, "t26", 124, 4, "hsusb0_nxt", NULL, NULL, NULL, "gpio_124", NULL, NULL, "safe_mode"), - _PIN(0x01a4, "t25", 121, 4, "hsusb0_stp", NULL, NULL, NULL, "gpio_121", NULL, NULL, "safe_mode"), - _PIN(0x01be, "af15", 168, 4, "i2c2_scl", NULL, NULL, NULL, "gpio_168", NULL, NULL, "safe_mode"), - _PIN(0x01c0, "ae15", 183, 4, "i2c2_sda", NULL, NULL, NULL, "gpio_183", NULL, NULL, "safe_mode"), - _PIN(0x01c2, "af14", 184, 4, "i2c3_scl", NULL, NULL, NULL, "gpio_184", NULL, NULL, "safe_mode"), - _PIN(0x01c4, "ag14", 185, 4, "i2c3_sda", NULL, NULL, NULL, "gpio_185", NULL, NULL, "safe_mode"), - _PIN(0x0a00, "ad26", 0, 0, "i2c4_scl", "sys_nvmode1", NULL, NULL, NULL, NULL, NULL, "safe_mode"), - _PIN(0x0a02, "ae26", 0, 0, "i2c4_sda", "sys_nvmode2", NULL, NULL, NULL, NULL, NULL, "safe_mode"), - _PIN(0x0a24, "aa11", 11, 4, "jtag_emu0", NULL, NULL, NULL, "gpio_11", NULL, NULL, "safe_mode"), + + /* yes, this beautiful tabbing was because I am a little bit pedantic :D aleek */ + _PIN(0x01a4, "t25", 121, 4, "hsusb0_stp", NULL, NULL, NULL, "gpio_121", NULL, NULL, "safe_mode"), + _PIN(0x01ba, "ic11", 191, 4, "i2c1_scl", NULL, NULL, NULL, NULL, NULL, NULL, NULL ), + _PIN(0x01bc, "ic12", 191, 4, "i2c1_sda", NULL, NULL, NULL, NULL, NULL, NULL, NULL ), + _PIN(0x01be, "af15", 168, 4, "i2c2_scl", NULL, NULL, NULL, "gpio_168", NULL, NULL, "safe_mode"), + _PIN(0x01c0, "ae15", 183, 4, "i2c2_sda", NULL, NULL, NULL, "gpio_183", NULL, NULL, "safe_mode"), + _PIN(0x01c2, "af14", 184, 4, "i2c3_scl", NULL, NULL, NULL, "gpio_184", NULL, NULL, "safe_mode"), + _PIN(0x01c4, "ag14", 185, 4, "i2c3_sda", NULL, NULL, NULL, "gpio_185", NULL, NULL, "safe_mode"), + _PIN(0x0a00, "ad26", 0, 0, "i2c4_scl", "sys_nvmode1", NULL, NULL, NULL, NULL, NULL, "safe_mode"), + _PIN(0x0a02, "ae26", 0, 0, "i2c4_sda", "sys_nvmode2", NULL, NULL, NULL, NULL, NULL, "safe_mode"), + _PIN(0x0a24, "aa11", 11, 4, "jtag_emu0", NULL, NULL, NULL, "gpio_11", NULL, NULL, "safe_mode"), + _PIN(0x0a26, "aa10", 31, 4, "jtag_emu1", NULL, NULL, NULL, "gpio_31", NULL, NULL, "safe_mode"), _PIN(0x018c, "y21", 156, 4, "mcbsp1_clkr", "mcspi4_clk", NULL, NULL, "gpio_156", NULL, NULL, "safe_mode"), _PIN(0x0198, "w21", 162, 4, "mcbsp1_clkx", NULL, "mcbsp3_clkx", NULL, "gpio_162", NULL, NULL, "safe_mode"), Modified: soc2012/aleek/beaglexm-armv6/sys/arm/ti/ti_gpio.c ============================================================================== --- soc2012/aleek/beaglexm-armv6/sys/arm/ti/ti_gpio.c Tue Jul 31 13:11:20 2012 (r239955) +++ soc2012/aleek/beaglexm-armv6/sys/arm/ti/ti_gpio.c Tue Jul 31 15:47:50 2012 (r239956) @@ -448,10 +448,7 @@ return (EINVAL); - device_printf( sc->sc_dev, "locking mutex\n" ); - device_printf( sc->sc_dev, "adres mutexa: %p\n", &sc->sc_mtx ); TI_GPIO_LOCK(sc); - device_printf( sc->sc_dev, "mutex locked!!\n" ); /* Sanity check the pin number is valid */ if ((bank > MAX_GPIO_BANKS) || (sc->sc_mem_res[bank] == NULL)) { @@ -668,10 +665,8 @@ sc->sc_dev = dev; - device_printf(dev, "Inicjalizacja mutexa gpio\n"); TI_GPIO_LOCK_INIT(sc); - device_printf( dev, "Address do softc struct: %p\n", sc ); /* There are up to 6 different GPIO register sets located in different Modified: soc2012/aleek/beaglexm-armv6/sys/arm/ti/ti_i2c.c ============================================================================== --- soc2012/aleek/beaglexm-armv6/sys/arm/ti/ti_i2c.c Tue Jul 31 13:11:20 2012 (r239955) +++ soc2012/aleek/beaglexm-armv6/sys/arm/ti/ti_i2c.c Tue Jul 31 15:47:50 2012 (r239956) @@ -116,6 +116,10 @@ { IIC_SLOW, 100000, 3, 53, 55, 0, 0}, { IIC_FAST, 400000, 3, 8, 10, 0, 0}, { IIC_FASTEST, 400000, 3, 8, 10, 0, 0}, /* This might be higher */ +#elif defined(SOC_OMAP3) || defined(SOC_TI_AM37X) + { IIC_SLOW, 100000, 23, 13, 15, 0, 0}, + { IIC_FAST, 400000, 9, 5, 7, 0, 0}, + { IIC_FASTEST, 3400000, 4, 113, 115, 7, 10}, #else #error "TI I2C driver is not supported on this SoC" #endif Modified: soc2012/aleek/beaglexm-armv6/sys/arm/ti/ti_machdep.c ============================================================================== --- soc2012/aleek/beaglexm-armv6/sys/arm/ti/ti_machdep.c Tue Jul 31 13:11:20 2012 (r239955) +++ soc2012/aleek/beaglexm-armv6/sys/arm/ti/ti_machdep.c Tue Jul 31 15:47:50 2012 (r239956) @@ -527,8 +527,8 @@ DOMAIN_CLIENT); pmap_pa = kernel_l1pt.pv_pa; - arm_early_puts( "Dumping memory layout!\n" ); - dump_l1pagetable( kernel_l1pt.pv_pa ); + //arm_early_puts( "Dumping memory layout!\n" ); + //dump_l1pagetable( kernel_l1pt.pv_pa ); setttb(kernel_l1pt.pv_pa); cpu_tlb_flushID(); Modified: soc2012/aleek/beaglexm-armv6/sys/arm/ti/usb/omap_ehci.c ============================================================================== --- soc2012/aleek/beaglexm-armv6/sys/arm/ti/usb/omap_ehci.c Tue Jul 31 13:11:20 2012 (r239955) +++ soc2012/aleek/beaglexm-armv6/sys/arm/ti/usb/omap_ehci.c Tue Jul 31 15:47:50 2012 (r239956) @@ -125,7 +125,6 @@ int port_mode[3]; int phy_reset[3]; int reset_gpio_pin[3]; - struct mtx mtx; }; static device_attach_t omap_ehci_attach; @@ -350,36 +349,28 @@ int i; device_printf(isc->sc_dev, "Starting TI EHCI USB Controller\n"); - device_printf( isc->sc_dev, "%s:%d\n", __FUNCTION__, __LINE__ ); /* Enable Clocks for high speed USBHOST */ ti_prcm_clk_enable(USBHSHOST_CLK); - device_printf( isc->sc_dev, "%s:%d\n", __FUNCTION__, __LINE__ ); /* Hold the PHY in reset while configuring */ for (int i = 0; i < 3; i++) { if (isc->phy_reset[i]) { - device_printf( isc->sc_dev, "%s:%d\n", __FUNCTION__, __LINE__ ); /* Configure the GPIO to drive low (hold in reset) */ if ((isc->reset_gpio_pin[i] != -1) && (isc->sc_gpio_dev != NULL)) { - device_printf( isc->sc_dev, "%s:%d\n", __FUNCTION__, __LINE__ ); GPIO_PIN_SETFLAGS(isc->sc_gpio_dev, isc->reset_gpio_pin[i], GPIO_PIN_OUTPUT); - device_printf( isc->sc_dev, "%s:%d\n", __FUNCTION__, __LINE__ ); GPIO_PIN_SET(isc->sc_gpio_dev, isc->reset_gpio_pin[i], GPIO_PIN_LOW); - device_printf( isc->sc_dev, "%s:%d\n", __FUNCTION__, __LINE__ ); reset_performed = 1; } } } - device_printf( isc->sc_dev, "%s:%d\n", __FUNCTION__, __LINE__ ); /* Hold the PHY in RESET for enough time till DIR is high */ if (reset_performed) DELAY(10); - device_printf( isc->sc_dev, "%s:%d\n", __FUNCTION__, __LINE__ ); /* Read the UHH revision */ isc->ehci_rev = omap_uhh_read_4(isc, OMAP_USBHOST_UHH_REVISION); @@ -788,13 +779,6 @@ int len, tuple_size; int i; - memset( &isc->mtx, 0, sizeof( struct mtx) ); - - device_printf( dev, "%s:%d\n", __FUNCTION__, __LINE__ ); - - mtx_init(&isc->mtx, "habababa", "ti_ehci_testowy", MTX_DEF); - device_printf( dev, "%s:%d\n", __FUNCTION__, __LINE__ ); - /* initialise some bus fields */ sc->sc_bus.parent = dev; sc->sc_bus.devices = sc->sc_devices; @@ -803,17 +787,11 @@ /* save the device */ isc->sc_dev = dev; - device_printf( dev, "%s:%d\n", __FUNCTION__, __LINE__ ); /* get all DMA memory */ if (usb_bus_mem_alloc_all(&sc->sc_bus, USB_GET_DMA_TAG(dev), &ehci_iterate_hw_softc)) { return (ENOMEM); } - device_printf( dev, "%s:%d\n", __FUNCTION__, __LINE__ ); - mtx_lock( &isc->mtx ); - device_printf( dev, "%s:%d\n", __FUNCTION__, __LINE__ ); - mtx_unlock( &isc->mtx ); - device_printf( dev, "%s:%d\n", __FUNCTION__, __LINE__ ); /* When the EHCI driver is added to the tree it is expected that 3 * memory resources and 1 interrupt resource is assigned. The memory * resources should be: @@ -824,7 +802,6 @@ * The interrupt resource is just the single interupt for the controller. */ - device_printf( dev, "%s:%d\n", __FUNCTION__, __LINE__ ); /* Allocate resource for the EHCI register set */ rid = 0; sc->sc_io_res = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &rid, RF_ACTIVE); @@ -832,7 +809,6 @@ device_printf(dev, "Error: Could not map EHCI memory\n"); goto error; } - device_printf( dev, "%s:%d\n", __FUNCTION__, __LINE__ ); /* Request an interrupt resource */ rid = 0; sc->sc_irq_res = bus_alloc_resource_any(dev, SYS_RES_IRQ, &rid, RF_ACTIVE); @@ -840,7 +816,6 @@ device_printf(dev, "Error: could not allocate irq\n"); goto error; } - device_printf( dev, "%s:%d\n", __FUNCTION__, __LINE__ ); /* Allocate resource for the UHH register set */ rid = 1; @@ -849,7 +824,6 @@ device_printf(dev, "Error: Could not map UHH memory\n"); goto error; } - device_printf( dev, "%s:%d\n", __FUNCTION__, __LINE__ ); /* Allocate resource for the TLL register set */ rid = 2; isc->tll_mem_res = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &rid, RF_ACTIVE); @@ -857,7 +831,6 @@ device_printf(dev, "Error: Could not map TLL memory\n"); goto error; } - device_printf( dev, "%s:%d\n", __FUNCTION__, __LINE__ ); /* Add this device as a child of the USBus device */ sc->sc_bus.bdev = device_add_child(dev, "usbus", -1); @@ -865,7 +838,6 @@ device_printf(dev, "Error: could not add USB device\n"); goto error; } - device_printf( dev, "%s:%d\n", __FUNCTION__, __LINE__ ); device_set_ivars(sc->sc_bus.bdev, &sc->sc_bus); device_set_desc(sc->sc_bus.bdev, OMAP_EHCI_HC_DEVSTR); @@ -889,7 +861,6 @@ isc->reset_gpio_pin[i] = -1; } - device_printf( dev, "%s:%d\n", __FUNCTION__, __LINE__ ); tuple_size = sizeof(pcell_t) * 3; node = ofw_bus_get_node(dev); @@ -910,7 +881,6 @@ } } - device_printf( dev, "%s:%d\n", __FUNCTION__, __LINE__ ); /* Initialise the ECHI registers */ err = omap_ehci_init(isc); if (err) { @@ -919,14 +889,12 @@ } - device_printf( dev, "%s:%d\n", __FUNCTION__, __LINE__ ); /* Set the tag and size of the register set in the EHCI context */ sc->sc_io_hdl = rman_get_bushandle(sc->sc_io_res); sc->sc_io_tag = rman_get_bustag(sc->sc_io_res); sc->sc_io_size = rman_get_size(sc->sc_io_res); - device_printf( dev, "%s:%d\n", __FUNCTION__, __LINE__ ); /* Setup the interrupt */ err = bus_setup_intr(dev, sc->sc_irq_res, INTR_TYPE_BIO | INTR_MPSAFE, NULL, (driver_intr_t *)ehci_interrupt, sc, &sc->sc_intr_hdl); @@ -936,11 +904,9 @@ goto error; } - device_printf( dev, "%s:%d\n", __FUNCTION__, __LINE__ ); /* Finally we are ready to kick off the ECHI host controller */ err = ehci_init(sc); - device_printf( dev, "%s:%d\n", __FUNCTION__, __LINE__ ); if (err == 0) { err = device_probe_and_attach(sc->sc_bus.bdev); } Modified: soc2012/aleek/beaglexm-armv6/sys/boot/fdt/dts/beagleboardxm.dts ============================================================================== --- soc2012/aleek/beaglexm-armv6/sys/boot/fdt/dts/beagleboardxm.dts Tue Jul 31 13:11:20 2012 (r239955) +++ soc2012/aleek/beaglexm-armv6/sys/boot/fdt/dts/beagleboardxm.dts Tue Jul 31 15:47:50 2012 (r239956) @@ -94,7 +94,11 @@ "ad25", "gpio_147", "output", "ae7", "hsusb2_clk", "output", - "r8", "gpio_56", "output"; + "r8", "gpio_56", "output", + + /* i2c */ + "ic11", "i2c1_scl", "output", + "ic12", "i2c1_sda", "output"; }; @@ -173,7 +177,7 @@ interrupts = < 12 13 14 15 >; interrupt-parent = <&AINTC>; }; -/* + mmchs@4809c000 { compatible = "ti,mmchs"; reg =<0x4809c000 0x1000 >; @@ -181,20 +185,20 @@ interrupt-parent = <&AINTC>; mmchs-device-id = <1>; }; -*/ - i2c0: i2c@48070000 { + + i2c1: i2c@48070000 { #address-cells = <1>; #size-cells = <0>; compatible = "ti,i2c"; reg =< 0x48070000 0x1000 >; interrupts = <56>; interrupt-parent = <&AINTC>; - i2c-device-id = <0>; - pmic@24 { + i2c-device-id = <1>; + /*pmic@24 { compatible = "ti,am37x-pmic"; reg = <0x24>; - }; + };*/ }; ehci@48064800 { @@ -211,7 +215,7 @@ * gpio_pin - GPIO pin that is used to perform reset */ phy-config = < 1 0 0 - 1 1 56 + 1 1 147 0 0 0>; reg = < 0x48064800 0x400 /* EHCI */ 0x48064000 0x400 /* UHH */