Files | |
| file | pmhal_clocktree.h |
| This file contains Acyclic Graph Abstract Data Type, it has the graph node API for tree traversal. | |
| file | pmhal_cm.h |
| This file contains the prototypes of the APIs present in the device abstraction layer file of PRCM Clock mode. This also contains some related macros. | |
| file | pmhal_sd.h |
| This file contains the prototypes of the APIs present in the device abstraction layer file of Static Dependency Mangager. | |
| file | pmhal_videopll.h |
| This file contains enumeration declarations for different elements of videopll. This is only for tda2xx. | |
Data Structures | |
| struct | pmhalClockTreeProp |
| Graph container to hold clock tree property. More... | |
| struct | pmhalClockTreeEdgeProp |
| Graph container to hold clock tree edge property. More... | |
| struct | pmhalClockTreeInputEdge |
| Edge stuct that encapsulates a property. More... | |
| struct | pmhalClockTreeOutputEdge |
| List of edges originating from a node. More... | |
| struct | pmhalClockTreeNode |
| Graph node optimized for PM. More... | |
| struct | pmhalClockTree |
| Graph for clocktree structure. More... | |
| struct | pmhalVideopllSelectConfig |
| This shall be used by the APIs to take configuration input from the user. This struct will not be modelled to represent a PLL. This is only for tda2xx. More... | |
| struct | pmhalVideopllModeConfig |
| This shall be used by the APIs to take configuration input from the user. This struct will not be modelled to represent a PLL. This is only for tda2xx. More... | |
| struct | pmhalVideopllConfig |
| This shall be used by the APIs to take configuration input from the user. This structure will not be modelled to represent a PLL. This is only for tda2xx. More... | |
Macros | |
| #define | PMHAL_VIDEOPLL_PLL_GO_DONE (HDMI_PLL_GO_DONE) |
| Video pll Go Completed. | |
| #define | PMHAL_VIDEOPLL_PLL_GO_GO (HDMI_PLL_GO_GO) |
| Video pll Go Initiated. | |
| #define | PMHAL_VIDEOPLL_DSS_CONTROL_DISABLE (CTRL_CORE_DSS_PLL_CONTROL_PLL_VIDEO1_DSS_CONTROL_DISABLE_PLLDISABLED) |
| Video Dss Control Disable. | |
| #define | PMHAL_VIDEOPLL_DSS_CONTROL_ENABLE (CTRL_CORE_DSS_PLL_CONTROL_PLL_VIDEO1_DSS_CONTROL_DISABLE_PLLENABLED) |
| Video Dss Control Enable. | |
| #define | PMHAL_VIDEOPLL_REFSEL_REF_PCLK (HDMI_PLL_CONFIGURATION2_REFSEL_REF_PCLK) |
| PCLK REF Clock Select. | |
| #define | PMHAL_VIDEOPLL_REFSEL_REF_1 (HDMI_PLL_CONFIGURATION2_REFSEL_REF_1) |
| REF1 Clock Select. | |
| #define | PMHAL_VIDEOPLL_REFSEL_REF_2 (HDMI_PLL_CONFIGURATION2_REFSEL_REF_2) |
| REF2 Clock Select. | |
| #define | PMHAL_VIDEOPLL_REFSEL_REF_SYSCLK (HDMI_PLL_CONFIGURATION2_REFSEL_REF_SYSCLK) |
| SYSCLK Clock Select. | |
Typedefs | |
| typedef enum pmhalNodeType | pmhalNodeType_t |
| Clock-tree node types. | |
| typedef uint32_t | pmhalClockTreeNodeId |
| Graph Node-ID type. | |
| typedef pmhalClockTreeNodeId * | pmhalClockTreeNodeIdVec |
| Graph Node-ID type. | |
| typedef const pmhalClockTreeNodeId * | pmhalClockTreeNodeIdCvec |
| Graph Node-ID const vector type. | |
| typedef uint32_t | pmhalClockTreePropType |
| Graph Node Vertex type. | |
| typedef uint32_t | pmhalClockTreeProperty |
| Graph Node Vertex type. | |
| typedef uint8_t | clockTreeVertex |
| Graph Node Property type. | |
| typedef uint16_t | pmhalClockTreeSize_t |
| Graph size type. | |
| typedef const pmhalClockTreeProp * | pmhalClockTreePropCptr |
| Pointer to the clock tree property structure. | |
| typedef const pmhalClockTreeEdgeProp * | pmhalClockTreeEdgePropPtr |
| Pointer to the clock tree edge property structure. | |
| typedef const pmhalClockTreeInputEdge * | pmhalClockTreeInputEdgePtr |
| Pointer to the clock tree input edge structure. | |
| typedef const pmhalClockTreeOutputEdge * | pmhalClockTreeOutputEdgePtr |
| Pointer to the clock tree output edge structure. | |
| typedef const pmhalClockTreeNode * | pmhalClockTreeNodePtr |
| Pointer to the clock tree Node. | |
| typedef const pmhalClockTree * | pmhalClockTreePtr |
| Pointer to the clock tree Node. | |
| typedef enum videopllVenc | pmhalVideoPllVenc_t |
| Enum for the Venc's Caution: Do not change the enum values these are exact match of Bsp_PlatformVenc . | |
| typedef enum pmhalVideopllHSD | pmhalVideopllHSD_t |
| Enum defining HS divider for video pll. | |
| typedef struct pmhalVideopllSelectConfig | pmhalVideopllSelectConfig_t |
| This shall be used by the APIs to take configuration input from the user. This struct will not be modelled to represent a PLL. This is only for tda2xx. | |
| typedef struct pmhalVideopllModeConfig | pmhalVideopllModeConfig_t |
| This shall be used by the APIs to take configuration input from the user. This struct will not be modelled to represent a PLL. This is only for tda2xx. | |
| typedef struct pmhalVideopllConfig | pmhalVideopllConfig_t |
| This shall be used by the APIs to take configuration input from the user. This structure will not be modelled to represent a PLL. This is only for tda2xx. | |
Enumerations | |
| enum | pmhalNodeType { , PMHAL_MIN = PMHAL_MOD, PMHAL_DPLL = 1U, PMHAL_MUX = 2U, PMHAL_DIV = 3U, PMHAL_ROOT_CLK = 4U, PMHAL_MAX = PMHAL_ROOT_CLK, PMHAL_COUNT = PMHAL_MAX + 1U, PMHAL_UNDEF = -((int32_t) 1) } |
| Clock-tree node types. More... | |
| enum | videopllVenc { PMHAL_VIDEOPLL_VENC_LCD1 = 0, PMHAL_VIDEOPLL_VENC_LCD2, PMHAL_VIDEOPLL_VENC_LCD3, PMHAL_VIDEOPLL_VENC_HDMI, PMHAL_VIDEOPLL_VENC_MAX } |
| Enum for the Venc's Caution: Do not change the enum values these are exact match of Bsp_PlatformVenc . More... | |
| enum | pmhalVideopllHSD { PMHAL_VIDEOPLL_HSD_INVALID = 0x7FFFFFFFU, PMHAL_VIDEOPLL_HSD_MIN = 0U, PMHAL_VIDEOPLL_HSD_M4 = PMHAL_VIDEOPLL_HSD_MIN, PMHAL_VIDEOPLL_HSD_M6 = 1U, PMHAL_VIDEOPLL_HSD_M7 = 2U, PMHAL_VIDEOPLL_HSD_MAX = PMHAL_VIDEOPLL_HSD_M7, PMHAL_VIDEOPLL_HSD_M2 = 3U } |
| Enum defining HS divider for video pll. More... | |
Functions | |
| pmErrCode_t | PMHALClockTreeValidNode (pmhalClockTreeNodeId id) |
| Is the given node-id valid? More... | |
| pmhalNodeType_t | PMHALClockTreeGetNodeType (pmhalClockTreeNodeId id) |
| gives the type of the given node More... | |
| pmErrCode_t | PMHALClockTreeGetNode (pmhalClockTreeNodeId id, pmhalClockTreeNodePtr *nodePtr) |
| Get the node_ptr corresponding to the node_id. More... | |
| pmErrCode_t | PMHALClockTreeGetNodeProp (pmhalClockTreeNodePtr np, pmhalClockTreePropCptr *propPtr) |
| Get the property corresponding to the node_id. More... | |
| pmErrCode_t | PMHALClockTreeGetPredecessors (pmhalClockTreeNodeId id, pmhalClockTreeNodeIdCvec *pred, pmhalClockTreeSize_t *npred) |
| Get the the list of predecessor nodes. More... | |
| pmErrCode_t | PMHALClockTreeGetModuleEdge (pmhalClockTreeNodeId sourceNode, pmhalClockTreeProperty property, pmhalClockTreeInputEdgePtr *edgePtr) |
| Get the edge_ptr associated with a clock for a Module. More... | |
| pmErrCode_t | PMHALClockTreeGetDpllEdge (pmhalClockTreeNodeId sourceNode, pmhalClockTreeNodeId toNode, pmhalClockTreeProperty property, pmhalClockTreeInputEdgePtr *edgePtr) |
| Get the edge_ptr connecting Dpll and a Node. More... | |
| pmErrCode_t | PMHALClockTreeGetEdgeProp (pmhalClockTreeInputEdgePtr ep, pmhalClockTreeEdgePropPtr *edgePropPtr) |
| Get the property corresponding to the edge. More... | |
| pmErrCode_t | PMHALClockTreeGetDpllInEdge (pmhalClockTreeNodeId sourceNode, pmhalClockTreeProperty property, pmhalClockTreeInputEdgePtr *edgePtr) |
| Get the edge_ptr associated with a clock for a dpll. More... | |
| int32_t | PMHALCMDpllConfigure (pmhalPrcmNodeId_t dpllId, const pmhalPrcmDpllConfig_t *pDpllData, uint32_t timeOut) |
| This API configures different parameters of PLL as indicated by the input. If the multiplier and divider are updated it also makes sure the PLL is locked with new values.The post divider is also considered as part of PLL. This API can be used to configure the PLL with initial values and also to change the frequency during OPP change (DVFS). More... | |
| int32_t | PMHALCMDpllDividerSet (pmhalPrcmNodeId_t dpllId, uint32_t dividerValue) |
| This API sets the divide (DPLL N) value of a divider. The hardware divides by (N+1) internally. Value of N should be provided by this API. At reset the divider value will be set to the reset value. If the application need to set a different divider this API shall be called. More... | |
| int32_t | PMHALCMDpllMultiplierSet (pmhalPrcmNodeId_t dpllId, uint32_t mulValue) |
| This API sets the multiplication (DPLL M) value of a multiplier . At reset the multiplication value will be set to the reset value. If the application need to set a different multiplication as desired. More... | |
| uint32_t | PMHALCMDpllGetMultiplier (pmhalPrcmNodeId_t dpllId) |
| This API is used to multiplier value (M) of the given DPLL. More... | |
| int32_t | PMHALCMDpllSetFracMultiplier (pmhalPrcmNodeId_t dpllId, uint32_t fracValue) |
| This API is applicable only for TDA3xx SR2.0. This API sets the fractional multiplication (DPLL Frac M) value of a multiplier . At reset the multiplication value will be set to the reset value. If the application need to set a different multiplication as desired. More... | |
| uint32_t | PMHALCMDpllGetFracMultiplier (pmhalPrcmNodeId_t dpllId) |
| This API is used to fractional multiplier value (Frac M) of the given DPLL. This API is applicable only for TDA3xx SR2.0. More... | |
| uint32_t | PMHALCMDpllGetDivider (pmhalPrcmNodeId_t dpllId) |
| This API is used to get divider value (N) of the given DPLL. More... | |
| int32_t | PMHALCMDpllSetOperationMode (pmhalPrcmNodeId_t dpllId, pmhalPrcmDpllPowerMode_t dpllMode, uint32_t timeOut) |
| This API configures the DPLL_EN field with the desired DPLL power mode. More... | |
| int32_t | PMHALCMDpllGetOperatingMode (pmhalPrcmNodeId_t dpllId, pmhalPrcmDpllPowerMode_t *dpllMode) |
| This API returns the status of DPLL_EN MODE . More... | |
| int32_t | PMHALCMDpllLock (pmhalPrcmNodeId_t dpllId) |
| This API Locks the Pll. More... | |
| int32_t | PMHALCMDpllUnLock (pmhalPrcmNodeId_t dpllId) |
| This API Unlock the Pll. More... | |
| uint32_t | PMHALCMDpllLockStatus (pmhalPrcmNodeId_t dpllId) |
| This API gets the dpll lock status . More... | |
| int32_t | PMHALCMDpllSetRampLevel (pmhalPrcmNodeId_t dpllId, pmhalPrcmDpllRampLevel_t rampLevel) |
| This API Sets the desired DPLL ramp level . More... | |
| int32_t | PMHALCMDpllSetRampRate (pmhalPrcmNodeId_t dpllId, pmhalPrcmDpllRampRate_t rampRate) |
| This API Sets the desired DPLL ramp rate. More... | |
| int32_t | PMHALCMDpllSetDriftGuard (pmhalPrcmNodeId_t dpllId) |
| This API Sets the DPLL Drift guard. More... | |
| int32_t | PMHALCMDpllSetDutyCycleCorrector (pmhalPrcmNodeId_t dpllId) |
| This API sets the DutyCycleCorrector bit for dpll. More... | |
| int32_t | PMHALCMDpllGetDutyCycleCorrector (pmhalPrcmNodeId_t dpllId, uint8_t *status) |
| This API gets the DutyCycleCorrector bit for the dpll. More... | |
| int32_t | PMHALCMDpllGetDpllType (pmhalPrcmNodeId_t dpllId, pmhalPrcmDpllType_t *type) |
| This API gets the type of the dpll. More... | |
| int32_t | PMHALCMDpllSetLowPowerMode (pmhalPrcmNodeId_t dpllId, uint32_t timeOut) |
| This API Sets the desired DPLL in LowPowerMode . More... | |
| int32_t | PMHALCMDpllSetAutoPowerMode (pmhalPrcmNodeId_t dpllId, pmhalPrcmDpllPowerMode_t dpllMode) |
| This API configures the DPLL AUTO power MODE. More... | |
| int32_t | PMHALCMDpllGetAutoPowerMode (pmhalPrcmNodeId_t dpllId, pmhalPrcmDpllPowerMode_t *dpllMode) |
| This API reads and returns the DPLL AUTO power MODE. More... | |
| int32_t | PMHALCMDpllSetBypassClkSelect (pmhalPrcmNodeId_t dpllId, pmhalPrcmDpllBypassClkSel_t bypassClkSel) |
| This API configures the DPLL_BYP_CLKSEL field to select bypass clock input. More... | |
| int32_t | PMHALCMDpllGetBypassClkSelect (pmhalPrcmNodeId_t dpllId, pmhalPrcmDpllClkInput_t *bypassClkSel) |
| This API returns the status of DPLL_BYP_CLKSEL bypass clock selection. More... | |
| int32_t | PMHALCMDpllGetClkOutHIFSelect (pmhalPrcmNodeId_t dpllId, pmhalPrcmDpllClkInput_t *bypassClkSel) |
| This API returns the status of DPLL_BYP_CLKSEL bypass clock selection. More... | |
| int32_t | PMHALCMDpllSetClkOutHIFSelect (pmhalPrcmNodeId_t dpllId, pmhalPrcmDpllClkInput_t bypassClkSel) |
| This API returns the status of DPLL_BYP_CLKSEL bypass clock selection. More... | |
| int32_t | PMHALCMDpllSetPostDiv (pmhalPrcmNodeId_t dpllId, const pmhalPrcmPllPostDivValue_t *divConfig, uint32_t maxPostDividerElems) |
| This API sets the divide value of a HSdivider node in the clock tree. At reset the divider value will be set to the reset value. If the application need to set a different divider this API shall be called. More... | |
| int32_t | PMHALCMDpllGetPostDiv (pmhalPrcmNodeId_t dpllId, pmhalPrcmPllPostDivValue_t *divConfig, uint32_t maxPostDividerElems) |
| This API returns the divide value of a HSdivider node in the clock tree. More... | |
| int32_t | PMHALCMDpllGetPostDivClkStatus (pmhalPrcmNodeId_t dpllId, pmhalPrcmDpllPostDivId_t pPostDivId, pmhalPrcmClockActivityState_t *status) |
| This API gets the clock status of postdivider output clock. More... | |
| int32_t | PMHALCMDpllGetAllPostDivStatus (pmhalPrcmNodeId_t dpllId, pmhalPrcmPllPostDivValue_t *divConfig) |
| This API returns all the divide value of a HSdivider node in the clock tree. More... | |
| int32_t | PMHALCMGetModuleClockStatus (pmhalPrcmModuleId_t moduleId, pmhalPrcmClockId_t clkId, pmhalPrcmClockActivityState_t *clkState) |
| This API checks the clock Activity of a given module. More... | |
| int32_t | PMHALCMGetModuleAllClockState (pmhalPrcmModuleId_t moduleId, pmhalPrcmClockActivityState_t *clockState) |
| This API is used to find if the clocks to a given module are enabled or disabled. It takes an "or" of all the clock states to the given module and populates the clockState with 1 if any clock is running and 0 if all clocks are gated. More... | |
| int32_t | PMHALCMModuleClockEnable (pmhalPrcmModuleId_t moduleId, pmhalPrcmClockId_t clkId, uint32_t timeOut) |
| This API enables the clock for given modules. More... | |
| int32_t | PMHALCMModuleClockDisable (pmhalPrcmModuleId_t moduleId, pmhalPrcmClockId_t clkId, uint32_t timeOut) |
| This API disables the clock for given modules. More... | |
| int32_t | PMHALCMModuleEnableAllOptClock (pmhalPrcmModuleId_t moduleId) |
| This API sets all the optional clock for given modules. More... | |
| int32_t | PMHALCMModuleDisableAllOptClock (pmhalPrcmModuleId_t moduleId) |
| This API resets all the optional clock for given modules. More... | |
| int32_t | PMHALCMSetCdClockMode (pmhalPrcmCdId_t clockdomainId, pmhalPrcmCdClkTrnModes_t mode, uint32_t timeOut) |
| This API sets the CM clock operating modes. More... | |
| int32_t | PMHALCMGetCdClockMode (pmhalPrcmCdId_t cdId, pmhalPrcmCdClkTrnModes_t *cdTrnMode) |
| This API gets the Transition Modes of the given clock. More... | |
| int32_t | PMHALCMMuxParentSelect (pmhalPrcmNodeId_t muxId, pmhalPrcmNodeId_t pParentNodeId) |
| This API sets the parent clock id of a clock node (multiplexer) in the clock tree. At reset the parent clock will be set to the reset selection. More... | |
| int32_t | PMHALCMMuxParentGet (pmhalPrcmNodeId_t muxId, pmhalPrcmNodeId_t *pParentNodeId) |
| This API gets the parent clock id of a clock node (multiplexer) in the clock tree. More... | |
| int32_t | PMHALCMDpllSetClockDivider (pmhalPrcmNodeId_t dividerId, uint32_t dividerValue) |
| This API sets the divide value of a divider node in the clock tree. At reset the divider value will be set to the reset value. If the application need to set a different divider this API shall be called. More... | |
| int32_t | PMHALCMDpllGetClockDivider (pmhalPrcmNodeId_t dividerId, uint32_t *dividerValue) |
| This API gets the divide value of a divider node in the clock tree. At reset the divider value will be set to the reset value. If the application need to get a divider value this API shall be called. More... | |
| uint32_t | PMHALCMGetSysClockFreq (void) |
| This API get the sysclk freq for the board. More... | |
| pmhalPrcmSysClkVal_t | PMHALCMGetSysClockFreqEnum (void) |
| This API get the sysclk freq Enum for the board. More... | |
| int32_t | PMHALCMDpllCoreSwitchSource (pmhalPrcmNodeId_t sourceId, const pmhalPrcmDpllConfig_t *pDpllData, uint32_t timeOut) |
| This API is applicable only for TDA3xx SR2.0. It allows changing the DPLL CORE input clock source at run time. More... | |
| int32_t | PMHALStaticDepEnable (pmhalPrcmCdId_t srcDom, pmhalPrcmCdId_t destDom) |
| Enable the static dependency from the master clock domain to the slave clock domain. More... | |
| int32_t | PMHALStaticDepDisable (pmhalPrcmCdId_t srcDom, pmhalPrcmCdId_t destDom) |
| Disable the static dependency from the master clock domain to the slave clock domain. More... | |
| int32_t | PMHALStaticDepRead (pmhalPrcmCdId_t clockDom, uint32_t *regVal) |
| Read the static dependency for a given clock domain. More... | |
| int32_t | PMHALStaticDepDisableAllSlaveDep (pmhalPrcmCdId_t masterClockDom) |
| Disable the static dependency from the master clock domain to all slave clock domains. More... | |
| int32_t | PMHALStaticDepDisableToAllMaster (pmhalPrcmCdId_t slaveClockDom, pmhalPrcmCdId_t *failMasterDom) |
| Disable the static dependency from the slave clock domain to all master clock domains. This API loops through all the clock domains and clears the bit corresponding slave. If the static dependency cannot be cleared the API returns with the Clock domain of the ID for which the API tried to clear the dependency but could not. More... | |
| int32_t | PMHALVideopllConfigure (pmhalPrcmNodeId_t videopllId, const pmhalVideopllConfig_t *pVideopllData, uint32_t timeOut) |
| This API configures different parameters of PLL as indicated by the input. If the multiplier and divider are updated it also makes sure the PLL is locked with new values.The post divider is also considered as part of PLL. This API can be used to configure the PLL with initial values only. More... | |
| int32_t | PMHALVideopllConfigureMux (pmhalPrcmVideopllDssClkSrcMuxId_t muxId, pmhalPrcmVideopllMuxSelectId_t pParentNodeId) |
| This API sets the multiplexer with the given mux select value. This is only for tda2xx. More... | |
| int32_t | PMHALVideopllSetSCPClk (pmhalPrcmNodeId_t videopllId, uint32_t value) |
| This API sets the SCP CLock. This is only for tda2xx. More... | |
| int32_t | PMHALVideopllSetPllProgramming (pmhalPrcmNodeId_t videopllId, uint32_t value) |
| This API Sets PLL Programming (Enabled/Disabled). This is only for tda2xx. More... | |
| int32_t | PMHALVideopllSetDSIPower (pmhalPrcmNodeId_t videopllId, uint32_t value) |
| This API Sets DSI Power (Enabled/Disabled). This is only for tda2xx. More... | |
| int32_t | PMHALVideopllGetResetStatus (pmhalPrcmNodeId_t videopllId) |
| This API gets videopll reset status . This is only for tda2xx. More... | |
| int32_t | PMHALVideopllSetAutoPowerMode (pmhalPrcmNodeId_t videopllId, uint32_t value) |
| This API sets Auto Power mode (Enabled/Disabled). This is only for tda2xx. More... | |
| int32_t | PMHALVideopllGetPowerMode (pmhalPrcmNodeId_t videopllId) |
| This API gets the power mode . This is only for tda2xx. More... | |
| int32_t | PMHALVideopllGetLockStatus (pmhalPrcmNodeId_t videopllId) |
| This API gets the Lock status . This is only for tda2xx. More... | |
| int32_t | PMHALVideopllGetDivider (pmhalPrcmNodeId_t videopllId) |
| This API gets the Divider Value . This is only for tda2xx. More... | |
| int32_t | PMHALVideopllGetMultiplier (pmhalPrcmNodeId_t videopllId) |
| This API gets the Multiplier Value . This is only for tda2xx. More... | |
| int32_t | PMHALVideopllGetHSDivider (pmhalPrcmNodeId_t videopllId, pmhalVideopllHSD_t videopllHSD, uint32_t *hsdivValue) |
| This API gets the HS Divider Value . This is only for tda2xx. More... | |
| int32_t | PMHALVideopllGetVencSource (pmhalVideoPllVenc_t VencId, pmhalPrcmClockId_t *videopllId, pmhalVideopllHSD_t *postDivId) |
| This API returns the configured Videopll for given Venc Id. More... | |
| int32_t | PMHALVideopllSetDivider (pmhalPrcmNodeId_t videopllId, uint32_t divValue) |
| This API sets the divide (DPLL N) value of a divider. Value of N should be provided by this API. At reset the divider value will be set to the reset value. If the application need to set a different divider this API shall be called. More... | |
| int32_t | PMHALVideopllSetMultiplier (pmhalPrcmNodeId_t videopllId, uint32_t mulValue) |
| This API sets the multiplication (DPLL M) value of a multiplier . At reset the multiplication value will be set to the reset value. If the application need to set a different multiplication as desired. More... | |
| int32_t | PMHALVideopllSetPostDiv (pmhalPrcmNodeId_t videopllId, const pmhalPrcmPllPostDivValue_t *divConfig, uint32_t maxPostDivElems) |
| This API sets the divide value of a HSdivider. At reset the divider value will be set to the reset value. If the application need to set a different divider this API shall be called. More... | |
| int32_t | PMHALVideopllSetSelectFields (pmhalPrcmNodeId_t videopllId, const pmhalVideopllSelectConfig_t *pSelectConfig) |
| This API sets the select Fields of configuration2 . Configuration2 Registor contains the select bit fields for Video pll operating modes. This is only for tda2xx. More... | |
| int32_t | PMHALVideopllGetSelectFields (pmhalPrcmNodeId_t videopllId, pmhalVideopllSelectConfig_t *pSelectConfig) |
| This API sets the select Fields of configuration2 . Configuration2 Registor contains the select bit fields for Video pll operating modes. This is only for tda2xx. More... | |
| int32_t | PMHALVideopllSetpllGo (pmhalPrcmNodeId_t videopllId, uint32_t value) |
| This API sets the pll Go register . This is only for tda2xx. More... | |
| int32_t | PMHALVideopllGetpllGo (pmhalPrcmNodeId_t videopllId) |
| This API gets the pll Go register . This is only for tda2xx. More... | |
| int32_t | PMHALVideopllSetModeFields (pmhalPrcmNodeId_t videopllId, const pmhalVideopllModeConfig_t *pModeConfig) |
| This API sets the Mode Fields of configuration2 . Configuration2 Registor contains the bit fields for Video pll operating modes. This is only for tda2xx. More... | |
| int32_t | PMHALVideopllGetModeFields (pmhalPrcmNodeId_t videopllId, pmhalVideopllModeConfig_t *pModeConfig) |
| This API sets the Mode Fields of configuration2 . Configuration2 Registor contains the bit fields for Video pll operating modes. This is only for tda2xx. More... | |
The Clock Domain Manager (CM) is a component of the Power Management (PM) software which provides access to the PRCM database to enable/disable the clock domains and provides APIs to program the dividers DPLL and multiplexers
Clock domain API would not take care of the elements in the path which source clock from the given DPLL when the DPLL frequency is changed. USER / APP needs to monitor the same and make changes accordingly.
The Clock Rate Configuration APIs are used to configure the module clocks to run at desired clock frequency as specified by the user.
The generic clocking scheme in the device can be visualized as a tree where a certain input clock to the device is the root node (or Root Clock) of the clock tree and the modules are leaf nodes. Between these two levels are multiple levels consisting of DPLLs, multiplexers, dividers etc.
Configuring a clock frequency for the module requires programming these DPLLs, multiplexers and dividers.
The Static Dependency (SD) HAL manager helps to enable or disable the software configurable static dependency between different clock domains.
Video-PLL library provides APIs configure the Video PLL to the required frequency for display application. Video-pll library calculates the values of multiplier, divider and post divider, these values selected may not be with least jitter. In case the frequency cannot be obtained from any combination the lib doesn’t approximate to nearest but returns an error status as values cannot be calculated.
| enum pmhalNodeType |
| enum pmhalVideopllHSD |
Enum defining HS divider for video pll.
| enum videopllVenc |
Enum for the Venc's Caution: Do not change the enum values these are exact match of Bsp_PlatformVenc .
| pmErrCode_t PMHALClockTreeGetDpllEdge | ( | pmhalClockTreeNodeId | sourceNode, |
| pmhalClockTreeNodeId | toNode, | ||
| pmhalClockTreeProperty | property, | ||
| pmhalClockTreeInputEdgePtr * | edgePtr | ||
| ) |
Get the edge_ptr connecting Dpll and a Node.
| sourceNode | Module for which edge property is valid. |
| toNode | Node that is connected to source node |
| property | Edge property that we are interested |
| edgePtr | Pointer that defines the edge attributes |
| pmErrCode_t PMHALClockTreeGetDpllInEdge | ( | pmhalClockTreeNodeId | sourceNode, |
| pmhalClockTreeProperty | property, | ||
| pmhalClockTreeInputEdgePtr * | edgePtr | ||
| ) |
Get the edge_ptr associated with a clock for a dpll.
| sourceNode | Dpll for which edge property is valid. |
| property | Edge property that we are interested |
| edgePtr | Pointer that defines the edge attributes |
| pmErrCode_t PMHALClockTreeGetEdgeProp | ( | pmhalClockTreeInputEdgePtr | ep, |
| pmhalClockTreeEdgePropPtr * | edgePropPtr | ||
| ) |
Get the property corresponding to the edge.
| ep | Graph edge const pointer |
| edgePropPtr | Edge property pointer |
| pmErrCode_t PMHALClockTreeGetModuleEdge | ( | pmhalClockTreeNodeId | sourceNode, |
| pmhalClockTreeProperty | property, | ||
| pmhalClockTreeInputEdgePtr * | edgePtr | ||
| ) |
Get the edge_ptr associated with a clock for a Module.
| sourceNode | Module for which edge property is valid. |
| property | Edge property that we are interested |
| edgePtr | Pointer that defines the edge attributes |
| pmErrCode_t PMHALClockTreeGetNode | ( | pmhalClockTreeNodeId | id, |
| pmhalClockTreeNodePtr * | nodePtr | ||
| ) |
Get the node_ptr corresponding to the node_id.
| id | Graph node Id Refer pmhalClockTreeNodeId |
| nodePtr | NodePointer |
| pmErrCode_t PMHALClockTreeGetNodeProp | ( | pmhalClockTreeNodePtr | np, |
| pmhalClockTreePropCptr * | propPtr | ||
| ) |
Get the property corresponding to the node_id.
| np | Node_ptr corresponding to the node_id |
| propPtr | PropPtr corresponding to nodePointer |
| pmhalNodeType_t PMHALClockTreeGetNodeType | ( | pmhalClockTreeNodeId | id | ) |
gives the type of the given node
| id | Graph node Id |
| pmErrCode_t PMHALClockTreeGetPredecessors | ( | pmhalClockTreeNodeId | id, |
| pmhalClockTreeNodeIdCvec * | pred, | ||
| pmhalClockTreeSize_t * | npred | ||
| ) |
Get the the list of predecessor nodes.
| id | Graph node Id |
| pred | Graph Node-ID const vector type |
| npred | No of innodes to the given node |
| pmErrCode_t PMHALClockTreeValidNode | ( | pmhalClockTreeNodeId | id | ) |
Is the given node-id valid?
| id | graph node Id |
| int32_t PMHALCMDpllConfigure | ( | pmhalPrcmNodeId_t | dpllId, |
| const pmhalPrcmDpllConfig_t * | pDpllData, | ||
| uint32_t | timeOut | ||
| ) |
This API configures different parameters of PLL as indicated by the input. If the multiplier and divider are updated it also makes sure the PLL is locked with new values.The post divider is also considered as part of PLL. This API can be used to configure the PLL with initial values and also to change the frequency during OPP change (DVFS).
Note: The PLL configuration will affect the clock supplied to the down stream nodes. The caller is expected to handle the down stream of nodes which will be affected by this change. Function ultimately locks the DPLL.
| dpllId | Unique ID of the PLL |
| *pDpllData | PRCM Configuration values. Refer enum pmhalPrcmDpllConfig_t for values. |
| timeOut | Wait time duration. |
| int32_t PMHALCMDpllCoreSwitchSource | ( | pmhalPrcmNodeId_t | sourceId, |
| const pmhalPrcmDpllConfig_t * | pDpllData, | ||
| uint32_t | timeOut | ||
| ) |
This API is applicable only for TDA3xx SR2.0. It allows changing the DPLL CORE input clock source at run time.
| sourceId | Unique ID of the DPLL CORE clock source. Valid values are PMHAL_PRCM_ROOT_CLK_SYS_CLKIN1 or PMHAL_PRCM_ROOT_CLK_SYS_CLKIN2. |
| pDpllData | New PLL configuration based on the chosen input clock. |
| timeOut | Wait time duration. |
| int32_t PMHALCMDpllDividerSet | ( | pmhalPrcmNodeId_t | dpllId, |
| uint32_t | dividerValue | ||
| ) |
This API sets the divide (DPLL N) value of a divider. The hardware divides by (N+1) internally. Value of N should be provided by this API. At reset the divider value will be set to the reset value. If the application need to set a different divider this API shall be called.
Note: This change in the clock divider may affect the modules which derive clock from this dpll. The application is expected to ensure other modules are handled to accommodate this change.
| dpllId | Unique ID of the node. |
| dividerValue | divider value |
| int32_t PMHALCMDpllGetAllPostDivStatus | ( | pmhalPrcmNodeId_t | dpllId, |
| pmhalPrcmPllPostDivValue_t * | divConfig | ||
| ) |
This API returns all the divide value of a HSdivider node in the clock tree.
| dpllId | Unique ID of the PLL |
| divConfig | Structure with divider name whose value is to get. Name of the divider should be mentioned in 'postDivId' field of the struct pmhalPrcmPllPostDivValue_t. |
NOTE: This api returns post divider value in 'configValue' field of the struct pmhalPrcmPllPostDivValue_t.
| int32_t PMHALCMDpllGetAutoPowerMode | ( | pmhalPrcmNodeId_t | dpllId, |
| pmhalPrcmDpllPowerMode_t * | dpllMode | ||
| ) |
This API reads and returns the DPLL AUTO power MODE.
| dpllId | Unique ID of the DPLL |
| dpllMode | Resultant Mode of DPLL Refer enum pmhalPrcmDpllPowerMode_t for values. |
| errorStatus | Status of API call. Can be any of the following,
|
| int32_t PMHALCMDpllGetBypassClkSelect | ( | pmhalPrcmNodeId_t | dpllId, |
| pmhalPrcmDpllClkInput_t * | bypassClkSel | ||
| ) |
This API returns the status of DPLL_BYP_CLKSEL bypass clock selection.
| dpllId | Unique ID of the DPLL |
| bypassClkSel | Selected Bypass clock for the given DPLL Refer enum pmhalPrcmDpllClkInput_t for values. |
| int32_t PMHALCMDpllGetClkOutHIFSelect | ( | pmhalPrcmNodeId_t | dpllId, |
| pmhalPrcmDpllClkInput_t * | bypassClkSel | ||
| ) |
This API returns the status of DPLL_BYP_CLKSEL bypass clock selection.
| dpllId | Unique ID of the DPLL |
| bypassClkSel | Selected Bypass clock for the given DPLL Refer enum pmhalPrcmDpllClkInput_t for values. |
| int32_t PMHALCMDpllGetClockDivider | ( | pmhalPrcmNodeId_t | dividerId, |
| uint32_t * | dividerValue | ||
| ) |
This API gets the divide value of a divider node in the clock tree. At reset the divider value will be set to the reset value. If the application need to get a divider value this API shall be called.
| dividerId | Unique ID of the node. |
| dividerValue | Value the divider is to divide with. |
| uint32_t PMHALCMDpllGetDivider | ( | pmhalPrcmNodeId_t | dpllId | ) |
This API is used to get divider value (N) of the given DPLL.
| dpllId | Unique ID of the dpll. |
| int32_t PMHALCMDpllGetDpllType | ( | pmhalPrcmNodeId_t | dpllId, |
| pmhalPrcmDpllType_t * | type | ||
| ) |
This API gets the type of the dpll.
| dpllId | Unique ID of the DPLL |
| type | Populates the type of the DPLL refer pmhalPrcmDpllType_t for more details |
| int32_t PMHALCMDpllGetDutyCycleCorrector | ( | pmhalPrcmNodeId_t | dpllId, |
| uint8_t * | status | ||
| ) |
This API gets the DutyCycleCorrector bit for the dpll.
| dpllId | Unique ID of the DPLL |
| status | Populates the value in the DCC_EN bitfiled 0 if the DCC is disabled 1 if the DCC is enabled |
| uint32_t PMHALCMDpllGetFracMultiplier | ( | pmhalPrcmNodeId_t | dpllId | ) |
This API is used to fractional multiplier value (Frac M) of the given DPLL. This API is applicable only for TDA3xx SR2.0.
| dpllId | Unique ID of the dpll. |
| uint32_t PMHALCMDpllGetMultiplier | ( | pmhalPrcmNodeId_t | dpllId | ) |
This API is used to multiplier value (M) of the given DPLL.
| dpllId | Unique ID of the dpll. |
| int32_t PMHALCMDpllGetOperatingMode | ( | pmhalPrcmNodeId_t | dpllId, |
| pmhalPrcmDpllPowerMode_t * | dpllMode | ||
| ) |
This API returns the status of DPLL_EN MODE .
| dpllId | Unique ID of the DPLL |
| dpllMode | Resultant Mode of DPLL Refer enum pmhalPrcmDpllPowerMode_t for values. |
| int32_t PMHALCMDpllGetPostDiv | ( | pmhalPrcmNodeId_t | dpllId, |
| pmhalPrcmPllPostDivValue_t * | divConfig, | ||
| uint32_t | maxPostDividerElems | ||
| ) |
This API returns the divide value of a HSdivider node in the clock tree.
| dpllId | Unique ID of the PLL |
| divConfig | Structure with divider name whose value is to get. Name of the divider should be mentioned in 'postDivId' field of the struct pmhalPrcmPllPostDivValue_t. |
| maxPostDividerElems | Maximum number of post div elements |
NOTE: This api returns post divider value in 'configValue' field of the struct pmhalPrcmPllPostDivValue_t.
| int32_t PMHALCMDpllGetPostDivClkStatus | ( | pmhalPrcmNodeId_t | dpllId, |
| pmhalPrcmDpllPostDivId_t | pPostDivId, | ||
| pmhalPrcmClockActivityState_t * | status | ||
| ) |
This API gets the clock status of postdivider output clock.
| dpllId | Unique ID of the PLL |
| pPostDivId | Post Divider Id Refer enum pmhalPrcmDpllPostDivId_t for Id's. |
| status | Clock Activity state Refer enum pmhalPrcmClockActivityState_t for vaules. |
| int32_t PMHALCMDpllLock | ( | pmhalPrcmNodeId_t | dpllId | ) |
This API Locks the Pll.
| dpllId | Unique ID of the DPLL |
| uint32_t PMHALCMDpllLockStatus | ( | pmhalPrcmNodeId_t | dpllId | ) |
This API gets the dpll lock status .
| dpllId | Unique ID of dpll. |
| int32_t PMHALCMDpllMultiplierSet | ( | pmhalPrcmNodeId_t | dpllId, |
| uint32_t | mulValue | ||
| ) |
This API sets the multiplication (DPLL M) value of a multiplier . At reset the multiplication value will be set to the reset value. If the application need to set a different multiplication as desired.
Note: This change in the clock multiplication may affect the modules which derive clock from this dpll. The application is expected to ensure other modules are handled to accommodate this change.
| dpllId | Unique ID of the node. |
| mulValue | Multiplication factor. |
| int32_t PMHALCMDpllSetAutoPowerMode | ( | pmhalPrcmNodeId_t | dpllId, |
| pmhalPrcmDpllPowerMode_t | dpllMode | ||
| ) |
This API configures the DPLL AUTO power MODE.
| dpllId | Unique ID of the DPLL |
| dpllMode | Resultant Mode of DPLL Refer enum pmhalPrcmDpllPowerMode_t for values. |
| int32_t PMHALCMDpllSetBypassClkSelect | ( | pmhalPrcmNodeId_t | dpllId, |
| pmhalPrcmDpllBypassClkSel_t | bypassClkSel | ||
| ) |
This API configures the DPLL_BYP_CLKSEL field to select bypass clock input.
| dpllId | Unique ID of the PLL |
| bypassClkSel | PRCM Configuration values. User can set the bypass selection. Refer enum pmhalPrcmDpllBypassClkSel_t for values. |
| int32_t PMHALCMDpllSetClkOutHIFSelect | ( | pmhalPrcmNodeId_t | dpllId, |
| pmhalPrcmDpllClkInput_t | bypassClkSel | ||
| ) |
This API returns the status of DPLL_BYP_CLKSEL bypass clock selection.
| dpllId | Unique ID of the DPLL |
| bypassClkSel | Selected Bypass clock for the given DPLL Refer enum pmhalPrcmDpllClkInput_t for values. |
| int32_t PMHALCMDpllSetClockDivider | ( | pmhalPrcmNodeId_t | dividerId, |
| uint32_t | dividerValue | ||
| ) |
This API sets the divide value of a divider node in the clock tree. At reset the divider value will be set to the reset value. If the application need to set a different divider this API shall be called.
Note: This change in the clock divider may affect the modules which take clock from this divider. The application is expected to ensure other modules are handled to accommodate this change.
| dividerId | Unique ID of the node. |
| dividerValue | Value the divider is to divide with. |
| int32_t PMHALCMDpllSetDriftGuard | ( | pmhalPrcmNodeId_t | dpllId | ) |
This API Sets the DPLL Drift guard.
This bit allows to enable or disable the automatic recalibration feature of the DPLL. The DPLL will automatically start a recalibration process upon assertion of the DPLL's RECAL flag if this bit is set
| dpllId | Unique ID of the PLL |
| int32_t PMHALCMDpllSetDutyCycleCorrector | ( | pmhalPrcmNodeId_t | dpllId | ) |
This API sets the DutyCycleCorrector bit for dpll.
| dpllId | Unique ID of the DPLL |
| int32_t PMHALCMDpllSetFracMultiplier | ( | pmhalPrcmNodeId_t | dpllId, |
| uint32_t | fracValue | ||
| ) |
This API is applicable only for TDA3xx SR2.0. This API sets the fractional multiplication (DPLL Frac M) value of a multiplier . At reset the multiplication value will be set to the reset value. If the application need to set a different multiplication as desired.
| dpllId | Unique ID of the node. |
| fracValue | Multiplication factor. |
| int32_t PMHALCMDpllSetLowPowerMode | ( | pmhalPrcmNodeId_t | dpllId, |
| uint32_t | timeOut | ||
| ) |
This API Sets the desired DPLL in LowPowerMode .
| dpllId | Unique ID of the PLL |
| timeOut | Wait time duration. |
| int32_t PMHALCMDpllSetOperationMode | ( | pmhalPrcmNodeId_t | dpllId, |
| pmhalPrcmDpllPowerMode_t | dpllMode, | ||
| uint32_t | timeOut | ||
| ) |
This API configures the DPLL_EN field with the desired DPLL power mode.
| dpllId | Unique ID of the PLL |
| dpllMode | PRCM Configuration values. User can set the dpll mode. Refer enum pmhalPrcmDpllPowerMode_t for values. |
| timeOut | Wait time duration. |
| int32_t PMHALCMDpllSetPostDiv | ( | pmhalPrcmNodeId_t | dpllId, |
| const pmhalPrcmPllPostDivValue_t * | divConfig, | ||
| uint32_t | maxPostDividerElems | ||
| ) |
This API sets the divide value of a HSdivider node in the clock tree. At reset the divider value will be set to the reset value. If the application need to set a different divider this API shall be called.
Note: This change in the clock divider may affect the modules which take clock from this divider. The application is expected to ensure other modules are handled to accommodate this change.
| dpllId | Unique ID of the PLL |
| divConfig | Structure with divider parameters |
| maxPostDividerElems | Maximum number of post div elements |
| int32_t PMHALCMDpllSetRampLevel | ( | pmhalPrcmNodeId_t | dpllId, |
| pmhalPrcmDpllRampLevel_t | rampLevel | ||
| ) |
This API Sets the desired DPLL ramp level .
The DPLL provides an output clock frequency ramping feature when switching from bypass clock to normal clock during lock and re-lock. The frequency ramping will happen in a maximum of 4 steps in frequency before the DPLL's frequency lock indicator is asserted. This register is used to enable/disable the DPLL ramping feature.
| dpllId | Unique ID of the PLL |
| rampLevel | PRCM Configuration values. User can set the Ramp Level Refer enum pmhalPrcmDpllRampLevel_t for values. |
| int32_t PMHALCMDpllSetRampRate | ( | pmhalPrcmNodeId_t | dpllId, |
| pmhalPrcmDpllRampRate_t | rampRate | ||
| ) |
This API Sets the desired DPLL ramp rate.
Selects the time in terms of DPLL REFCLKs spent at each stage of the clock ramping process
| dpllId | Unique ID of the PLL |
| rampRate | PRCM Configuration values. User can set the Ramp Rate Refer enum pmhalPrcmDpllRampRate_t for values. |
| int32_t PMHALCMDpllUnLock | ( | pmhalPrcmNodeId_t | dpllId | ) |
This API Unlock the Pll.
| dpllId | Unique ID of the DPLL |
| int32_t PMHALCMGetCdClockMode | ( | pmhalPrcmCdId_t | cdId, |
| pmhalPrcmCdClkTrnModes_t * | cdTrnMode | ||
| ) |
This API gets the Transition Modes of the given clock.
| cdId | Unique ID of the ClockDomain |
| cdTrnMode | Status of the API call. Refer enum pmhalPrcmCdClkTrnModes_t for values. |
| int32_t PMHALCMGetModuleAllClockState | ( | pmhalPrcmModuleId_t | moduleId, |
| pmhalPrcmClockActivityState_t * | clockState | ||
| ) |
This API is used to find if the clocks to a given module are enabled or disabled. It takes an "or" of all the clock states to the given module and populates the clockState with 1 if any clock is running and 0 if all clocks are gated.
| moduleId | Module ID of the interested module. |
| clockState | Value updated based on clocks are enabled/disabled. |
| int32_t PMHALCMGetModuleClockStatus | ( | pmhalPrcmModuleId_t | moduleId, |
| pmhalPrcmClockId_t | clkId, | ||
| pmhalPrcmClockActivityState_t * | clkState | ||
| ) |
This API checks the clock Activity of a given module.
| moduleId | Unique ID for module |
| clkId | Unique ID for Clock |
| clkState | Status of the clock. Refer enum pmhalPrcmClockActivityState_t for values. |
| uint32_t PMHALCMGetSysClockFreq | ( | void | ) |
This API get the sysclk freq for the board.
| pmhalPrcmSysClkVal_t PMHALCMGetSysClockFreqEnum | ( | void | ) |
This API get the sysclk freq Enum for the board.
| int32_t PMHALCMModuleClockDisable | ( | pmhalPrcmModuleId_t | moduleId, |
| pmhalPrcmClockId_t | clkId, | ||
| uint32_t | timeOut | ||
| ) |
This API disables the clock for given modules.
| moduleId | Unique ID of the module to be enabled |
| clkId | Unique ID of the Clock to get Status |
| timeOut | Wait time duration. |
NOTE: This api sets the optional clock and mandatory clock, API assumes Input clock selection is controlled at mux selection only.
| int32_t PMHALCMModuleClockEnable | ( | pmhalPrcmModuleId_t | moduleId, |
| pmhalPrcmClockId_t | clkId, | ||
| uint32_t | timeOut | ||
| ) |
This API enables the clock for given modules.
| moduleId | Unique ID of the module to be enabled |
| clkId | Unique ID of the Clock to get Status |
| timeOut | Wait time duration. |
NOTE: This api sets the optional clock and mandatory clock, API assumes Input clock selection is controlled at mux selection only.
| int32_t PMHALCMModuleDisableAllOptClock | ( | pmhalPrcmModuleId_t | moduleId | ) |
This API resets all the optional clock for given modules.
| moduleId | Unique ID of the module to be enabled |
NOTE: This api unsets the optional clock ,API assumes Input clock selection is controlled at mux selection only.
| int32_t PMHALCMModuleEnableAllOptClock | ( | pmhalPrcmModuleId_t | moduleId | ) |
This API sets all the optional clock for given modules.
| moduleId | Unique ID of the module to be enabled |
NOTE: This api sets the optional clock ,API assumes Input clock selection is controlled at mux selection only.
| int32_t PMHALCMMuxParentGet | ( | pmhalPrcmNodeId_t | muxId, |
| pmhalPrcmNodeId_t * | pParentNodeId | ||
| ) |
This API gets the parent clock id of a clock node (multiplexer) in the clock tree.
| muxId | Unique ID of the node. |
| pParentNodeId | Parent NodeId to be Set. Refer enum pmhalPrcmNodeId_t for values. |
| int32_t PMHALCMMuxParentSelect | ( | pmhalPrcmNodeId_t | muxId, |
| pmhalPrcmNodeId_t | pParentNodeId | ||
| ) |
This API sets the parent clock id of a clock node (multiplexer) in the clock tree. At reset the parent clock will be set to the reset selection.
| muxId | Unique ID of the node. |
| pParentNodeId | Parent NodeId to be Set. Refer enum pmhalPrcmNodeId_t for values. |
| int32_t PMHALCMSetCdClockMode | ( | pmhalPrcmCdId_t | clockdomainId, |
| pmhalPrcmCdClkTrnModes_t | mode, | ||
| uint32_t | timeOut | ||
| ) |
This API sets the CM clock operating modes.
| clockdomainId | Unique ID of the Clock Domain |
| mode | Mode at which the CD is desired to operate. Refer enum pmhalPrcmCdClkTrnModes_t for valid modes. |
| timeOut | Wait time duration. |
| int32_t PMHALStaticDepDisable | ( | pmhalPrcmCdId_t | srcDom, |
| pmhalPrcmCdId_t | destDom | ||
| ) |
Disable the static dependency from the master clock domain to the slave clock domain.
| srcDom | Unique Clock domain ID of the master clock domain. Refer enum pmhalPrcmCdId_t for valid values. |
| destDom | Unique clock domain ID of the slave clock domain. Refer enum pmhalPrcmCdId_t for valid values. |
| int32_t PMHALStaticDepDisableAllSlaveDep | ( | pmhalPrcmCdId_t | masterClockDom | ) |
Disable the static dependency from the master clock domain to all slave clock domains.
| masterClockDom | Unique Clock domain ID of the master clock domain. Refer enum pmhalPrcmCdId_t for valid values. |
| int32_t PMHALStaticDepDisableToAllMaster | ( | pmhalPrcmCdId_t | slaveClockDom, |
| pmhalPrcmCdId_t * | failMasterDom | ||
| ) |
Disable the static dependency from the slave clock domain to all master clock domains. This API loops through all the clock domains and clears the bit corresponding slave. If the static dependency cannot be cleared the API returns with the Clock domain of the ID for which the API tried to clear the dependency but could not.
| slaveClockDom | Unique Clock domain ID of the slave clock domain. Refer enum pmhalPrcmCdId_t for valid values. |
| failMasterDom | Unique Clock domain ID of the failed master domain. Refer enum pmhalPrcmCdId_t for valid values. |
| int32_t PMHALStaticDepEnable | ( | pmhalPrcmCdId_t | srcDom, |
| pmhalPrcmCdId_t | destDom | ||
| ) |
Enable the static dependency from the master clock domain to the slave clock domain.
| srcDom | Unique Clock domain ID of the master clock domain. Refer enum pmhalPrcmCdId_t for valid values. |
| destDom | Unique clock domain ID of the slave clock domain. Refer enum pmhalPrcmCdId_t for valid values. |
| int32_t PMHALStaticDepRead | ( | pmhalPrcmCdId_t | clockDom, |
| uint32_t * | regVal | ||
| ) |
Read the static dependency for a given clock domain.
| clockDom | Unique Clock domain ID of the master clock domain. Refer enum pmhalPrcmCdId_t for valid values. |
| regVal | The read register is stored in the memory location pointed to by the pointer regVal. For exact bit field set use the shift values mentioned in pmhalStaticDepBitShift_t |
| int32_t PMHALVideopllConfigure | ( | pmhalPrcmNodeId_t | videopllId, |
| const pmhalVideopllConfig_t * | pVideopllData, | ||
| uint32_t | timeOut | ||
| ) |
This API configures different parameters of PLL as indicated by the input. If the multiplier and divider are updated it also makes sure the PLL is locked with new values.The post divider is also considered as part of PLL. This API can be used to configure the PLL with initial values only.
Note: The PLL configuration will affect the clock supplied to the down stream nodes. The caller is expected to handle the down stream of nodes which will be affected by this change. Function ultimately locks the DPLL. This is only for tda2xx.
| videopllId | Unique ID of the PLL |
| *pVideopllData | Video Configuration values. Refer enum pmhalVideopllConfig_t for values. |
| timeOut | Wait time duration. |
| int32_t PMHALVideopllConfigureMux | ( | pmhalPrcmVideopllDssClkSrcMuxId_t | muxId, |
| pmhalPrcmVideopllMuxSelectId_t | pParentNodeId | ||
| ) |
This API sets the multiplexer with the given mux select value. This is only for tda2xx.
| muxId | Unique ID of the mux. |
| pParentNodeId | Mux parent node id. Refer enum pmhalPrcmVideopllMuxSelectId_t for values. |
| int32_t PMHALVideopllGetDivider | ( | pmhalPrcmNodeId_t | videopllId | ) |
This API gets the Divider Value . This is only for tda2xx.
| videopllId | Unique ID of the VideoPll. |
| int32_t PMHALVideopllGetHSDivider | ( | pmhalPrcmNodeId_t | videopllId, |
| pmhalVideopllHSD_t | videopllHSD, | ||
| uint32_t * | hsdivValue | ||
| ) |
This API gets the HS Divider Value . This is only for tda2xx.
| videopllId | Unique ID of the Videopll. |
| videopllHSD | Enum for HS divider for videopll. |
| hsdivValue | HS Divider value set in VideoPLL. |
| int32_t PMHALVideopllGetLockStatus | ( | pmhalPrcmNodeId_t | videopllId | ) |
This API gets the Lock status . This is only for tda2xx.
| videopllId | Unique ID of the VideoPll. |
| int32_t PMHALVideopllGetModeFields | ( | pmhalPrcmNodeId_t | videopllId, |
| pmhalVideopllModeConfig_t * | pModeConfig | ||
| ) |
This API sets the Mode Fields of configuration2 . Configuration2 Registor contains the bit fields for Video pll operating modes. This is only for tda2xx.
| videopllId | Unique ID of the PLL |
| pModeConfig | Structure with select Field parameters which is to be updated. |
| int32_t PMHALVideopllGetMultiplier | ( | pmhalPrcmNodeId_t | videopllId | ) |
This API gets the Multiplier Value . This is only for tda2xx.
| videopllId | Unique ID of the VideoPll. |
| int32_t PMHALVideopllGetpllGo | ( | pmhalPrcmNodeId_t | videopllId | ) |
This API gets the pll Go register . This is only for tda2xx.
| videopllId | Unique ID of the PLL |
| int32_t PMHALVideopllGetPowerMode | ( | pmhalPrcmNodeId_t | videopllId | ) |
This API gets the power mode . This is only for tda2xx.
| videopllId | Unique ID of the VideoPll. |
| int32_t PMHALVideopllGetResetStatus | ( | pmhalPrcmNodeId_t | videopllId | ) |
This API gets videopll reset status . This is only for tda2xx.
| videopllId | Unique ID of the VideoPll. |
| int32_t PMHALVideopllGetSelectFields | ( | pmhalPrcmNodeId_t | videopllId, |
| pmhalVideopllSelectConfig_t * | pSelectConfig | ||
| ) |
This API sets the select Fields of configuration2 . Configuration2 Registor contains the select bit fields for Video pll operating modes. This is only for tda2xx.
| videopllId | Unique ID of the PLL |
| pSelectConfig | Structure with select Field parameters which are to be filled |
| int32_t PMHALVideopllGetVencSource | ( | pmhalVideoPllVenc_t | VencId, |
| pmhalPrcmClockId_t * | videopllId, | ||
| pmhalVideopllHSD_t * | postDivId | ||
| ) |
This API returns the configured Videopll for given Venc Id.
| VencId | Input Venc who's source to be returned. |
| videopllId | Unique ID of the video pll which is configured. |
| postDivId | Unique ID of the post divider which is configured. |
| int32_t PMHALVideopllSetAutoPowerMode | ( | pmhalPrcmNodeId_t | videopllId, |
| uint32_t | value | ||
| ) |
This API sets Auto Power mode (Enabled/Disabled). This is only for tda2xx.
| videopllId | Unique ID of the VideoPll. |
| value | Value to be set. (Only Enabled/Disabled are valid values). |
| int32_t PMHALVideopllSetDivider | ( | pmhalPrcmNodeId_t | videopllId, |
| uint32_t | divValue | ||
| ) |
This API sets the divide (DPLL N) value of a divider. Value of N should be provided by this API. At reset the divider value will be set to the reset value. If the application need to set a different divider this API shall be called.
Note: This change in the clock divider may affect the modules which derive clock from this dpll. The application is expected to ensure other modules are handled to accommodate this change. This is only for tda2xx.
| videopllId | Unique ID of the node. |
| divValue | Divider value |
| int32_t PMHALVideopllSetDSIPower | ( | pmhalPrcmNodeId_t | videopllId, |
| uint32_t | value | ||
| ) |
This API Sets DSI Power (Enabled/Disabled). This is only for tda2xx.
| videopllId | Unique ID of the VideoPll. |
| value | Value to be set. (Only Enabled/Disabled are valid values). |
| int32_t PMHALVideopllSetModeFields | ( | pmhalPrcmNodeId_t | videopllId, |
| const pmhalVideopllModeConfig_t * | pModeConfig | ||
| ) |
This API sets the Mode Fields of configuration2 . Configuration2 Registor contains the bit fields for Video pll operating modes. This is only for tda2xx.
| videopllId | Unique ID of the PLL |
| pModeConfig | Structure with select Field parameters |
| int32_t PMHALVideopllSetMultiplier | ( | pmhalPrcmNodeId_t | videopllId, |
| uint32_t | mulValue | ||
| ) |
This API sets the multiplication (DPLL M) value of a multiplier . At reset the multiplication value will be set to the reset value. If the application need to set a different multiplication as desired.
Note: This change in the clock multiplication may affect the modules which derive clock from this dpll. The application is expected to ensure other modules are handled to accommodate this change. This is only for tda2xx.
| videopllId | Unique ID of the node. |
| mulValue | Multiplication factor. |
| int32_t PMHALVideopllSetpllGo | ( | pmhalPrcmNodeId_t | videopllId, |
| uint32_t | value | ||
| ) |
This API sets the pll Go register . This is only for tda2xx.
| videopllId | Unique ID of the PLL |
| value | Value to be set. |
| int32_t PMHALVideopllSetPllProgramming | ( | pmhalPrcmNodeId_t | videopllId, |
| uint32_t | value | ||
| ) |
This API Sets PLL Programming (Enabled/Disabled). This is only for tda2xx.
| videopllId | Unique ID of the VideoPll. |
| value | Value to be set. (Only Enabled/Disabled are valid values). |
| int32_t PMHALVideopllSetPostDiv | ( | pmhalPrcmNodeId_t | videopllId, |
| const pmhalPrcmPllPostDivValue_t * | divConfig, | ||
| uint32_t | maxPostDivElems | ||
| ) |
This API sets the divide value of a HSdivider. At reset the divider value will be set to the reset value. If the application need to set a different divider this API shall be called.
Note: This change in the clock divider may affect the modules which take clock from this divider. The application is expected to ensure other modules are handled to accommodate this change. This is only for tda2xx.
| videopllId | Unique ID of the PLL |
| divConfig | Structure with divider parameters |
| maxPostDivElems | Maximum number of post div elements |
| int32_t PMHALVideopllSetSCPClk | ( | pmhalPrcmNodeId_t | videopllId, |
| uint32_t | value | ||
| ) |
This API sets the SCP CLock. This is only for tda2xx.
| videopllId | Unique ID of the VideoPll. |
| value | Value to be set. (Only Enabled/Disabled are valid values) |
| int32_t PMHALVideopllSetSelectFields | ( | pmhalPrcmNodeId_t | videopllId, |
| const pmhalVideopllSelectConfig_t * | pSelectConfig | ||
| ) |
This API sets the select Fields of configuration2 . Configuration2 Registor contains the select bit fields for Video pll operating modes. This is only for tda2xx.
| videopllId | Unique ID of the PLL |
| pSelectConfig | Structure with select Field parameters |


Meetup mail should sent to user
TO:
<EMAIL_ADDRESS>CC:
BCC:
Subject
How about pair programming session?
Body
Hey, Chris!
As you know, we keep the meetups on a regular monthly basis: the first Monday of the month, at 7:30pm.
Due to the vacation constraints of this season, the August session will be held on the 14th (i.e. the 2nd Monday).
Apart from that, same place, same time. 🎉
----------------------------------------------------
Awesome Startup
https://awesome.example.com/
Sign up mail for newly signed up user
TO:
<EMAIL_ADDRESS>CC:
BCC:
<EMAIL_ADDRESS><EMAIL_ADDRESS>Subject
Welcome to our awesome new service!
Body
text/html; charset=UTF-8
Hello Johns Lee!
You’ve recently signed up to our Awesome Product,
and we hope that you’ve noticed that there is much more to it than boring one.
Let’s see what else you can do on our product.
----------------------------------------------------
Awesome Startup
https://awesome.example.com/
text/plain
Hello Johns Lee!
You’ve recently signed up to our Awesome Product,
and we hope that you’ve noticed that there is much more to it than boring one.
Let’s see what else you can do on our product.
----------------------------------------------------
Awesome Startup
https://awesome.example.com/


Play Cut the Rope Time Travel
Play Cut the Rope Time Travel
-
More Puzzle games
-
Terms and Conditions
-
Privacy Policy


SQL query class; implements Iterator for row fetching and tries too hard to perform smart cacheing. The first argument is the parametrized SQL query with $1,$2,... as parameter plceholders. The other arguments are the required parameters. The function will fail when the number of arguments reaches about 20. Usage: $q = new PHPPgSQL([flags,] SQL [, arg0, arg1...]) Optional flag is one of: * PHPPgSQL::NO_CACHE - Don't retrieve the results of this query from the cache * PHPPgSQL::PREPARE_ONLY - Don't execute the SQL query in the constructore - use execute() method instead The only accessible field is reccount - containing the number of records returned or affected by the query. For SELECT queries, PHPPgSQL implements the Iterator interface for iterating over returned rows


[Live-Updates] Maharashtra Govt.Formation; Will The SC Hear Shiv Sena's Petition Today?
by LIVELAW NEWS NETWORKAmidst the political twists and turns in Maharashtra, a writ petition has been filed in the Supreme Court by Shiv Sena, NCP and Congress against the dramatic decision of the Maharashtra Governor to invite BJP to form government today morning.
Watch this space for live updates on this story.


Shoulder bresaola sausage consequat ground round duis excepteur exercitation landjaeger sunt. Duis officia sed frankfurter dolore pastrami tenderloin.
When an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries.
Ground round tenderloin flank shank ribeye. Hamkevin meatball swine. Cow shankle beef sirloin chicken ground round.
Hamburger ribeye drumstick turkey, strip steak sausage ground round shank pastrami beef brisket pancetta venison.
Venison tongue, salami corned beef ball tip meatloaf bacon. Fatback pork belly bresaola tenderloin bone pork kevin shankle.
A responsive, retina-ready & wide multipurpose template.
Sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua.
Ut enim ad minim veniam, quis nostrud


| Package | Description |
|---|---|
| org.springframework.context |
This package builds on the beans package to add support for
message sources and for the Observer design pattern, and the
ability for application objects to obtain resources using a
consistent API.
|
| org.springframework.context.annotation |
Annotation support for the Application Context, including JSR-250 "common"
annotations, component-scanning, and Java-based metadata for creating
Spring-managed objects.
|
| org.springframework.context.event |
Support classes for application events, like standard context events.
|
| org.springframework.context.support |
Classes supporting the org.springframework.context package,
such as abstract base classes for ApplicationContext
implementations and a MessageSource implementation.
|
| org.springframework.scheduling.annotation |
Java 5 annotation for asynchronous method execution.
|
| org.springframework.ui.context.support |
Classes supporting the org.springframework.ui.context package.
|
| org.springframework.validation.beanvalidation |
Support classes for integrating a JSR-303 Bean Validation provider
(such as Hibernate Validator) into a Spring ApplicationContext
and in particular with Spring's data binding and validation APIs.
|
| Modifier and Type | Interface and Description |
|---|---|
interface |
ConfigurableApplicationContext
SPI interface to be implemented by most if not all application contexts.
|
| Modifier and Type | Method and Description |
|---|---|
ApplicationContext |
ApplicationContext.getParent()
Return the parent context, or
null if there is no parent
and this is the root of the context hierarchy. |
| Modifier and Type | Method and Description |
|---|---|
void |
ApplicationContextAware.setApplicationContext(ApplicationContext applicationContext)
Set the ApplicationContext that this object runs in.
|
void |
ConfigurableApplicationContext.setParent(ApplicationContext parent)
Set the parent of this application context.
|
| Modifier and Type | Class and Description |
|---|---|
class |
AnnotationConfigApplicationContext
Standalone application context, accepting component classes as input —
in particular
@Configuration -annotated classes, but also plain
@Component types and JSR-330 compliant
classes using javax.inject annotations. |
| Modifier and Type | Method and Description |
|---|---|
ApplicationContext |
ApplicationContextEvent.getApplicationContext()
Get the
ApplicationContext that the event was raised for. |
| Modifier and Type | Method and Description |
|---|---|
void |
EventListenerMethodProcessor.setApplicationContext(ApplicationContext applicationContext) |
| Constructor and Description |
|---|
ApplicationContextEvent(ApplicationContext source)
Create a new ContextStartedEvent.
|
ContextClosedEvent(ApplicationContext source)
Creates a new ContextClosedEvent.
|
ContextRefreshedEvent(ApplicationContext source)
Create a new ContextRefreshedEvent.
|
ContextStartedEvent(ApplicationContext source)
Create a new ContextStartedEvent.
|
ContextStoppedEvent(ApplicationContext source)
Create a new ContextStoppedEvent.
|
| Modifier and Type | Class and Description |
|---|---|
class |
AbstractApplicationContext
Abstract implementation of the
ApplicationContext
interface. |
class |
AbstractRefreshableApplicationContext
Base class for
ApplicationContext
implementations which are supposed to support multiple calls to AbstractApplicationContext.refresh() ,
creating a new internal bean factory instance every time. |
class |
AbstractRefreshableConfigApplicationContext
AbstractRefreshableApplicationContext subclass that adds common handling
of specified config locations. |
class |
AbstractXmlApplicationContext
Convenient base class for
ApplicationContext
implementations, drawing configuration from XML documents containing bean definitions
understood by an XmlBeanDefinitionReader . |
class |
ClassPathXmlApplicationContext
Standalone XML application context, taking the context definition files
from the class path, interpreting plain paths as class path resource names
that include the package path (e.g.
|
class |
FileSystemXmlApplicationContext
Standalone XML application context, taking the context definition files
from the file system or from URLs, interpreting plain paths as relative
file system locations (e.g.
|
class |
GenericApplicationContext
Generic ApplicationContext implementation that holds a single internal
DefaultListableBeanFactory
instance and does not assume a specific bean definition format. |
class |
GenericGroovyApplicationContext
An
ApplicationContext implementation that extends
GenericApplicationContext and implements GroovyObject such that beans
can be retrieved with the dot de-reference syntax instead of using AbstractApplicationContext.getBean(java.lang.String) . |
class |
GenericXmlApplicationContext
Convenient application context with built-in XML support.
|
class |
StaticApplicationContext
ApplicationContext implementation
which supports programmatic registration of beans and messages,
rather than reading bean definitions from external configuration sources. |
| Modifier and Type | Method and Description |
|---|---|
ApplicationContext |
ApplicationObjectSupport.getApplicationContext()
Return the ApplicationContext that this object is associated with.
|
ApplicationContext |
AbstractApplicationContext.getParent()
Return the parent context, or
null if there is no parent
(that is, this context is the root of the context hierarchy). |
protected ApplicationContext |
ApplicationObjectSupport.obtainApplicationContext()
Obtain the ApplicationContext for actual use.
|
| Modifier and Type | Method and Description |
|---|---|
protected void |
ApplicationObjectSupport.initApplicationContext(ApplicationContext context)
Subclasses can override this for custom initialization behavior.
|
void |
LiveBeansView.setApplicationContext(ApplicationContext applicationContext) |
void |
ApplicationObjectSupport.setApplicationContext(ApplicationContext context) |
void |
GenericApplicationContext.setParent(ApplicationContext parent)
Set the parent of this application context, also setting
the parent of the internal BeanFactory accordingly.
|
void |
AbstractApplicationContext.setParent(ApplicationContext parent)
Set the parent of this application context.
|
| Constructor and Description |
|---|
AbstractApplicationContext(ApplicationContext parent)
Create a new AbstractApplicationContext with the given parent context.
|
AbstractRefreshableApplicationContext(ApplicationContext parent)
Create a new AbstractRefreshableApplicationContext with the given parent context.
|
AbstractRefreshableConfigApplicationContext(ApplicationContext parent)
Create a new AbstractRefreshableConfigApplicationContext with the given parent context.
|
AbstractXmlApplicationContext(ApplicationContext parent)
Create a new AbstractXmlApplicationContext with the given parent context.
|
ClassPathXmlApplicationContext(ApplicationContext parent)
Create a new ClassPathXmlApplicationContext for bean-style configuration.
|
ClassPathXmlApplicationContext(String[] configLocations,
ApplicationContext parent)
Create a new ClassPathXmlApplicationContext with the given parent,
loading the definitions from the given XML files and automatically
refreshing the context.
|
ClassPathXmlApplicationContext(String[] configLocations,
boolean refresh,
ApplicationContext parent)
Create a new ClassPathXmlApplicationContext with the given parent,
loading the definitions from the given XML files.
|
ClassPathXmlApplicationContext(String[] paths,
Class<?> clazz,
ApplicationContext parent)
Create a new ClassPathXmlApplicationContext with the given parent,
loading the definitions from the given XML files and automatically
refreshing the context.
|
FileSystemXmlApplicationContext(ApplicationContext parent)
Create a new FileSystemXmlApplicationContext for bean-style configuration.
|
FileSystemXmlApplicationContext(String[] configLocations,
ApplicationContext parent)
Create a new FileSystemXmlApplicationContext with the given parent,
loading the definitions from the given XML files and automatically
refreshing the context.
|
FileSystemXmlApplicationContext(String[] configLocations,
boolean refresh,
ApplicationContext parent)
Create a new FileSystemXmlApplicationContext with the given parent,
loading the definitions from the given XML files.
|
GenericApplicationContext(ApplicationContext parent)
Create a new GenericApplicationContext with the given parent.
|
GenericApplicationContext(org.springframework.beans.factory.support.DefaultListableBeanFactory beanFactory,
ApplicationContext parent)
Create a new GenericApplicationContext with the given DefaultListableBeanFactory.
|
StaticApplicationContext(ApplicationContext parent)
Create a new StaticApplicationContext with the given parent.
|
| Modifier and Type | Method and Description |
|---|---|
void |
ScheduledAnnotationBeanPostProcessor.setApplicationContext(ApplicationContext applicationContext)
Setting an
ApplicationContext is optional: If set, registered
tasks will be activated in the ContextRefreshedEvent phase;
if not set, it will happen at ScheduledAnnotationBeanPostProcessor.afterSingletonsInstantiated() time. |
| Modifier and Type | Method and Description |
|---|---|
static ThemeSource |
UiApplicationContextUtils.initThemeSource(ApplicationContext context)
Initialize the ThemeSource for the given application context,
autodetecting a bean with the name "themeSource".
|
| Modifier and Type | Method and Description |
|---|---|
void |
LocalValidatorFactoryBean.setApplicationContext(ApplicationContext applicationContext) |


{{ project.summary }}
There are many ways to connect to IRC. You can:
You may also wish to peruse this excerpt from a documentary on IRC.
 They are also a good way to show off your programming language. The following bots can be found on #proglangdesign. Please do not abuse them; it is not their fault.
To try out a bot, simply say
`botname: some <lang> code
`.
We have a wiki! Only members of the GitHub organization can edit the wiki.
If you are a regular on #proglangdesign, ask hackerfoo for an invitation to the GitHub organization. GitHub organization membership is necessary to edit the wiki, or modify this website without needing to make a pull request.


public static interface Protos.RateLimitOrBuilder
| Modifier and Type | Method and Description |
|---|---|
long |
getCapacity()
optional uint64 capacity = 3; |
java.lang.String |
getPrincipal()
required string principal = 2; |
com.google.protobuf.ByteString |
getPrincipalBytes()
required string principal = 2; |
double |
getQps()
optional double qps = 1; |
boolean |
hasCapacity()
optional uint64 capacity = 3; |
boolean |
hasPrincipal()
required string principal = 2; |
boolean |
hasQps()
optional double qps = 1; |
boolean hasQps()
optional double qps = 1;
Leaving QPS unset gives it unlimited rate (i.e., not throttled), which also implies unlimited capacity.
double getQps()
optional double qps = 1;
Leaving QPS unset gives it unlimited rate (i.e., not throttled), which also implies unlimited capacity.
boolean hasPrincipal()
required string principal = 2;
Principal of framework(s) to be throttled. Should match FrameworkInfo.principal and Credential.principal (if using authentication).
java.lang.String getPrincipal()
required string principal = 2;
Principal of framework(s) to be throttled. Should match FrameworkInfo.principal and Credential.principal (if using authentication).
com.google.protobuf.ByteString getPrincipalBytes()
required string principal = 2;
Principal of framework(s) to be throttled. Should match FrameworkInfo.principal and Credential.principal (if using authentication).
boolean hasCapacity()
optional uint64 capacity = 3;
Max number of outstanding messages from frameworks of this principal allowed by master before the next message is dropped and an error is sent back to the sender. Messages received before the capacity is reached are still going to be processed after the error is sent. If unspecified, this principal is assigned unlimited capacity. NOTE: This value is ignored if 'qps' is not set.
long getCapacity()
optional uint64 capacity = 3;
Max number of outstanding messages from frameworks of this principal allowed by master before the next message is dropped and an error is sent back to the sender. Messages received before the capacity is reached are still going to be processed after the error is sent. If unspecified, this principal is assigned unlimited capacity. NOTE: This value is ignored if 'qps' is not set.


This extension allows canceling pending transactions on Etherscan.
Cancellation is sending a transaction with zero value and the same nonce. An account should send the transaction to themself. Gas price for the transaction should be higher than for transaction which should be canceled.
The extension requires injected MetaMask as a wallet. Transactions are executed on behalf of the injected MetaMask account. The account controls gas price of the transaction by themself.
Warning: The cancelation will not work if the transaction was initiated from MetaMask. MetaMask ignores defined nonce, that is why it will not be possible. The transaction which was initiated from MetaMask can be canceled in MetaMask.


A visual and display framework for Mycroft running on top of KDE Plasma Technology and built using Kirigami, a lightweight user interface framework for convergent applications empowered by Qt.
In the age of information visualization is eminently essential to grab attention and create a promising communication strategy. Visual content that supports your spoken content can make it easier to present information well and more engaging for your audience and users. Mycroft-GUI is an open source visual and display framework for Mycroft running on top of KDE Plasma Technology and built using Kirigami a lightweight user interface framework for convergent applications which are empowered by Qt.
Mycroft is an open source voice assistant that can be extended and expanded to the limits of your imagination. Mycroft can run anywhere from your desktop to your automobiles or on smart devices that empower your home.
Want Mycroft to do something new? Teach Mycroft a skill, share it, and improve the experience for tens of thousands of people all over the world. This guide aims to provide you with resources to create familiar and consistent visual experiences with your expanding and innovative skills.
Mycroft enabled devices with displays such as the Mark II, KDE Plasmoid provide skill developers the opportunity to create skills that can be empowered by both voice and screen interaction. The display interaction technology is based on the QML user interface markup language that gives you complete freedom to create in-depth innovative interactions without boundaries or provide you with simple templates within the Mycroft GUI framework that allow minimalistic display of text and images based on your skill development specifics and preferences.
This section of the guide is divided into two skill examples that will show you how to create:
QML user interface markup language is a declarative language built on top of Qt's existing strengths designed to describe the user interface of a program: both what it looks like, and how it behaves. QML provides modules that consist of sophisticated set of graphical and behavioral building elements. In the example below we will showcase how to create a QML interface for your skill including how it interacts with your voice skill.
A collection of resources to familiarize you with QML and Kirigami Framework.
Skills for Mycroft AI are written in Python, using the skills development guide available here
Let's walk you through some basics of writing your QML user interface, this section is divided into 5 parts:
A QML module provides versioned types and JavaScript resources in a type namespace which may be used by clients who import the module. Modules make use of the QML versioning system which allows modules to be independently updated. More in-depth information about QML modules can be found here Qt QML Modules Documentation
In the code snippet example below we will look at importing some of the common modules that provide the components required to get started with our Visual User Interface.
import QtQuick 2.4
import QtQuick.Controls 2.2
import QtQuick.Layouts 1.4
import org.kde.kirigami 2.4 as Kirigami
import Mycroft 1.0 as Mycroft
import org.kde.lottie 1.0
QTQuick Module:
Qt Quick module is the standard library for writing QML applications, the module provides a visual canvas and includes types for creating and animating visual components, receiving user input, creating data models and views and delayed object instantiation. In-depth information about QtQuick can be found at Qt Quick Documentation
QTQuick.Controls Module:
The QtQuick Controls module provides a set of controls that can be used to build complete interfaces in Qt Quick. Some of the controls provided are button controls, container controls, delegate controls, indicator controls, input controls, navigation controls and more, for a complete list of controls and components provided by QtQuick Controls you can refer to QtQuick Controls 2 Guidelines
QtQuick.Layouts Module:
QtQuick Layouts are a set of QML types used to arrange items in a user interface. Some of the layouts provided by QtQuick Layouts are Column Layout, Grid Layout, Row Layout and more, for a complete list of layouts you can refer to QtQuick Layouts Documentation
Kirigami Module:
Kirigami is a set of QtQuick components for mobile and convergent applications. Kirigami is a set of high level components to make the creation of applications that look and feel great on mobile as well as desktop devices and follow the Kirigami Human Interface Guidelines
Mycroft Module:
Mycroft GUI frameworks provides a set of high level components and events system for aiding in the development of Mycroft visual skills. One of the controls provided by Mycroft GUI frameworks are Mycroft-GUI Framework Base Delegates Mycroft-GUI Framework Base Delegates Documentation
QML Lottie Module:
This provides a QML Item
to render Adobe® After Effects™ animations exported as JSON with Bodymovin
using the Lottie Web library. For list of all properties supported refer Lottie QML
When you design your skill with QML, Mycroft-GUI frameworks provides you with some base delegates you should use when designing your GUI skill. The base delegates provide you with a basic presentation layer for your skill with some property assignments that can help you setup background images, background dim, timeout and grace time properties to give you the control you need for rendering an experience. In your GUI Skill you can use:
Mycroft.Delegate: A basic and simple page based on Kirigami.Page
Simple display Image and Text Example using Mycroft.Delegate
import Mycroft 1.0 as Mycroft
Mycroft.Delegate {
skillBackgroundSource: sessionData.exampleImage
ColumnLayout {
anchors.fill: parent
Image {
id: imageId
Layout.fillWidth: true
Layout.preferredHeight: Kirigami.Units.gridUnit * 2
source: "https://source.unsplash.com/1920x1080/?+autumn"
}
Label {
id: labelId
Layout.fillWidth: true
Layout.preferredHeight: Kirigami.Units.gridUnit * 4
text: "Lorem ipsum dolor sit amet, consectetur adipiscing elit, tempor incididunt ut labore et dolore magna aliqua."
}
}
}
Mycroft.ScrollableDelegate: A delegate that displays skill visuals in a scroll enabled Kirigami Page.
Example of using Mycroft.ScrollableDelegate
import QtQuick 2.4
import QtQuick.Controls 2.2
import QtQuick.Layouts 1.4
import org.kde.kirigami 2.4 as Kirigami
import Mycroft 1.0 as Mycroft
Mycroft.ScrollableDelegate{
id: root
skillBackgroundSource: sessionData.background
property var sampleModel: sessionData.sampleBlob
Kirigami.CardsListView {
id: exampleListView
Layout.fillWidth: true
Layout.fillHeight: true
model: sampleModel.lorem
delegate: Kirigami.AbstractCard {
id: rootCard
implicitHeight: delegateItem.implicitHeight + Kirigami.Units.largeSpacing
contentItem: Item {
implicitWidth: parent.implicitWidth
implicitHeight: parent.implicitHeight
ColumnLayout {
id: delegateItem
anchors.left: parent.left
anchors.right: parent.right
anchors.top: parent.top
spacing: Kirigami.Units.largeSpacing
Kirigami.Heading {
id: restaurantNameLabel
Layout.fillWidth: true
text: modelData.text
level: 2
wrapMode: Text.WordWrap
}
Kirigami.Separator {
Layout.fillWidth: true
}
Image {
id: placeImage
source: modelData.image
Layout.fillWidth: true
Layout.preferredHeight: Kirigami.Units.gridUnit * 3
fillMode: Image.PreserveAspectCrop
}
Item {
Layout.fillWidth: true
Layout.preferredHeight: Kirigami.Units.gridUnit * 1
}
}
}
}
}
}
Designing a simple skill and only want to display text or images ? Mycroft GUI framework and Mycroft enclosure API provides ready to use QML based template wrappers that can minimalisticly display simple skills data such as text and images. In the example below we will showcase how to create a simple voice skill that displays simple text on your Mycroft enabled device with a display.

Image Example
python
...
def handle_hello_world(self, message):
...
self.gui.show_image("https://source.unsplash.com/1920x1080/?+autumn")
...
HTML URL Example
...
def handle_hello_world(self, message):
...
self.gui.show_url("https://mycroft.ai")
...
Display Lottie Animations:
You can use the LottieAnimation
item just like any other QtQuick
element, such as an
Image
and place it in your scene any way you please.
QML Example
import QtQuick 2.4
import QtQuick.Controls 2.2
import QtQuick.Layouts 1.4
import org.kde.kirigami 2.4 as Kirigami
import Mycroft 1.0 as Mycroft
import org.kde.lottie 1.0
Mycroft.Delegate {
LottieAnimation {
id: fancyAnimation
anchors.fill: parent
source: Qt.resolvedUrl("animations/fancy_animation.json")
loops: Animation.Infinite
fillMode: Image.PreserveAspectFit
running: true
}
}
Display Sliding Images
Contains an image that will slowly scroll in order to be shown completely
QML Example
import QtQuick 2.4
import QtQuick.Controls 2.2
import QtQuick.Layouts 1.4
import org.kde.kirigami 2.4 as Kirigami
import Mycroft 1.0 as Mycroft
Mycroft.Delegate {
background: Mycroft.SlidingImage {
source: "foo.jpg"
running: bool //If true the sliding animation is active
speed: 1 //Animation speed in Kirigami.Units.gridUnit / second
}
}
Display Paginated Text
Takes a long text and breaks it down into pages that can be horizontally swiped
QML Example
import QtQuick 2.4
import QtQuick.Controls 2.2
import QtQuick.Layouts 1.4
import org.kde.kirigami 2.4 as Kirigami
import Mycroft 1.0 as Mycroft
Mycroft.Delegate {
Mycroft.PaginatedText {
text: string //The text that should be displayed
currentIndex: 0 //The currently visible page number (starting from 0)
}
}
Display A Vertical ListView With Information Cards
Kirigami CardsListView is a ListView which can have AbstractCard as its delegate: it will automatically assign the proper spacing and margins around the cards adhering to the design guidelines.
Python Skill Example
python
...
def handle_food_places(self, message):
...
self.gui["foodPlacesBlob"] = results.json
self.gui.show_page("foodplaces.qml")
...
QML Example
import QtQuick 2.4
import QtQuick.Controls 2.2
import QtQuick.Layouts 1.4
import org.kde.kirigami 2.4 as Kirigami
import Mycroft 1.0 as Mycroft
Mycroft.Delegate{
id: root
property var foodPlacesModel: sessionData.foodPlacesBlob
Kirigami.CardsListView {
id: restaurantsListView
Layout.fillWidth: true
Layout.fillHeight: true
model: foodPlacesModel
delegate: Kirigami.AbstractCard {
id: rootCard
implicitHeight: delegateItem.implicitHeight + Kirigami.Units.largeSpacing
contentItem: Item {
implicitWidth: parent.implicitWidth
implicitHeight: parent.implicitHeight
ColumnLayout {
id: delegateItem
anchors.left: parent.left
anchors.right: parent.right
anchors.top: parent.top
spacing: Kirigami.Units.smallSpacing
Kirigami.Heading {
id: restaurantNameLabel
Layout.fillWidth: true
text: modelData.name
level: 3
wrapMode: Text.WordWrap
}
Kirigami.Separator {
Layout.fillWidth: true
}
RowLayout {
Layout.fillWidth: true
Layout.preferredHeight: form.implicitHeight
Image {
id: placeImage
source: modelData.image
Layout.fillHeight: true
Layout.preferredWidth: placeImage.implicitHeight + Kirigami.Units.gridUnit * 2
fillMode: Image.PreserveAspectFit
}
Kirigami.Separator {
Layout.fillHeight: true
}
Kirigami.FormLayout {
id: form
Layout.fillWidth: true
Layout.minimumWidth: aCard.implicitWidth
Layout.alignment: Qt.AlignLeft | Qt.AlignBottom
Label {
Kirigami.FormData.label: "Description:"
Layout.fillWidth: true
wrapMode: Text.WordWrap
elide: Text.ElideRight
text: modelData.restaurantDescription
}
Label {
Kirigami.FormData.label: "Phone:"
Layout.fillWidth: true
wrapMode: Text.WordWrap
elide: Text.ElideRight
text: modelData.phone
}
}
}
}
}
}
}
}
Using Proportional Delegate For Simple Display Skills & Auto Layout
ProportionalDelegate is a delegate which has proportional padding and a columnlayout as mainItem. The delegate supports a proportionalGridUnit which is based upon its size and the contents are supposed to be scaled proportionally to the delegate size either directly or using the proportionalGridUnit.
AutoFitLabel is a label that will always scale its text size according to the item size rather than the other way around
QML Example
import QtQuick 2.4
import QtQuick.Controls 2.2
import QtQuick.Layouts 1.4
import org.kde.kirigami 2.4 as Kirigami
import Mycroft 1.0 as Mycroft
Mycroft.ProportionalDelegate {
id: root
Mycroft.AutoFitLabel {
id: monthLabel
font.weight: Font.Bold
Layout.fillWidth: true
Layout.preferredHeight: proportionalGridUnit * 40
text: sessionData.month
}
Mycroft.AutoFitLabel {
id: dayLabel
font.weight: Font.Bold
Layout.fillWidth: true
Layout.preferredHeight: proportionalGridUnit * 40
text: sessionData.day
}
}
Using Slideshow Component To Show Cards Slideshow
Slideshow component lets you insert a slideshow with your custom delegate in any skill display which can be tuned to autoplay and loop and also scrolled or flicked manually by the user.
QML Example
import QtQuick 2.4
import QtQuick.Controls 2.2
import QtQuick.Layouts 1.4
import org.kde.kirigami 2.4 as Kirigami
import Mycroft 1.0 as Mycroft
Mycroft.Delegate {
id: root
Mycroft.SlideShow {
id: simpleSlideShow
model: sessionData.exampleModel // model with slideshow data
anchors.fill: parent
interval: 5000 // time to switch between slides
running: true // can be set to false if one wants to swipe manually
loop: true // can be set to play through continously or just once
delegate: Kirigami.AbstractCard {
width: rootItem.width
height: rootItem.height
contentItem: ColumnLayout {
anchors.fill: parent
Kirigami.Heading {
Layout.fillWidth: true
wrapMode: Text.WordWrap
level: 3
text: modelData.Title
}
Kirigami.Separator {
Layout.fillWidth: true
Layout.preferredHeight: 1
}
Image {
Layout.fillWidth: true
Layout.preferredHeight: rootItem.height / 4
source: modelData.Image
fillMode: Image.PreserveAspectCrop
}
}
}
}
}
AudioPlayer component is a custom wrapper around Qt Multimedia MediaPlayer, that gives the Skill Authors a basic responsive design audio player they can plug into their skills.
QML Example
import QtQuick 2.4
import QtQuick.Controls 2.2
import QtQuick.Layouts 1.4
import org.kde.kirigami 2.4 as Kirigami
import Mycroft 1.0 as Mycroft
Mycroft.Delegate {
id: root
skillBackgroundSource: sessionData.audioThumbnail
Mycroft.AudioPlayer {
id: examplePlayer
anchors.fill: parent
source: sessionData.audioSource //Set URL of audio file
thumbnail: sessionData.audioThumbnail //Set Thumbnail of audio
title: sessionData.audioTitle //Set Title of audio
nextAction: "author.example-player.next" //Event to drive next button action in skill
previousAction: "author.example-player.previous" //Event to drive previous button action in skill
status: sessionData.status //Current status of playing audio
}
}
Mycroft GUI API provides an Event Handling Protocol between the skill and QML display which allow Skill Authors to forward events in either direction to an event consumer. Skill Authors have the ability to create any amount of custom events. Event names that start with "system." are available to all skills, like previous/next/pick.
Simple Event Trigger Example From QML Display To Skill
Python Skill Example
def initialize(self):
# Initialize...
self.gui.register_handler('skill.foo.event', self.handle_foo_event)
...
def handle_foo_event(self, message):
self.speak(message.data["string"])
...
...
QML Example
import QtQuick 2.4
import QtQuick.Controls 2.2
import QtQuick.Layouts 1.4
import org.kde.kirigami 2.4 as Kirigami
import Mycroft 1.0 as Mycroft
Mycroft.Delegate {
id: root
Button {
anchors.fill: parent
text: "Click Me"
onClicked: {
triggerGuiEvent("skill.foo.event", {"string": "Lorem ipsum dolor sit amet"})
}
}
}
Simple Event Trigger Example From Skill To QML Display
Python Skill Example
...
def handle_foo_intent(self, message):
self.gui['foobar'] = message.data.get("utterance")
self.gui['color'] = "blue"
self.gui.show_page("foo.qml")
...
...
QML Example
import QtQuick 2.4
import QtQuick.Controls 2.2
import QtQuick.Layouts 1.4
import org.kde.kirigami 2.4 as Kirigami
import Mycroft 1.0 as Mycroft
Mycroft.Delegate {
id: root
property var fooString: sessionData.foobar
onFooStringChanged: {
fooRect.color = sessionData.color
}
Rectangle {
id: fooRect
anchors.fill: parent
color: "#fff"
}
}
VideoPlayer component is a custom wrapper around Qt Multimedia MediaPlayer, that gives the Skill Authors a basic responsive design video player they can plug into their skills.
import QtQuick 2.4
import QtQuick.Controls 2.2
import QtQuick.Layouts 1.4
import org.kde.kirigami 2.4 as Kirigami
import Mycroft 1.0 as Mycroft
Mycroft.Delegate {
id: root
skillBackgroundSource: sessionData.videoThumbnail
Mycroft.VidioPlayer {
id: examplePlayer
anchors.fill: parent
source: sessionData.videoSource //Set URL of video file
nextAction: "author.example-player.next" //Event to drive next button action in skill
previousAction: "author.example-player.previous" //Event to drive previous button action in skill
status: sessionData.status //Current status of playing video
}
}
The resting face API provides skill authors the ability to extend their skills to supply their own customized IDLE screens that will be displayed when there is no activity on the screen.
Simple Idle Screen Example
Python Skill Example
from mycroft.skills.core import resting_screen_handler
...
@resting_screen_handler('NameOfIdleScreen')
def handle_idle(self, message):
self.gui.clear()
self.log.info('Activating foo/bar resting page')
self.gui["exampleText"] = "This Is A Idle Screen"
self.gui.show_page('idle.qml')
QML Example
import QtQuick 2.4
import QtQuick.Controls 2.2
import QtQuick.Layouts 1.4
import org.kde.kirigami 2.4 as Kirigami
import Mycroft 1.0 as Mycroft
Mycroft.Delegate {
id: root
property var fooString: sessionData.exampleText
Kirigami.Heading {
id: headerExample
anchors.centerIn: parent
text: fooString
}
}


Welcome! The following describes how to test extraction process and integrate your accountancy software.
Let us start by describing our overall process of extracting data from invoices (see diagram):
Our API can be tested with browser REST add-ons.
The call must satisfy the following properties:
To get credentials for trial, drop us an email.
Or alternatively, here is an example curl-command that can be used from terminal:
curl --form<EMAIL_ADDRESS>--header "Content-Type:multipart/form-data; boundary=——WebKitFormBoundarySOKoAHop9Sc1EiVF" http://<IP_ADDRESS>/rest/invoiceworkflows/it --user username:password
Obviously, file location and username/password need to be changed.
To integrate, you need to call our API from your system. This depends on the programming language you use. See browser REST clients section above for tips.
The call response is a JSON object representing the newly created invoice workflow. It contains the following data of interest:
Here is an example call response, a JSON object for unrecognized invoice:
{"links":[{"rel":"self","href":"http://<IP_ADDRESS>/rest/invoiceworkflows/1"}],"id":1,"locale":"it","state":"pending_review","fileName":"123.pdf"}
The returned invoice workflow object can be in one of three states:
Currently majority of the invoices need a review. These are all API call responses that created a workflow in pending_review state.
You need to query the created workflow resource later. A good option is to query periodically, e.g. every ten minutes.
The query is following:
Here is an example of calling from terminal:
curl http://<IP_ADDRESS>/rest/invoiceworkflows/1 --user username:password
Calling from browser REST add-on or your system is a plain HTTP GET call.
If the initial API call response or a later periodic query responded with a workflow in completed state, you can also additionally find the extracted data from the workflow object.
Here is an example of completed workflow as a response JSON object:
{"links":[{"rel":"self","href":"http://<IP_ADDRESS>/rest/invoiceworkflows/1"}],"id":1,"locale":"it","state":"completed","fileName":"123.pdf","extractedData":{"ISSUE_DATE":"2016-06-17","TOTAL":31.62,"VATIN":["01234567890","12345678901"],"INVOICE_ID":"12345/16","TOTAL_BEFORE_TAXES":25.92,"NAME":"Test Spa"}}
The extracted data is contained in extractedData property with the following fields:


The Role Unassignment email message is optionally sent to a user when they are unassigned from a role. To locate this resource file, use the Find option on your web browser and search for EMAIL_ROLE_UPDATE_SUBJECT.Text and EMAIL_ROLE_UPDATE_BODY.Text.
Here is the subject title and message for this email as provided in the default DNN core language pack:
[Portal:PortalName] User Account Update
Dear [User:DisplayName],
Your user account at [Portal:PortalName] has been recently updated to modify access to the following Security Role:
Role: [Custom:0]
Description: [Custom:1]
Effective Date: [Custom:2]
Expiry Date: [Custom:3]
Thank you, we appreciate your support...
[Portal:PortalName]


Current Latitude & Longitude: ,
Uber Extra is a service leverage Uber API to help costumers make educated decisions so that they can effiently use their time and money.


Deletes a subscription to button notifications for the specified button. For more information about button subscriptions, see SDLSubscribeButton
Application can unsubscribe from a button that is currently being pressed (i.e. has not yet been released), but app will not get button event
HMILevel needs to be FULL, LIMITED or BACKGROUND
@since SmartDeviceLink 1.0
See SDLSubscribeButton
Convenience init to unsubscribe from a subscription button
- (nonnull instancetype)initWithButtonName:(nonnull SDLButtonName)buttonName;
init(buttonName: SDLButtonName)
A name of the button to unsubscribe from
A name of the button to unsubscribe from
A name of the button to unsubscribe from @discussion An Enumeration value, see SDLButtonName
@property (nonatomic, strong) SDLButtonName _Nonnull buttonName;
var buttonName: SDLButtonName { get set }


MMAP2
Section: Linux Programmer's Manual (2)Updated: 2008-04-22
Index Return to Main Contents
NAME
mmap2 - map files or devices into memorySYNOPSIS
#include <sys/mman.h> void *mmap2(void *addr, size_t length, int prot, int flags, int fd, off_t pgoffset);
DESCRIPTION
The mmap2() system call operates in exactly the same way as mmap(2), except that the final argument specifies the offset into the file in 4096-byte units (instead of bytes, as is done by mmap(2)). This enables applications that use a 32-bit off_t to map large files (up to 2^44 bytes).RETURN VALUE
On success, mmap2() returns a pointer to the mapped area. On error -1 is returned and errno is set appropriately.ERRORS
- EFAULT
- Problem with getting the data from userspace.
- EINVAL
- (Various platforms where the page size is not 4096 bytes.) offset * 4096 is not a multiple of the system page size.
mmap2() can return any of the same errors as mmap(2).
VERSIONS
mmap2() is available since Linux 2.3.31.CONFORMING TO
This system call is Linux-specific.NOTES
Nowadays, the glibc mmap() wrapper function invokes this system call rather than the mmap(2) system call.On ia64, the unit for offset is actually the system page size, rather than 4096 bytes.
SEE ALSO
getpagesize(2), mmap(2), mremap(2), msync(2), shm_open(3)COLOPHON
This page is part of release 3.22 of the Linux man-pages project. A description of the project, and information about reporting bugs, can be found at http://www.kernel.org/doc/man-pages/.
Index
This document was created by man2html, using the manual pages.
Time: 05:33:04 GMT, December 24, 2015


Browser apps for creating images:
kaleidoBuilder - Create kaleidoscopes by putting together inverting circles.
Generalized Koch Snowflake - Create fractal images with dihedral symmetry.
Kaleidoscope - Create periodic kaleidoscopic images in spherical, Euclidic and hyperbolic space.
Kaleidoscope with quadrilaterals - Create hyperbolic and fractal tilings using reflections at the sides of quadrilaterals.
Kaleidoscope with a circle in a triangle - Create fractal tilings using reflections at two straight lines and one or two circles.
Five circles - Create fractal tilings using reflections at two straight lines and up to three circles.
Wallpapers from waves - Create quasiperiodic and periodic wallpapers using symmetric wave packages.
fractals and quasiperiodic tilings - generate such beasts with a *.json file definition
gridmethod - using the grid method to generate quasiperiodic rhombus tilings with special decorations
twelve-fold 2 plus sqrt(3) - a kaleidoscope with quasiperiodic structure, self-similarity ratio 2 + sqrt(3)
twelve-fold 1 plus sqrt(3) - a kaleidoscope with quasiperiodic structure, smaller self-similarity ratio 1 + sqrt(3)
If you want to know more:
Presentation for the Bridges 2022 conference in Helsinki - This downloads the presentation as a pdf
"Quasiperiodic Tilings with 12-Fold Rotational Symmetry ..." - Paper on 12-fold quasiperiodic tilings.
"Ptolemy, the Regular Heptagon, and Quasiperiodic Tilings" - Paper on 7-fold quasiperiodic tilings.
"Fractal Images from Multiple Inversion in Circles" - About kaleidoscopes with more than three mirrors.
"Kaleidoscopes for Non-Euclidean Space" - A paper which explains in detail how the kaleidoscope app generates the images.
My blog - A rambling discussion about geometry and programming, including kaleidoscopes. Look at the posts of early 2018.Code repository - Has the code of the Kaleidoscope app and more.
Experimental:
quasiperiodic rhombus tiling 3-fold symmetry
Peter Stampfli, Rue de Lausanne 1, 1580 Avenches, Switzerland
pestampf@gmail.com